@ghostlygawd/hangar
v0.3.0
Published
A free, open-source cockpit for parallel Claude Code on Windows — isolated worktree spaces, real interactive sessions, multi-account, zero-token observability.
Maintainers
Readme
Hangar
A free, open-source cockpit for running Claude Code in parallel on Windows.
Spin up isolated worktree spaces as fast as you can think of them, launch a real interactive Claude Code window in any of them — under whichever account has headroom — and watch everything from one dashboard, on desktop or your phone. Your main branch is structurally safe the whole time.
Think Conductor, but Windows-native — and better. Plus the feature nobody else ships: multi-account. When one subscription hits its weekly limit, Hangar parks it and one click continues the same space on your other account.
→ ghostlygawd.github.io/hangar
Install
The easy way — download
Grab the latest Hangar.exe from Releases, double-click it, and the cockpit opens in your browser. No terminal, no setup.
The download is unsigned (a code-signing certificate costs money, and Hangar is committed to zero paid dependencies), so Windows SmartScreen shows a one-time prompt — click More info → Run anyway.
For developers — npm
If you live in a terminal:
npm i -g @ghostlygawd/hangar # or: npx @ghostlygawd/hangar
hangar # starts the cockpit and opens it in your browserYou need Node 18+ and Claude Code — which, if you're here, you already have. Run hangar doctor anytime to confirm your setup.
Then: add a repo on the Board, create a space, hit Launch. That's the whole loop.
Why it's different
- Real windows, never headless. Hangar opens actual interactive
claudeterminals you can type in. Fan-out happens with subagents inside a session — not with opaque background fleets. - Zero-token observability. The dashboard works by tailing the transcript files Claude Code already writes. Watching a session costs nothing — it uses exactly the tokens a hand-opened session would.
- Zero running cost. Localhost server, no cloud, no accounts, no telemetry. Optional free Cloudflare quick tunnel for phone access, gated by a timing-safe token.
- Structurally safe parallelism. A space is a git worktree on its own branch. Deleting one is only possible when it's merged + clean — anything else requires typing the space's name into a force-confirm. The default branch's checkout is untouchable.
The tour
| View | What it shows | |---|---| | Board | Every repo → its spaces as cards: branch, dirty/merged state, diff stat, the live launch lifecycle (opening → waiting → live), launch + safe-delete | | Activity | The latest move in every session across all spaces, newest first | | System | A session-centric health view (CPU / memory / network / disks), with the raw process list one click away — sampled only while you're watching | | Settings | Account profiles, parked-limit status, remote-access token, tracked repos |
Multi-account in 3 commands
hangar login alt # opens a window for the "alt" profile — run /login inside it once
# …work normally; launch any space under any profile from the Board…
hangar tunnel # optional: watch from your phone — prints a tokened link + QRWhen a profile hits its limit, Hangar detects it from structured transcript fields (never by reading message text), shows a parked badge, and offers continue as on your other profile. It never switches automatically.
Docs
- Getting started — zero to first watched session in 5 minutes
- How it works — spaces, profiles, transcript tailing, the safety rules
- Configuration — every key in
~/.hangar/config.json - Changelog · Contributing
Development
git clone https://github.com/GhostlyGawd/hangar.git
cd hangar && npm install
npm test # core safety suite (worktree rules, gate, launch, limit detection)
npm run web:dev # frontend dev server with API proxy
npm run web:build # rebuild web/dist (committed)
node bin/hangar.js # run from sourceThe design language lives in design/LANGUAGE.md; the work is tracked on Linear and the kit's "department" conventions live in .claude/skills/.
License
Apache-2.0. Built by GhostlyGawd. Not affiliated with Anthropic.
