Guides/Vitals vs ProcessSpy

Vitals vs ProcessSpy

Atta 🐬

Founder, Vitals

ProcessSpy checked

Quick answer

Vitals is an activity monitor and process inspector for Mac: CPU, GPU, memory, temperatures, fans, disk, network and battery in the menu bar and in a window, every app with its helper processes counted in, a Process Inspector with any process’s code signature, parent, command line, CPU time and memory peak, up to a year of history, a notification when an app misbehaves, dev servers and their ports, Docker containers, coding agents and AI plans, a volume slider for every app, and a vitals command and MCP server, paid once. ProcessSpy is a process explorer in the mould of Windows Process Explorer, with regex and JavaScript filters and, in its paid version, a record of every process after it finishes.

VitalsProcessSpy
What it is
VitalsAn activity monitor and process inspector, in the menu bar and a window
ProcessSpyA process explorer, in the mould of Windows Process Explorer
List of what is running
VitalsEvery app, with its helper processes counted in
ProcessSpyEvery process, as a list or a tree
Helper processes counted under their app
VitalsYes, always: one row per app
ProcessSpyYes, in its tree view, with rolled-up CPU, memory and threads
History
VitalsEvery metric, per app, for up to a year, included
ProcessSpyPer-process CPU, memory and threads, in the paid version; length not stated
Finished processes
VitalsEnded Recently keeps the last ten minutes, with when each started and ended and the memory it held; the app’s usage stays in the history for up to a year
ProcessSpyRemembered, with their command line and environment (paid)
Alerts
VitalsWhen an app keeps the CPU busy, keeps growing in memory, or hammers the disk or network
ProcessSpyShortcuts can run on process events (paid)
Process details
VitalsCommand line, path, version, environment, code signature and Team ID, entitlements, native or Rosetta, parent process and launch agent, open files, ports, CPU time and memory against its peak
ProcessSpyCommand line, path, version, environment, signature, QoS, native or Rosetta
An app’s Info.plist
VitalsThe whole Info.plist, one click from the app’s Details card
ProcessSpyNot stated
Export
VitalsAny process or app as text or CSV, Info.plist and entitlements included; the same in Terminal with vitals process
ProcessSpyHistory as CSV (paid)
Search
VitalsBy name, with a regular expression, or with filter words such as cpu>10, memory>1GB, user:root and port:3000
ProcessSpyRegular expressions and JavaScript filters
Menu bar
VitalsOne item per readout, a value, a graph or both, arranged as you like, with a dropdown of every metric
ProcessSpyA dashboard with the same filters (paid)
Temperatures and fans
VitalsCPU and GPU temperature, fan speed and fan control
ProcessSpyNo
Dev servers and open ports
VitalsGrouped by project, idle ones pointed out
ProcessSpyNot stated
GPU and Neural Engine
VitalsGPU, and the Neural Engine on Apple silicon, each with the apps using it
ProcessSpyNot stated
Docker containers
VitalsA tab with every container’s memory, CPU, network and ports
ProcessSpyNot stated
AI assistants
VitalsAn MCP server: Claude, Codex and Cursor can ask what is running, and for any process’s details
ProcessSpyNot stated
Command line
VitalsA vitals command: apps, ports, agents, AI limits and any process’s details, as a table or as JSON
ProcessSpyNot stated
Coding agents and AI plans
VitalsEvery running agent and what it started, what is left of each AI plan and when it resets, and the tokens used
ProcessSpyNot stated
Colors, fonts and spacing
VitalsChart colors, the font and weight of the numbers, comfortable or compact, light or dark
ProcessSpyNot stated
Price
Vitals$29 once, for life, during the launch; $49 after
ProcessSpyFree version; $34.99 once, unlimited Macs; also on Setapp
Trial
Vitals3 days, no card, and a 14-day refund
ProcessSpyA free version
Requirements
VitalsmacOS 15 or later
ProcessSpymacOS 14 or later

Choose Vitals if

  • You want one row and one figure per app, without opening a tree
  • You want a process’s code signature, parent and command line, under the app it belongs to, as CSV too
  • You want up to a year of history included, not as a paid extra
  • You want alerts, temperatures and a menu bar view of every metric
  • You want to know which project is holding a port
  • You want to suspend an app or a process, or send it a signal
Get Vitals for $29

Choose ProcessSpy if

  • You want Windows Process Explorer on a Mac
  • You want JavaScript filters, or Shortcuts that run when a process starts or exits
  • You want a process’s command line and environment after it has finished
  • You run it on many Macs: one license covers them all
ProcessSpy website

Where Vitals pulls ahead

One row per app, without a tree

Vitals shows one row per app, always, with one figure for memory, CPU, energy, disk and network, the processes underneath when you open it, and a Process Inspector for any of them: code signature, parent process, command line, CPU time and memory peak. ProcessSpy's tree view rolls helpers up under their parent, with totals for CPU, memory and threads.

History included

Vitals keeps up to a year for every app and every metric, included in the price. ProcessSpy keeps CPU, memory and thread history in its paid version, for a length its site does not state.

