A living map of one repository and the parallel Claude Code agent sessions working in it — rendered as a precise, ink-toned hanging structure. Higher-level parts at the top, finer parts flowing downward; sessions as colored wisps; every layer read from the workflow you already have, never interfering with it.
- The code skeleton — directories as orthogonal arms in descending tiers, files as solid boxes on hairline stems. Hover a file to light up its dependency traces: cyan arcs to what it imports, amber arcs from what imports it.
- Live sessions — every Claude Code session working in the repo (or its worktrees) appears as a colored wisp hovering over the code it touches; its edits travel as same-colored light pulses along the structure. Attribution comes from metadata-only transcript tailing: conversation content is never read, stored, or shipped.
- Worktrees — each
git worktreeis a satellite structure tethered by a right-angle trace, showing only its diff (green added / blue modified / red deleted), with GitHub PR state as glow behavior (steady = passing, breathing = pending, flicker = failing, dimmed = draft). .coord/coordination — intents become territory claims; the bulletin feed streams with status tokens badged.- Docs & ideas — workflow documents (running logs, session prompts, plans) hang as
lanterns anchored to the code they reference; stale docs gutter, and a hygiene panel
lists findings (dead references, done prompts) with confirmed archive/delete actions.
POST /api/notes(or the UI) drops ideas intoIDEAS.md, parsed live. - History — a timeline scrubber grows the structure commit-by-commit; layout never re-flows, so your spatial memory survives time travel.
Install once, then run it from any repo:
npm install && npm link # once, in this checkout
cd <your-repo> && fractalcode # builds the client on first run, opens the browserfractalcode [path] [--port N] [--no-open] — path defaults to the current
directory. (From this checkout, npm run start -- <repo> and npm run dev still
work for development.) Everything is headlessly verifiable:
curl localhost:7743/api/snapshot.
Keep it open on a second monitor while your Claude Code sessions work — they appear as wisps, their edits as colored pulses, unprompted.
- Hover a file — tooltip + its dependency web lights along the structure itself: cyan routes to what it imports, amber routes from what imports it.
- Click a file — fly to it and hold it: routes stay lit, pulses stream, and the inspector panel lists every import/importer as a clickable path.
- Ctrl+K or / — fuzzy file finder. Esc — release / zoom out.
- I — capture an idea into
IDEAS.mdwithout leaving the viz, anchored to the file you were on. - HISTORY (bottom left) — scrub the repo growing commit by commit, with a date · commit · sha readout. ? — the full legend, shown once on first run.
All tunables live in packages/shared/src/config.ts defaults, overridable per repo via
fractalcode.config.json and CLI flags (--port, --default-branch). Visual tunables
live in packages/client/src/config.ts.
npm workspaces: packages/shared (the typed protocol contract), packages/server
(git scanning, transcript tailing, coord/docs/deps readers, watchers, http+ws),
packages/client (pure layout core + Three.js scene + plain-DOM panels). Strict
TypeScript throughout; npm run check is the gate (typecheck + eslint zero-warnings +
vitest). Degradation is data: anything unavailable (gh, .coord, history) surfaces as an
explicit payload, never a silent fallback.
The next horizon — spawning and corresponding with sessions from inside the tool — is
designed in docs/WORKFLOW_DESIGN.md.
Apache-2.0. See LICENSE.