What you actually do in PortPilot
The unit is the row. A port row knows the process, the folder, and the verbs. You do not run lsof, copy a PID, then kill.
Drive it here. Click a room. Select a listener. Kill, restart, or open. Switch to Text & Data or Database. Focus the panel and use 1 2 3, then K R O on Ports. In Text & Data, open Clipboard, JS Playground, or Time Bench.
Ports
Each line is a listener: port, process, PID, CPU, memory, project.
| Action | How | |---|---| | Search | / | | Peek | Space | | Kill | K | | Restart | R | | Open localhost | O | | Terminal tab | T — Terminal, iTerm, Warp, Cursor, VS Code | | Editor | V — opens the project folder | | Batch | select several rows, kill or restart together |
Tag a row so “API” is a label. Group by project when two Vite servers look the same.
Alerts fire when a port appears, dies, or a process eats CPU or RAM — including a stop you did not expect. Launch always opens Ports. Profiles save filters and favorites.
Text & Data
Half of localhost work is a blob you just copied.
- Searchable clipboard (text, JSON, URLs)
- JSON format and diff, JS Playground, text diff
- Time Bench for timing a snippet
- Convert JSON, YAML, CSV, Markdown, HTML, and files (PDF, Word, Excel) when you need a document
Cmd + K searches ports, processes, clipboard items, and pages in one box.
Database
Same window: Postgres, MySQL, SQLite, Turso, Redis, MongoDB. Optional SSH when the DB is not on localhost.
This is not a replacement for a heavy database GUI. It is here so “is local Postgres up?” does not mean another app.
How you summon it
The app sits in the tray and stays running.
| Shortcut | What it does | |---|---| | Cmd + Option + P | Show or focus (you can change this) | | Cmd + K | Command palette | | Cmd + 1 / 2 / 3 | Ports / Text & Data / Database | | Cmd + , | Settings |
Next: why this is a desktop app — Electron, the preload door, and who is allowed to kill a process.