Reap the processes your coding agents leave behind.
Reaper is a native macOS menu bar app that finds the dev servers, watchers and daemons started by coding agents and lets you kill them in one click.
Agents spin up npm run dev, test servers and background daemons, then move on. Reaper shows every process an agent started: the command, the ports it holds and which agent started it. That includes ghosts, processes whose agent session has already ended.
-
Claude Code (CLI and desktop)
-
Cursor (editor and
cursor-agent) -
Codex (CLI and desktop app)
-
OpenCode
-
T3 Code
-
Grouped by agent: each section shows the agent's own app icon.
-
Ghosts first: within each agent, ghosts (👻) come first, then the longest-running processes.
-
Filters: switch betweenAll and*👻 Ghosts* , and optionally show only processes listening on a port.
-
Ports: click a port to open
http://localhost:<port>. A 🌐 marks ports open on all network interfaces, not just localhost. -
Kill: × stops the whole process tree with SIGTERM, and offersForce (SIGKILL) if it survives. ⌥-click × to force-kill straight away. Expand a row to kill individual subprocesses.
-
Context menu: copy the command or PID, or reveal the working directory in Finder.
-
Launch at login.
Reaper reads the process table with libproc, polls every 3 seconds, and doesn't shell out to ps or lsof.
- Ancestry: a process belongs to an agent when one of its parent processes is that agent.
- Environment markers: when the parent chain is broken because the process was reparented to
launchd, Reaper falls back to markers that agents leave in the environment, such asCLAUDECODE,CODEX_SHELL,CURSOR_AGENTor the host app's bundle ID. Such a process is a ghost. - Noise filtering: the agents' own helper processes, editor extensions (language servers, test workers) and updaters are hidden.
Privacy: Reaper only reads a fixed list of marker environment variables and never stores or shows any other environment values. It makes no network requests.
Download the latest build from the releases, unzip it and move Reaper.app to /Applications.
Requires macOS 14 or later.
Requires Xcode 16 or later (Swift 6).
./bundle.sh # ad-hoc signed build at build/Reaper.app
./bundle.sh --install # build, copy to /Applications and launch
./bundle.sh --release # universal, Developer ID signed and zipped for distribution
--release signs with the first Developer ID Application identity in your keychain; set SIGN_IDENTITY to choose another. To notarize as well, store credentials once and pass the profile name:
xcrun notarytool store-credentials reaper-notary --apple-id <apple-id> --team-id <team-id>
NOTARY_PROFILE=reaper-notary ./bundle.sh --release
To see what Reaper detects without the UI:
build/Reaper.app/Contents/MacOS/Reaper --dump
Copyright 2026 Appulse Software B.V. Licensed under the Apache License, Version 2.0.
Made by Appulse Software