Skip to content
SlowperPublic

About

Menu bar app for leftover localhost ports, process trees, and agent-safe stops.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Portkeep

Portkeep

Local runtimes, on this Mac.
See who owns :3000. Stop the leftover tree.

Website · Privacy · Source

MIT macOS 14+ Swift 6 Menu bar, local only

Portkeep — local runtimes, on this Mac

Portkeep is a macOS menu bar app for leftover localhost ports. It shows what is listening, which project it belongs to, and whether a human, Cursor, or Claude Code started it. Stop the whole process tree. Reserve a stable port per worktree. Give agents a CLI and MCP.

Yours, with no catch. Ports, PIDs, command lines, and folders stay on this Mac. There is no account, no analytics, and no paid tier. The only optional network call is a Sparkle version check you can turn off.

Portkeep panel — leftovers, projects, and who started them

What it looks like

Portkeep on the Mac menu bar

The menu bar panel

The panel. Leftovers first. Then your projects.

portkeep CLI

Same picture from the terminal.

  • Who started this — Cursor Agent, Claude Code, your terminal, or an orphan reparented to launchd.
  • Stop the tree — not just the pid on the port. The wrapper, the children, then SIGKILL if it hangs.
  • Stable ports — portkeep alloc web gives the same port back in this worktree.
  • Policy — postgres, redis, ollama, and other known services stay locked. --force is SIGKILL only; it does not bypass policy.

Install

Download Portkeep 1.0.0 for Mac — signed and notarized. Menu bar extra, no Dock icon. Hotkey: Control-Option-P.

Or build from source (macOS 14+, Xcode 16+, XcodeGen):

git clone https://github.com/Slowper/Portkeep.git
cd Portkeep
xcodegen generate
xcodebuild -project Portkeep.xcodeproj -scheme Portkeep -configuration Debug \
  -derivedDataPath /tmp/portkeep-dd build
open /tmp/portkeep-dd/Build/Products/Debug/Portkeep.app

Open Settings from the panel, or run portkeep settings.

CLI

After Settings → Agents → Install, or from Portkeep.app/Contents/Helpers/portkeep:

portkeep list                 what's listening
portkeep who 3000             who owns a port
portkeep alloc web            same port next time, in this worktree
portkeep stop 3000            stop the process tree
portkeep install --mcp        CLI + Cursor / Claude Code MCP
portkeep snippet --write      AGENTS.md block for this folder

portkeep list, who, and stop

Privacy

Nothing leaves this Mac except an optional Sparkle version check. See the privacy page.

MDM

mdm/ has a sample profile. scripts/pkg.sh builds an installer pkg. Preference domain: com.sajidpalagiri.portkeep. See mdm/IT.txt.

License

MIT. Issues and pull requests are welcome. Keep stops policy-safe. Do not commit signing keys, notarized disk images, or ~/.portkeep data.

About

Menu bar app for leftover localhost ports, process trees, and agent-safe stops.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages