Local consoleDockmaster
Local berth monitor for macOS

Know what's running on your Mac.

Stray dev servers, dirty repos, committed secrets, and forty gigs of node_modules. One dashboard on your loopback, for this Mac and any other Mac over SSH.

↑ Star on GitHub View source

Paste the prompt into your coding agent, or git clone and npm start. MIT licensed.

Dockmaster Harbor overview with live module cards and system vitals
Binds to127.0.0.1 only
Background scanningnone
Accounts, telemetrynone
Idle footprint~0 CPU
Modules

Every berth in the harbor.

Each module scans only while its page is open, and each one can be switched off. Destructive buttons are guarded and re-verified before they act.

01 / PORTS

Find the server you forgot about.

Every listening TCP port with its project, process tree, and whether it is exposed to the LAN. Stop sends SIGTERM to the whole tree. Force kill is a separate, confirmed step.

Ports page listing dev servers with stop buttons
Repository status board
02 / REPOS

A status board for every repo.

Dirty files, ahead and behind counts, stale branches, and the last commit for everything under your dev root. Copy a path or jump to GitHub from the row.

03 / WORKTREES

Dry dock for worktrees and stale branches.

Linked worktrees, prunable leftovers, and branches untouched for 30 days. Remove and delete are one click, but the main worktree and default branches are off limits.

Worktrees and stale branches page
Secrets audit page with redacted findings
04 / SECRETS

Catch the key before you push it.

Credential-shaped strings in tracked files across every repo: cloud keys, tokens, private key blocks. Previews are redacted on the server. The full string never leaves the process.

05 / DISK

Reclaim the bilge.

node_modules, build output, virtualenvs, and tool caches like DerivedData and Homebrew, sized with du. Clean only ever deletes a directory whose exact name is on the list.

Disk page showing reclaimable build artifacts and caches
Health page with status and latency per check
06 / HEALTH

Is it up?

A personal status page for localhost services and the external URLs you care about, with status code and latency. Also Docker containers with a guarded stop, Hosts profiles, live process load, and a ⌘K palette that searches everything.

07 / REMOTE MACHINES

Any Mac you can SSH to.

Pick another machine in the header and every module runs there: ports with managed SSH forwarding, repo status, disk, health, secrets, all of it. A small companion process starts over your existing SSH session and exits when you leave. No cloud backend, no open port, no reverse tunnel. You only need SSH access between the machines; Tailscale is one way to get it.

Security model

It can kill processes. So it defends itself.

Dockmaster started as Port Authority. It keeps the same security model, hardened for a dashboard that runs all day.

  1. 01
    Loopback onlyBinds to 127.0.0.1. Middleware rejects any non-loopback Host header, so DNS rebinding gets nothing.
  2. 02
    Per-process tokenEvery API call carries a token injected into the page under a custom header. That forces a CORS preflight, which is never answered, so the browser blocks cross-origin requests before they start.
  3. 03
    Origin checkedOrigin is validated on every API request. A missing or stale token is a 401. A refused action is a 403.
  4. 04
    Fresh scan before every killDestructive actions re-verify identity against a fresh scan. Stale rows get a 409. Never PID 1, never Dockmaster or its ancestors, never another user's process.
  5. 05
    Nothing runs unless you lookNo background timers anywhere. Polling pauses when the tab is hidden. No accounts, no telemetry. The only outbound requests are the Health URLs you add yourself.
  6. 06
    Hosts through the OSApplying an /etc/hosts profile opens the macOS admin prompt. It backs up first and never touches sudoers.
Setup

Ask your agent, or do it by hand.

Requires macOS and Node 20.12 or newer. The production build idles at 150 to 200 MB and no CPU.

Set up Dockmaster on this Mac: https://github.com/naman0r/dockmaster

Clone the repo or use an existing checkout, read the README, and check the
requirements. Install dependencies, configure my development root, build and
start the production app on loopback, and verify it works. Give me the URL
and explain how to start and stop it. If I want to connect a homelab, follow
docs/remote-machines.md using my existing SSH access.

By hand: git clone https://github.com/naman0r/dockmaster && cd dockmaster && npm install && npm run build && npm start

Open source

Missing a module you want?

MIT licensed, plain TypeScript, one process. If Dockmaster has stopped a stray server or freed a gig of cache for you, a star helps, and a PR or issue gets a real reply.