Buyer's guide
Best tools to kill stuck dev servers on Mac in 2026: the buyer's shortlist
Looking for the best way to kill stuck dev servers on your Mac? We compared ten options on price, Mac support, how they find leftovers and how safely they stop them. WhatThePort ranks first for AI agent workflows, Portman is best for telling projects apart, PortKiller is the best free all-rounder and Portreaper is the pick for orphans. Here's the shortlist.
Free guide: fix “port 3000 already in use” in a minute
Disclosure: we make Spookle. It isn't out yet, so it isn't ranked, and nobody paid to be listed.
Key takeaways
- Start with the free built-ins.
lsof -nP -iTCP:3000 -sTCP:LISTENandkillfix most “port already in use” errors in under a minute. - WhatThePort is best if AI agents start your servers. It links each server to the Claude Code, Codex, Conductor or Pane session behind it and stops the whole tree. Free, but the download is Apple silicon only.
- Portman and PortKiller are strong free picks. Portman names servers by project and flags hung ones (macOS 15 or later); PortKiller is popular, updated on 15 Oct 2026 and stops things gently first.
- Portreaper is built for orphans. It's the only tool here that documents finding orphaned dev processes that hold no port, but its builds aren't signed yet.
- Avoid reaching for kill -9 first. Force kills skip cleanup and leave child processes behind. Tools that stop the whole tree with SIGTERM first are safer.
What a dev server cleaner actually is (and what it is not)
A dev server cleaner helps you find and stop local development processes that are still running when you don't want them: a Next.js or Vite server from yesterday, a preview build from another branch, or a node process an AI coding agent started and never shut down. The usual symptom is an error like EADDRINUSE: address already in use :::3000, but the quieter cost is memory, CPU and battery.
There are two kinds. Port killers start from a port number and stop whatever is listening on it. That covers most day-to-day cases. Orphan cleaners start from processes whose parent has gone away (on macOS they get adopted by launchd, PID 1) and ask whether they should still exist, even if they hold no port. The good ones in both groups show you where a process came from, so you don't kill the wrong thing.
A dev server cleaner is not a general system monitor like Activity Monitor or a menu-bar stats app, which show CPU and memory but don't know what a dev server is. It's also not a process manager like pm2 or launchd, which keep services running on purpose. Those long-lived services are exactly what a good cleaner should leave alone.
How we ranked these tools
We read each product's own website, README, store page or release list on 16 October 2026. We didn't run benchmarks, and we only list a feature if the maker documents it. “Not stated” means we couldn't find it in their docs, not that it's missing. Rankings weigh how well each tool solves stuck dev servers specifically.
- 1PriceFree, paid one-off or subscription
- 2Mac supportMinimum macOS, chips, signed or not
- 3Shows the originProject, folder or parent, not just a PID
- 4Finds orphansLeftovers whose parent is gone
- 5Stops safelyGentle first, force only if needed
- 6Kept up to dateDate of the latest release we found
The best tools to kill stuck dev servers on Mac in 2026
Ten options, from menu-bar apps to commands already on your Mac. Each entry lists only facts from the maker's own pages, with a link so you can check them. Spookle comes first because it's ours, but it's coming soon, so it isn't ranked.
Spookle, coming soon from us
- Not released yet
- Planned: macOS 14 or later
- Apple silicon and Intel
- Runs locally, no tracking
Spookle is the menu-bar app we're building for the AI agent era. The plan: spot orphaned agent processes (MCP servers, sub-agents, node chains) even when they hold no port, label each with the agent that likely left it, show dev servers by port, repo and branch, and stop the whole process tree gently before forcing it. Bulk kills always show a confirmation list first, and system processes are never touched.
Everything here describes planned features, not a shipped product. We'll add it to the ranked list once you can download it and the facts can be checked like everyone else's.
Best suited for
Developers who use Claude Code, Cursor, Codex, Gemini or other agents and want leftovers caught automatically. Join the waitlist to hear when it launches.
1. WhatThePort, best for AI agent workflows
- Free · MIT open source
- macOS 14 or later
- Download is Apple silicon only
- 8 interface languages
- Repo updated 1 Oct 2026
WhatThePort is the closest thing to an agent-aware dev server manager you can download today. It lists every local dev server with its port, project, git branch, uptime, memory and CPU, and servers started by Claude Code, Codex, Conductor or Pane link back to the session that started them, so you can resume that conversation (for example with claude --resume).
Stopping is careful: it sends SIGTERM to the server's own process tree, then SIGKILL after a short delay. Clean up preselects servers from deleted git worktrees or ones idle for hours, protects Postgres, Redis, MongoDB and MySQL by default, and can be set to Off, Ask or Automatic (leaking servers are never stopped automatically). Leak alerts turn the icon amber and notify you when a server passes 2 GB or grows more than 500 MB in ten minutes; both thresholds are adjustable. There's a wtp terminal command with wtp list --json for scripts and agents, and Option + Command + P opens it from anywhere.
Two things to know. The prebuilt download is for Apple silicon only (Intel Macs have to build it from source). And it sends an anonymous once-a-day count of which features were used, with no identifiers; onboarding asks first and you can turn it off in Settings. It works from listening ports, so a leftover that holds no port won't show up.
Best suited for
Developers on Apple silicon who run dev servers through Claude Code, Codex, Conductor or Pane and want each server tied back to the session that started it.
Source: whattheport.dev and its GitHub README (tomjohndesign/what-the-port) · Checked 16 October 2026
2. Portman, best for knowing which project a server belongs to
- Free · MIT open source
- macOS 15 or later
- Apple silicon and Intel
- Signed and notarised
- v0.3.3 · 8 Aug 2026
Portman is a menu-bar app that names every dev server by project and framework instead of by PID. Its README says it shows the project path, the git branch, the page title of what the server is serving, and it infers frameworks such as Next.js, Vite, Astro, Remix, SvelteKit, Rails and Django.
Two features matter most for stuck servers. It probes each port and flags servers that hold a port but no longer answer as “alive, but not responding”. And it folds servers whose project folder was deleted, plus dev servers left behind by agent worktrees (it names Conductor, Claude and Codex), into collapsed sections with one Kill all button. It also maps Docker ports back to the container and offers Stop container instead.
Its README doesn't say whether a kill is graceful first, and it lists listening servers, so a leftover process that holds no port won't show up.
Best suited for
Developers on macOS 15 or later who run several projects or agent worktrees at once and want to see which one owns :3000 before killing anything.
Source: Portman README and releases on GitHub · Checked 16 October 2026
3. PortKiller, best free all-rounder
- Free · MIT open source
- Mac menu bar
- Windows and Linux builds too
- 5,100+ GitHub stars
- v3.4.0 · 15 Oct 2026
PortKiller is the most popular open-source option here and was updated the day before we checked. It auto-discovers every listening TCP port, lets you search by port or process name, and kills with one click using a graceful stop first and a force kill if needed.
Extras go beyond dev servers: favourite ports, watched ports with notifications, automatic categories (web server, database, development, system), Kubernetes port-forward sessions with auto-reconnect, and a view of Cloudflare Tunnel connections. You can install it with Homebrew (brew install --cask productdevbook/tap/portkiller) or a DMG from its releases page.
It works from ports, so it shows process names rather than project folders, and its README doesn't mention orphan detection.
Best suited for
Anyone who wants a free, actively maintained port killer in the menu bar, especially if you also juggle Kubernetes port forwards or use Windows or Linux too.
Source: PortKiller README and releases on GitHub · Checked 16 October 2026
4. Portreaper, best for hunting orphaned dev servers
- Free · MIT open source
- macOS menu bar (Apple silicon and Intel)
- Windows build marked experimental
- Not code signed yet
- v0.13.0 · 1 Sep 2026
Portreaper is the closest match to the “orphaned process” problem. Instead of just listing ports, it classifies which listeners look like orphaned dev-server zombies, using signals such as a parent of PPID 1, a dead launcher chain or a dead terminal session, and gives each a confidence tier (confirmed, likely or possible).
It shows the launcher chain for each process (for example Terminal to zsh to npm to vite), and it also surfaces dev processes that hold no port at all. A batch sweep only kills confirmed and likely zombies, a whitelist exempts anything you trust, and processes managed by launchd, Homebrew services or pm2 are exempt automatically. After a kill it checks that the process actually exited and offers a force kill if it didn't. There's a command-line version too.
The catch: releases aren't code signed, so macOS blocks the first launch and you have to allow it in System Settings or clear the quarantine flag yourself.
Best suited for
Developers whose main pain is leftovers from closed terminals or crashed sessions, and who are comfortable opening an unsigned app.
Source: Portreaper README, website and releases on GitHub · Checked 16 October 2026
5. Port Monitor, best paid pick for a simple menu-bar list
- Paid, one-off licence
- 7-day free trial, no account
- macOS 26 (Tahoe) or later
- Apple silicon and Intel
Port Monitor is a small Swift menu-bar app that lists every process on your dev ports (3000 to 9999 by default) with its command, PID and the project folder it was started from. The menu-bar icon shows how many ports are busy.
Killing is careful: it sends SIGTERM, waits, and only sends SIGKILL if the process is still running. Kill All does the same for every row. macOS services such as AirPlay and Control Center are hidden by default, and port data stays on your Mac.
It's a paid one-off licence (the price is shown in your local currency at checkout, so we haven't listed one). After the 7-day trial it keeps listing ports, but killing needs a licence. It requires the newest macOS, and it lists by port, so it won't find leftovers that hold no port.
Best suited for
People on macOS 26 who want a polished, no-fuss list of busy dev ports and are happy to pay once for it.
Source: port-monitor.app · Checked 16 October 2026
6. Raycast Port Manager, best if you already live in Raycast
- Free extension
- Needs Raycast (free for personal use)
- macOS, plus Windows for most commands
- Updated 5 Oct 2026
Port Manager is a community extension for the Raycast launcher. It lists TCP listeners with process details and the full command line, lets you name ports you use often, and has a Kill Process Listening on command: type a port, and it stops everything listening there. There's a menu-bar list on macOS too.
You choose SIGTERM or SIGKILL in its preferences, and since September 2026 it only reports a kill as successful once the process has really exited, with a one-key Force Kill if it ignored the signal. It can also kill a process's parent. Raycast itself is free for personal use, and the extension is free.
Best suited for
Keyboard-first developers who already use Raycast and want “kill whatever is on 3000” two keystrokes away.
Source: Raycast Store page and changelog · Checked 16 October 2026
7. PortDeck, best for worktrees and deploy status
- Free · open source beta
- macOS 14 or later
- Apple silicon only
- v0.1.0-beta.18 · 2 Oct 2026
PortDeck is a menu-bar “command center” for local dev. It shows localhost servers and listening ports with PID, command and working folder, the git repo, branch and worktree, and Docker containers with published ports, grouped by project, then worktree, then service. Actions include open, copy, reveal, stop and refresh.
Its other half is read-only deployment status across Vercel, Supabase, Cloudflare, Netlify, Fly.io, Railway, GitHub Actions and more, using your existing CLI logins. It's an early beta and only runs on Apple silicon.
Best suited for
Developers on Apple silicon who want local servers and production status in one place and don't mind beta software.
Source: portdeck.app and its GitHub releases · Checked 16 October 2026
8. lsof and kill in Terminal, best built-in option with full control
- Free · built into macOS
- Nothing to install
- Graceful or forced, your choice
Every Mac already has what you need. lsof -nP -iTCP:3000 -sTCP:LISTEN shows what's listening on port 3000, kill plus its PID asks it to stop, and kill -9 forces it as a last resort. ps and pgrep -P show parents and children, so you can stop a whole tree.
It's precise and free, but it's all PIDs: you have to work out which project a process belongs to yourself, and it does nothing about leftovers until you go looking. Our step-by-step guides cover it: fix port 3000, find what's using a port and kill orphaned node processes.
Best suited for
Anyone comfortable in Terminal, and the fallback for everyone else when an app can't see a process.
Source: macOS built-in commands (tested syntax on 16 Oct 2026) · Checked 16 October 2026
9. Activity Monitor, best visual built-in
- Free · built into macOS
- Quit, Force Quit or send a signal
- Hierarchical process view
Activity Monitor can quit any of your processes, even one that's stuck, with Quit (a normal, safe quit) or Force Quit. Apple's guide also shows how to send a specific signal and how to see which processes depend on each other with View, All Processes, Hierarchically.
It's organised by process, not by port, so finding the thing holding :3000 means inspecting processes one by one, and dev servers mostly show up as “node”.
Best suited for
Occasional cases where you'd rather click than type, or to spot something eating CPU or memory.
Source: Apple Support: Quit an app or process in Activity Monitor · Checked 16 October 2026
10. npx kill-port, fastest one-liner, but blunt
- Free · MIT
- Needs Node.js
- Latest npm tag: 2.0.1
- Force kills (SIGKILL)
npx kill-port 3000 frees a port in one line, and it can take several ports at once (npx kill-port 3000 5173). It's handy in npm scripts.
We read the source of version 2.0.1, which is what npx kill-port installs today: on a Mac it finds the listening PIDs with lsof and sends kill -9. That skips the process's own cleanup and doesn't touch its children, so use it when you're sure what's on the port.
Best suited for
Scripts and quick fixes where you know exactly what's on the port and just want it gone.
Source: npm package page and the published 2.0.1 source · Checked 16 October 2026
Side-by-side comparison
The same six criteria from our methodology, for every tool. Spookle's row shows planned features. On a phone, each tool becomes its own card.
| Tool | Price | Platform | Shows where it came from | Finds orphans | How it stops things | Latest update |
|---|---|---|---|---|---|---|
| Spookle (coming soon) | Not released | macOS 14 or later (planned) | Project, branch and likely AI agent (planned) | Yes, even with no port (planned) | Whole tree, gentle first (planned) | In development |
| WhatThePort | Free | macOS 14+, Apple silicon download | Project, git branch and the agent session | Deleted-worktree and long-idle servers | Whole tree: SIGTERM, then SIGKILL | Repo 1 Oct 2026 |
| Portman | Free | macOS 15+ | Project path, git branch, framework | Agent worktree and deleted-folder servers | Not stated | 8 Aug 2026 |
| PortKiller | Free | macOS, Windows, Linux | Process name and category | Not stated | Graceful, then force | 15 Oct 2026 |
| Portreaper | Free | macOS (Windows experimental) | Launcher chain, app label | Yes, including portless ones | Gentle, verified, force on request | 1 Sep 2026 |
| Port Monitor | Paid one-off (7-day trial) | macOS 26+ | Project folder | Not stated | SIGTERM, then SIGKILL | Not shown |
| Raycast Port Manager | Free (needs Raycast) | macOS, Windows | Process details, command line | Not stated | SIGTERM or SIGKILL, verified | 5 Oct 2026 |
| PortDeck | Free beta | macOS 14+, Apple silicon | Git repo, branch, worktree | Not stated | Stop action (method not stated) | 2 Oct 2026 |
| lsof and kill | Free, built in | macOS | Only with extra commands | Manual (PPID 1 check) | Your choice | Built in |
| Activity Monitor | Free, built in | macOS | Process hierarchy | No | Quit or Force Quit | Built in |
| npx kill-port | Free | Any OS with Node.js | No | No | SIGKILL (kill -9) | npm 2.0.1 |
Checked 16 October 2026 from each product's own pages. Dates are the latest release we could see, in Brisbane time.
Which tool fits your situation
| Your situation | Pick | Why |
|---|---|---|
| Dev servers started by Claude Code, Codex, Conductor or Pane | WhatThePort | Links each server to the agent session that started it, stops the whole tree |
| Several projects or AI agent worktrees running at once | Portman | Names servers by project and branch, and groups agent worktree leftovers |
| Leftovers after closed terminals or crashed sessions | Portreaper | Flags orphans by PPID and launcher chain, including ones with no port |
| Free menu-bar app that just works, any OS | PortKiller | Popular, actively updated, graceful kill first |
| Newest macOS, happy to pay once | Port Monitor | Clean list with project folders, SIGTERM before SIGKILL |
| Keyboard-first, already on Raycast | Raycast Port Manager | Kill whatever is on a port from the launcher |
| Nothing to install | lsof and kill | Built in, precise, full control |
Frequently asked questions
What's the best free tool to kill a stuck dev server on Mac?
It depends on what's stuck. If AI agents start your servers, WhatThePort is free and links each one to the agent session behind it (Apple silicon download). For a quick port fix, PortKiller is free and actively updated. If you run lots of projects, Portman shows which project owns each port (macOS 15 or later). For orphaned leftovers, Portreaper is built for exactly that.
How do I free port 3000 on a Mac without installing anything?
Run lsof -nP -iTCP:3000 -sTCP:LISTEN in Terminal, note the PID, then run kill with that PID. Only use kill -9 if it won't stop. Our port 3000 guide walks through it.
Is it safe to use kill -9 on a dev server?
It works, but it's the blunt option. kill -9 (SIGKILL) stops the process instantly, so it can't save state or shut down its own child processes, which can keep running and keep holding resources. Try a plain kill first and give it a few seconds.
What's the difference between a port killer and an orphan cleaner?
A port killer starts from a port number and stops whatever is listening on it. An orphan cleaner starts from processes whose parent has gone away and asks whether they should still exist, even if they hold no port. Most tools here are port killers; Portreaper is the main orphan cleaner.
Why do dev servers keep running after my AI agent session ends?
When a tool starts a server in the background and then exits or crashes, the server can lose its parent. On macOS it's adopted by launchd (PID 1) and keeps running, holding its port and memory, because nothing is left to tell it to stop.
Why is port 5000 or 7000 always taken on my Mac?
That's usually AirPlay Receiver, which runs inside Control Center (ControlCe in lsof). Killing it doesn't stick because macOS restarts it. Turn off AirPlay Receiver in System Settings, General, AirDrop and Handoff, or use a different port.
Is Spookle available yet?
Not yet. Spookle is in development, so it isn't ranked here. You can join the waitlist and we'll email you once, when it launches.
How do you keep this list up to date?
We re-check each tool's own page and release notes and update the date at the top when anything changes. Spotted something out of date? Email hello@tugadot.com.
Sources
All checked on 16 October 2026.
- WhatThePort: whattheport.dev and its GitHub README (tomjohndesign/what-the-port)
- Portman: Portman README and releases on GitHub
- PortKiller: PortKiller README and releases on GitHub
- Portreaper: Portreaper README, website and releases on GitHub
- Port Monitor: port-monitor.app
- Raycast Port Manager: Raycast Store page and changelog
- PortDeck: portdeck.app and its GitHub releases
- lsof and kill in Terminal: macOS built-in commands (tested syntax on 16 Oct 2026)
- Activity Monitor: Apple Support: Quit an app or process in Activity Monitor
- npx kill-port: npm package page and the published 2.0.1 source