The whole Mac

Vitals has temperatures, fan speed, battery and a menu bar view of every metric, included. ProcessSpy has no temperatures or fans, and its menu bar dashboard is a paid feature.

See it for yourself

The Process Inspector on three processes from a developer’s Mac: the code signature, parent process and command line of each, and the CPU time, memory, files and ports it has used since it started.

node
Terminal · PID 60412
Memory
486 MB
CPU
0.6%
Disk
0 kB/s
Identity
Parent Process
zsh (60120)
Launched By
Terminal (581)
Running For
2d 4h
Executable
Architecture
Apple silicon · arm64
Arguments
node_modules/.bin/next dev --port 3000
Network
Listening Ports
3000
Child Processes
next-router-worker60418212 MB
next-render-worker60421180 MB
Security
Signature
Node.js Foundation · Team ID HX7739G8FX
Hardened Runtime
Yes
Sandbox
No
Resource Usage
CPU Time
1h 52m User 1h 42m · 91%System 10m 5s · 9%
Memory
486 MB · 61% of its 797 MB peak
Threads
19
Open Files
203
Environment48
Google Chrome Helper (Renderer)
Tab Process
Memory
1.92 GB
CPU
4.2%
Disk
12 kB/s
Identity
Parent Process
Google Chrome (48190)
Launched By
Google Chrome (48190)
Running For
6h 12m
App
Version
156.0.8078.74
Architecture
Universal · x86_64 · arm64
Arguments
--type=renderer --lang=en-US --num-raster-threads=4 --enable-zero-copy
Security
Signature
Google LLC · Team ID EQHXZ8M8AV
Hardened Runtime
Yes
Sandbox
No
Entitlements
1
Resource Usage
CPU Time
12m 40s User 10m 23s · 82%System 2m 17s · 18%
Memory
1.92 GB · 88% of its 2.18 GB peak
Threads
23
Open Files
96
Environment31
com.docker.backend
Docker · PID 20311
Memory
1.57 GB
CPU
2.1%
Disk
340 kB/s
Identity
Parent Process
Docker (20288)
Launched By
Docker (20288)
Running For
3d 1h
App
Version
4.88.1
Architecture
Apple silicon · arm64
Arguments
-watchdog -max-restarts 5
Child Processes
com.docker.build2034064 MB
Security
Signature
Docker Inc · Team ID 9BNSXJN65R
Hardened Runtime
Yes
Sandbox
No
Entitlements
7
Resource Usage
CPU Time
3h 8m User 2h 0m · 64%System 1h 8m · 36%
Memory
1.57 GB · 77% of its 2.04 GB peak
Threads
48
Open Files
241
Environment29

Everything Vitals does

