macOS-first · built for developers

See what's
running.
Run it again.

A native macOS menu-bar app that discovers every process listening on localhost, remembers how you started each one, and gives you run / stop / restart without hunting through terminal tabs.

Apple Silicon & Intel macOS 12+ MIT licensed

Localhost, no surprises.

DevDock surfaces the things you actually need when you're juggling four dev servers at 2am.

Port discovery

Walks every TCP listener via lsof, dedupes IPv4/IPv6, and tells you the port, PID, command, and cwd.

Run · Stop · Restart

Save how a service was started — DevDock spawns it via $SHELL -ic in the right cwd so nvm & asdf just work.

Captured logs

stdout & stderr stream to per-run log files, viewable in a dialog. No more "where did that error go?".

Instant search

Filter the list by label, port, command, cwd, or project name. ⌘F focuses it in one keystroke.

Signal over noise.

Every process gets sorted into one of three buckets so the things you care about float to the top.

Dev

What you're actually building.

Foreground services launched from a project root — your web server, your API, your database, your background workers.

next dev cargo run postgres redis-server

Tooling

Helpers that keep dev running.

IDE helpers, language servers, container runtimes, ADB, anything inside an .app/Contents/ bundle — visible but tucked under a fold.

rust-analyzer tsserver Docker OrbStack

System

macOS doing macOS things.

Apple daemons and consumer apps that happen to bind a port. Hidden by default, one click away when you want them.

rapportd ControlCenter sharingd

Tail the logs. Ask your AI.

The two things you actually do when something breaks — built in, opt-in, local-first.

Per-run logs

stdout & stderr captured to ~/Library/Application Support/DevDock/logs/<run-id>.log.

14:02:18 [next] ready - started server on 0.0.0.0:3000 14:02:19 [next] compiled successfully in 412 ms (1234 modules) 14:02:24 GET / 200 in 38ms 14:02:24 GET /_next/static/chunks/main.js 200 14:02:25 GET /api/health 200 in 4ms 14:02:31 WARN useEffect missing dependency: 'fetchUser' 14:02:42 POST /api/auth/login 200 in 112ms 14:02:48 ERR /api/billing 500 — TypeError: Cannot read 'plan' 14:02:49 [next] ⨯ rendering page /billing failed 14:02:53 GET /billing 200 in 78ms (after restart)

Local AI suggestions opt-in

Point DevDock at whichever AI CLI you already have installed — it stays local, you stay in control.

Detected a Next.js project at ~/work/acme/web.
Suggested command: pnpm dev on port 3000.
Stale node still bound to :5173 with no parent shell.
Suggested action: free the port before next launch.
Claude Codex Cursor Ollama

Up and running in three steps.

No background services to install, no daemons to babysit. Just open the menu bar.

  1. 1

    Download

    Grab the latest signed bundle for Apple Silicon or Intel from GitHub Releases.

    DevDock_*.dmg
  2. 2

    Detect

    DevDock scans every TCP listener and groups them by project. You'll see your stack in the menu bar in under a second.

    ⌘ Space → DevDock
  3. 3

    Manage

    Save the commands you use. Run, stop, and restart from the menu bar — descendant processes reaped cleanly.

    Run · Stop · Restart

Take control of localhost.

Free & open source. macOS-first, with Linux on the roadmap and Windows scaffolded.

No account · No telemetry · No background daemon