LocalHelm
Control panel for local development.
One control panel for the repos you choose. See which ones have uncommitted work, unpushed commits, unpublished versions, or dependents pinned to an old release. Then act from the same board: commit, push, publish, bump versions, update dependents, and start or stop dev servers. Every write opens a plan first and waits for you to confirm.
The controls depend on where you open it:
- Operator board at
http://127.0.0.1:4321, on the machine that runs localhelm serve: every read and every write.
- Deck at
/deck, from a phone or any other device on your LAN or Tailscale: read-only. One tile per running app that has a LocalSlip claim and listens beyond 127.0.0.1. Tap to open, long-press to copy the link. No commit, publish, start, or stop. Write requests from anywhere but loopback get a 403.
Start and stop need LocalSlip. The Sites tab needs a FilePress site. Both are optional. LocalSlip is the slip. LocalHelm is the wheel.
pnpm add -g localhelm
pnpm install && pnpm build
localhelm serve
Open http://127.0.0.1:4321. Click Add projects, scan that folder (. is where you ran serve), tick the ones you keep, and confirm. Nothing auto-enrolls.
The same actions exist on the CLI if you want them. scan, status, and deps only read. Other commands print a plan; --apply writes. publish, push, ship, and global need named ids. Never --force.
localhelm scan .
localhelm enroll ./my-cli ./my-lib --apply
localhelm status
localhelm serve --free-port
Menu Main / Demo (or localhelm serve --demo) is a sandbox fleet (localhelm.fleet.demo.json). Add and remove stay off the main file. Clear demo wipes only that sandbox. Commit, publish, push, and Land stay off.
localhelm serve opens the dashboard on port 4321. A global install runs the packaged board (SSR deps are bundled; no app/ needed). A checkout still uses Vite. Serve from the same tree as localhelm.fleet.json (or a child) or the board stays empty. If that port is already taken, serve names the pid and stops. Re-run with --free-port to stop it and bind. Never --force. Writes stay on loopback.
Skip folders with .localhelmignore at the workspace, or ~/.localhelm/ignore.
Commit-message drafts send repository text to Ollama on 127.0.0.1:11434 by default. For a remote host, explicitly set LOCALHELM_OLLAMA_MACHINE or LOCALHELM_OLLAMA_URL; LOCALHELM_OLLAMA_MODEL selects the model. The CLI and commit dialog name the destination. Drafting never scans the LAN or selects a cached remote host. Use ollanet scan --lan separately if you want discovery, then select the host. When Ollama is unavailable, the editable fallback message remains.
Requires Node 22+. License Apache-2.0. Site: localhelm.dev.
xFacts label
See the rest of the Catalyst Forge shelf.