One app, paid once, no subscription.

  • A tab per subsystem. Overview, CPU, Memory, Disk, Network, GPU, Neural Engine, Battery, Fans, Sound, Bluetooth, Developer and Agents, each with its live figures and the apps behind them.
  • Temperatures and fans. CPU and GPU temperature on Intel and Apple silicon, M5 included, and fan speed. Run the fans on automatic, at a speed you choose, along a curve you draw, or at full speed for a while. The menu bar temperature can follow the CPU, the GPU or the hottest sensor.
  • A menu bar you arrange. Every readout can be its own menu bar item: CPU, memory, GPU, network, disk, temperature, fan speed or battery, as a value, a graph or both, ⌘-dragged into any order. Behind it, a dropdown with every metric, the busiest apps, and a tab for each metric.
  • Processes grouped by app. Every helper process is added to the app that launched it, so a working Mac shows about 60 apps instead of about 1,000 processes, each with one figure for memory, CPU, energy, disk and network.
  • The Process Inspector. Click any process for the app it belongs to, its code signature, Team ID and entitlements, its parent process and launch agent, its full command line, the processes it started, and the CPU time, memory, open files and listening ports it has used since it started. An app’s version, bundle ID and Info.plist too. Copy it as text, save it as CSV, or get the same from vitals process in Terminal and over MCP.
  • Up to a year of history. CPU, memory, energy, disk and network from the last hour to the last year, with the apps that used the most, ranked hour by hour for the last two days. Keep 30 days, 90 days, 6 months or a year.
  • Alerts for misbehaving apps. A notification when an app keeps the CPU busy, keeps growing in memory, or hammers the disk or network.
  • Your coding agents, and what is left of your plans. An Agents tab with every running coding agent, Claude Code, Codex, Gemini CLI and the rest: its project, what it is doing right now, and everything it started, with Quit for the session and all of it together. For Claude, Codex, GitHub Copilot, Cursor, Antigravity, Grok, Ollama and OpenCode, how much of each plan is left, when it resets and whether you are on pace, for every account signed in on the Mac, and the tokens Claude Code and Codex used today and this week.
  • An MCP server for Claude, Codex and Cursor. Claude, Claude Code, Codex, Cursor and any assistant that speaks MCP can ask what is running, which app is behind a number, what is on a port, and what the last 30 days looked like. It cannot quit anything by itself: Vitals asks you first. Off until you turn it on.
  • The vitals command. A command for the terminal that answers from the running app: the apps using the most, ports and dev servers by project, coding agents, what is left of each AI plan and up to a year of history, as a table or as JSON. Quitting and stopping ask first. It comes with the app, or with Homebrew.
  • A Neural Engine tab. How hard the Neural Engine is working, which apps are using it, and a chart of the last minutes, in the window, the menu bar and on the Overview. On Macs with Apple silicon.
  • Inside your browser. Click Chrome, Safari, Firefox, Edge, Brave, Arc or Dia to see its memory and CPU split into tabs, extensions, graphics and the browser itself. Slack, VS Code and similar apps are split the same way.
  • What keeps the Mac awake, and the fans on. The Battery tab lists the apps holding sleep off, what each said it is doing and for how long. When the Mac runs hot, Vitals names the apps behind it, with Quit beside each.
  • Dev servers and open ports, by project. A Developer tab: processes grouped by the project folder they run in, with their listening ports, and dev servers left idle for days pointed out and offered to stop.
  • Every port in use, and who can reach it. Every listening port on the Mac with the process, project, container or Homebrew service behind it, and whether only this Mac or your whole network can connect.
  • What keeps a disk from ejecting. Open Files lists every disk with the apps holding files on it, and Quit Them and Eject quits them and ejects the disk, after a confirmation. Type a file name to see which app has it open.
  • Homebrew packages and services. Every formula and cask with its size, the update waiting and when it last ran, the ones never seen running, brew services with Start, Stop and Restart, and what a cleanup would free.
  • Make it yours. Vitals’ own colors, Monochrome, or a set made for color blindness. The numbers in Rounded, San Francisco, SF Mono, New York or any font on the Mac, light to bold. Comfortable or compact spacing, charts of the last 5, 15 or 30 minutes, light or dark, and exported pictures in the same look.
  • Arrange the window and the dropdown. Choose the window’s tabs and their order, and show, hide or reorder the sections, cards and lists on every tab. The dropdown has its own tiles and a List layout with one line per metric. Reset puts everything back.
  • Docker containers. Every Docker container’s memory, CPU, network and ports in the Developer tab, in the window and the dropdown, and Stop on each, after a confirmation.
  • Sound and Bluetooth tabs. The Mac’s output device and level with a slider for every app playing sound, the microphone and the apps using it, and every connected Bluetooth device with its battery, lowest first.
  • Units you choose. Celsius or Fahrenheit, bytes or bits for network speed, and CPU per core or per Mac, each with a live example in Settings.
  • Quit and force quit. Quit an app or a single process, always after a confirmation.
  • Keyboard shortcuts and Shortcuts actions. Open the dropdown or the window from any app, and get a reading or the busiest app from the Shortcuts app.
  • Export as an image. Save or copy a snapshot of the Mac as a 1200 × 630 share card or a dashboard image, or any tab of the window as an image.
  • In the Dock, if you like. Show in Dock keeps Vitals in the Dock like Activity Monitor. Opened by hand it shows its window; at login it stays in the menu bar.

What Mac users say

…it doesn't feel overwhelming or bloated in the slightest. It feels native. Lightweight. It's an absolutely vital app.

Merlin ★★★★★ Verified owner

Now I find myself stealing quick glances at the menu bar, instead of taking another sip of coffee.

Ed WisemanVerified on X Emmy-winning director and producer

I’ve tried many monitoring tools in the past, and Vitals just shows me exactly the information i need to see.

Tobias Strebitzer ★★★★★ CTO · Verified owner

Read all 152 on the wall of love

Common questions

Does Vitals show a process's command line, environment and signature?

Yes. Click any process and its drawer gives its code signature with the Team ID, its entitlements, whether it runs through Rosetta, its parent and the app that launched it, the launch agent or daemon behind it, its full command line, and its environment when you open that section. The same comes as CSV, as vitals process in Terminal, and over MCP.

Can I use Vitals and ProcessSpy together?

Yes, and they suit each other: Vitals to find which app is responsible and read what the process is, ProcessSpy for its filters, its record of finished processes, and Shortcuts that run on process events.

Can Vitals filter by CPU, memory, user or port?

Yes. Type filter words beside a name: cpu>10, memory>1GB, gpu>5, user:root, pid:123, port:3000 or is:suspended, and click the magnifying glass for the list. A regular expression goes between slashes, such as /helper|agent/. JavaScript filters are ProcessSpy's.

Does Vitals remember finished processes?

For ten minutes: a process that ended stays under Ended Recently in its app's drawer, with when it started and ended and the memory it held. The app's usage stays in the history for up to a year. ProcessSpy keeps a process's command line and environment after it exits; Vitals does not.

Lifetime for $29 while the launch price lasts

One-time paymentLifetime updates14-day refund

Get Vitals for $29

How we compared

The ProcessSpy column comes from its maker's own site on November 6, 2026. Where the site does not say whether it does something, the cell says "Not stated". If a cell is out of date, email us and we will fix it.

More comparisons

Wondering why apps show so many rows in Activity Monitor? Read about helper processes.