Your coding agents, and everything they started.
Claude Code, Codex, Gemini CLI and the rest show up on the Agents tab by name, with the project each is working in, whether it is working or waiting for you, and every dev server, browser and tool server it started. Quit the session and all of it goes together.
The numbers are simulated: a web page cannot read your Mac, and should not.
Every session by the agent that runs it, not by node.
Claude Code, Codex, Gemini CLI and the rest are listed by name, with the project each is working in, how long it has been running, and whether it is working, waiting for your answer or idle, so you can tell which of three sessions actually needs you.
- Claude Code, Codex, Gemini CLI, Aider, OpenCode, Cursor, Copilot, Amp, Kiro and Goose
- The project folder, and how long it has been running
- Working, waiting for you, or idle
- The memory and CPU of the whole session, helpers included
The server, the browser and the tests, under the session that started them.
An agent starts things to check its own work. Vitals lists them under the session they belong to, each with its own memory and CPU, so when your Mac suddenly gets busy you can see exactly which chat is behind it.
- Dev servers, headless browsers, test runs and tool servers
- Each with its own memory and CPU
- The same things show under their project on the Projects tab
- A session you closed an hour ago is still found, with what it left behind
One Quit, and nothing lives on as an orphan.
Quit a session and everything it started goes with it, the server and the browser included, so a closed chat does not leave a process on port 3000 and two gigabytes in a browser you cannot see. Vitals shows you the list and asks first.
- You see what will close before it does
- The server, the browser and the tests go with the session
- It asks first, every time
- Force Quit for an agent that has stopped answering
Check on your agents without opening the window.
The menu bar dropdown has an Agents tab with your plans and your sessions, the Overview has an Agents card, and an assistant asking over MCP is told which chat each session belongs to.
- An Agents tab in the menu bar dropdown
- An Agents card on the Overview
- Your AI plans above the sessions
- Over MCP, an assistant learns which chat a session belongs to
Coding agents, before and after
A coding agent is never one process. Claude Code runs as node, starts a dev server to check its work, a headless Chromium to look at it, a test runner, a tool server or two, and a shell for every command. In Activity Monitor that is a dozen rows called node, Chromium and zsh, and none of them says which chat started them or whether that chat is still open.
So your Mac gets busy and nothing on the list admits to it. A session you closed an hour ago can still have a server on port 3000 and a browser holding two gigabytes. With three sessions open, the one that has been waiting for your answer for twenty minutes looks exactly like the two that are working.
The Agents tab lists each session by the agent that runs it, with its project, whether it is working, waiting for you or idle, how long it has run, and everything it started underneath, each with its own memory and CPU. Quit the session and the lot goes with it. The same tab is in the menu bar dropdown, an Agents card sits on the Overview, and an assistant asking over MCP is told which chat a session belongs to.
Where it is in Vitals
The tab, the menu bar item and the setting, in the order you would reach for them.
- 01
Open the Agents tab
It is in the window, in the menu bar dropdown, and as a card on the Overview. Each running session is one row, named by the agent, with its project folder.
- 02
Read a session
The row tells you whether the agent is working, waiting for you or idle, how long it has run, and what it is using. Open it and everything it started is listed: the dev server, the browser, the tests, the tool servers, each with its own memory and CPU.
- 03
Quit a session, with everything it started
Click Quit on the session. Vitals shows you what will close and asks first. The server, the browser and the rest go with it instead of living on as orphans.
- 04
Ask from your assistant
Over MCP, Claude, Codex or Cursor can ask which sessions are running and which chat each belongs to, and get the same list, with when it was measured.
Coding agents: Activity Monitor and Vitals
The whole comparison is row by row. These are the rows about coding agents.
The words behind it
What the numbers mean, from the Activity Monitor glossary.
- Listening port
A listening port is a network port where a process is waiting for incoming connections, such as a web server on port 3000.
- Helper processes
Helper processes are separate processes an app starts to do part of its work, such as rendering web pages, running extensions, or handling graphics.
- % CPU
% CPU is the share of processor capacity a process is using, measured per CPU core.
- App Memory
App Memory is the amount of RAM being used by apps and their processes.
- Zombie process
A zombie process is a process that has finished running but still has an entry in the process table, because its parent process has not yet collected its exit status.
Questions
The ones people ask about coding agents before they buy.
Which coding agents does Vitals recognise?
Claude Code, Codex, Gemini CLI, Aider, OpenCode, Cursor, GitHub Copilot, Amp, Kiro and Goose. Each running session shows its project, whether it is working or waiting for you, and everything it started.
Why do other tools show an agent as node or python?
Because that is the process it runs inside. Vitals recognises agents by their command, so Gemini CLI shows as Gemini CLI even though it runs in node, and Aider as Aider even though it runs in python.
Can Vitals stop an agent on its own?
No. It quits a session only when you ask, and it shows you what will close before anything does.
Does Vitals read what the agent is working on?
It reads the process, its folder and what it started, nothing about your code or your conversation. Nothing about what you run leaves your Mac.
Does it say how long a session has been running?
Yes. Each session shows how long it has run and whether it is working, waiting for you or idle right now.
What happens to a dev server when I quit the session?
It closes with the session, along with the browser, the tests and the tool servers the agent started. You see the list before anything closes.
Does it see agents inside Cursor, VS Code or the Claude app?
Yes. Cursor and GitHub Copilot sessions show by name, and so does Claude Code whether it runs in a terminal or inside the Claude app. Vitals recognises agents by their command, so the window they run in does not matter.
Does it count the tokens an agent used?
For Claude Code and Codex, yes: today and this week, where they went and which models took them, read from the logs the tools keep on your Mac.
Read on
Guides that use this, and how Vitals compares with the apps people buy for it.
- Guide Claude Code using too much memory or CPU on a Mac? How to find it, and get it back
- Guide Codex using high CPU or memory on a Mac? How to find the cause
- Guide Cursor using high CPU or draining your Mac’s battery? How to find the cause
- Guide Claude desktop app using high CPU or memory on a Mac? What to check
- Guide Ollama using too much memory on a Mac? How to see what is loaded, and unload it
- Comparison Vitals vs Activity Monitor
More of Vitals
All featuresAI usage limits
How much is left of Claude, Codex, Copilot and the rest, when each resets, and whether you will make it there.
MCP server
Your assistant asks what is running, which app is behind a number and what is on a port, instead of reading a process list.
Menu bar monitor
CPU, memory, GPU, network, temperature and more, each its own item, red while under strain, with the apps behind every number one click away.
Get Vitals for $15 while the launch price lasts
50 left at this price. The regular price is $39. One payment, lifetime updates, 14-day refund.
Get Vitals for $15