Changelog
Your download link always serves the newest version. Download it again and replace the app to update.
0.3.5
- Favicon lookups never leave your Mac: a local server that redirects its icon to another host is no longer followed.
0.3.4
- The disk image opens to a proper install window: drag DevPorts onto the Applications folder, with the steps right below.
0.3.3
- Launch agents written as
bash -o pipefail -c, polling loops likewhile true; do …; done, and commands wrapped insudo,time,nice, orcaffeinateare recognized, so their programs aren't reported as orphaned. - Only the programs a launch agent runs count as its own. A folder it changes into or a log file it writes to no longer hides unrelated processes.
- An error message on a row no longer carries over to a different process that reuses the same pid.
- Launch agents written as
0.3.2
- Coding agents started as a Python module, such as
python -m hermes.cliorpython -m aider, are recognized: never listed or stopped, and the commands they run are tagged with the agent's name. - Jupyter servers are labeled Jupyter. Notebook kernels are no longer listed, so a stray click can't lose a notebook's state.
- Launch agents that run a shell command line are recognized, so their programs aren't reported as orphaned.
- Switching to another app with Cmd-Tab closes the dropdown.
- A pending Stop? confirmation no longer carries over to a different process that reuses the same pid.
- Coding agents started as a Python module, such as
0.3.1
- A process orphaned inside a project is marked orphaned right away, with its warning icon, the orphan count in the Background header, and the menu bar dot.
0.3.0
- New Background section for dev processes that don't listen on a port: watchers like
tsc --watchandnodemon, queue workers, and processes orphaned when an agent or terminal session ended. - Each background row shows the command, project, uptime, memory, and CPU, tagged with what started it: Claude Code, Codex, Cursor agent, Grok, Hermes, Gemini, Aider, OpenCode, or Terminal.
- Orphaned processes are marked in orange, and the menu bar count gets a small dot while any exist.
- Stopping a background process takes a second click to confirm.
- Coding agents, editors, terminals, and their own MCP and language servers are never listed, and every stop refuses if one of them is in the process tree.
- Show all listeners also lists processes listening outside a project folder, such as
npx servein/tmp.
- New Background section for dev processes that don't listen on a port: watchers like
0.2.0
- Memory and CPU for each server, summed over the same process tree that Stop stops. Memory above 2 GB is highlighted.
- Restart a server: DevPorts shows the exact command, stops the server, and runs the command again in a new Terminal window.
- Open a project in Cursor, VS Code, Zed, or Xcode, or in Ghostty, iTerm, Warp, or Terminal, from the row's menu.
- The dropdown hangs directly under the menu bar icon and always fits its content.
- Stop all and Restart confirm inside the dropdown.
0.1.0
- First release: a menu bar list of running dev servers with favicon, project, framework, ports, and uptime.
- Stop a server and the process tree that exists only to run it, leaving sibling servers and your shell alone.
- Launch at login, and
--listand--stopon the command line. - Universal build for Apple silicon and Intel, macOS 14 or later.