See what is still listening. Inspect the project, command, PID, and ports. Stop only what you choose.
Free, open source, native macOS. Download the latest signed and notarized build or build from source.
The app shows the actual process behind a local server and checks its identity again before it sends a stop signal.
Screenshot uses synthetic demo projects, not a user's private workspace.
New prompt. New project. Another localhost URL. When you’re moving fast with AI coding tools, it’s easy to lose track of what you left running.
Kill the Zombie Servers puts the project, process, PID, and ports in one native Mac window. Keep what you need. Kill what you’re done with.
No terminal archaeology. No account. No cloud. Just your servers and an off switch.
Download the current Apple-silicon build from GitHub Releases.
The release is signed with a Developer ID certificate, notarized by Apple, and requires macOS 14 or later.
- Download the ZIP and expand it.
- Move Kill the Zombie Servers.app to Applications.
- Open the app normally.
Upgrading from Dev Server Activity? Quit the old app first. This is the same app under a new name, with the same bundle identifier. After opening the new copy, remove the old Dev Server Activity.app to avoid keeping two copies.
Each release includes a SHA-256 checksum file. From the directory containing both downloads:
shasum -a 256 -c KillTheZombieServers-1.1.2-5-macos-arm64.sha256With GitHub CLI installed, verify the repository's release-verification attestation:
gh attestation verify KillTheZombieServers-1.1.2-5-macos-arm64.zip \
--repo joeyarcisz/dev-server-activity \
--predicate-type https://in-toto.io/attestation/release/v0.1The expected Gatekeeper source is Notarized Developer ID. Do not bypass a macOS warning for a copy that fails verification.
- Finds likely local dev servers owned by the current macOS user.
- Recognizes Vite, Next.js, Node.js, Python, Ruby, PHP, Bun, and Deno processes.
- Shows the project folder, process name, command, PID, listening ports, and hosts.
- Opens a selected localhost address in the default browser.
- Filters the server list and refreshes it automatically every six seconds.
- Sends
SIGTERMfor Stop orSIGKILLfor Force Stop, after confirmation.
When full process inspection is unavailable, the app can still probe a fixed list of common localhost ports. Those results are clearly marked as port-only and cannot be stopped from the app.
Stopping a process is consequential, so the confirmation freezes the exact server shown in the dialog. Kill the Zombie Servers records that process's launch time, then requires the same PID and launch time before and after revalidating its command line and listening ports. If any check fails, nothing is stopped and the list is refreshed.
Force Stop can end a process without allowing it to save state. Review the process details and try Stop first.
The app has no privileged helper and does not request administrator access. It can signal only processes allowed by the current macOS user account.
See Architecture for the scan and termination flow.
Official release ZIPs are checked for local packaging metadata and receive a GitHub release-verification attestation after their published checksum, Developer ID signature, stapled notarization ticket, and Gatekeeper acceptance are independently rechecked in GitHub Actions.
Kill the Zombie Servers has no accounts, analytics, advertising, telemetry, or cloud service. Process inspection stays on your Mac. The app reads local process and listening-port information and connects only to localhost when probing or opening a server.
See Privacy for the complete data-flow statement.
The app needs access to current-user process and listening-port information to identify and stop a selected server. The Mac App Sandbox restricts that access, so the full app is distributed as a signed and Apple-notarized download instead of through the Mac App Store.
Requirements:
- macOS 14 or later
- Xcode 15.3 or later with Swift 5.10+
Run the tests:
swift testBuild and launch a local development copy:
./script/build_and_run.sh --verifyLocal development builds do not need Joey's signing or notarization credentials. Maintainer release steps are documented in Direct distribution.
Bug reports and focused pull requests are welcome. Read Contributing before changing process detection or termination behavior. Security-sensitive reports belong in the private vulnerability form, not a public issue.
The source code is available under the MIT License. The Kill the Zombie Servers name and app icon identify the original project; modified distributions should avoid implying that Joey Arcisz produced or endorsed them.

