docsorchestrationpartial

Every worktree, as a live agent-aware swimlane

Turn git worktree list into a monochrome trunk-and-branch diagram, with each lane showing live git facts and the exact coding agents working inside it. Fully local, read-only, no telemetry.

overview

The Worktrees view renders your repo's git worktrees as a vertical swimlane diagram: a trunk rail with each worktree branching off as a lane card. Every lane shows live git facts — ahead, behind, changed files, +/- diff, lock status — alongside the coding-agent and shell sessions whose working directory lives inside that worktree. It exists to solve one problem: losing track of which agent is on which branch when you run several worktrees and several agents at once.

  • Local-only: spawns git in the project dir, no network calls, no telemetry
  • Read-only: only list/status/diff/rev-list/rev-parse/symbolic-ref — never mutates the repo
  • Nothing persisted — the overview lives in memory and is rebuilt each 5s poll
  • Poll pauses while the window is hidden and stops on unmount
  • On Windows, git probes use CREATE_NO_WINDOW so no console flashes
  • Each worktree probed on its own thread; git failures degrade to 0, not an error
why it matters

Agent-aware swimlanes

Each lane lists the AGENT-role sessions running inside it, matched to the worktree by longest-prefix working directory, with the agent kind inferred from its launch command (claude, codex, cursor, gemini, or custom).

Fully local, read-only git

Every fact comes from local git spawned in the project directory — worktree list, status, diff, rev-list, rev-parse, symbolic-ref. No remote calls, no telemetry, and the command never mutates the repo.

Live status without re-layout

Layout is memoized on a structural key that excludes activity, so live agent pulse state (active, working, done) is overlaid onto a stable diagram each tick instead of forcing the whole view to re-render.

Polling that stays proportional

A single 5-second git poll is guarded three ways: it skips if the previous tick is still in flight, pauses entirely while the window is hidden, and clears on unmount — so git work tracks what you're actually looking at.

Concurrent, fault-tolerant probing

The Rust command probes each worktree on its own scoped thread, so a tick's wall-clock is the slowest single worktree, not the sum. Any git failure degrades to 0 rather than erroring the whole view.

Jump straight to the terminal

From the inspector's agent list, click OPEN next to any agent to focus that session in the grid — the diagram is a map back into your live shells, not a dead-end report.

how it works
01

Open the view

Click 'worktrees' in the left sidebar. The main panel switches to the swimlane diagram: a trunk rail with one lane card per worktree, sorted trunk-first, then primary, then alphabetically.

02

Read live git per lane

Each lane header shows ahead, behind, changed file count, and +ins/-del diff (the diff metric appears only when there are changes), plus a 'locked' flag for locked worktrees. Values refresh on the 5-second poll.

03

See which agents run where

Lane sub-rows list each AGENT slot with its inferred kind, live pulse glyph, and task label. Non-agent slots collapse into a '+N non-agent slots' counter; empty lanes read 'no agent attached'.

04

Inspect a lane

Click a lane card to open the docked inspector: full path, branch (or 'detached <sha>'), trunk/primary flags, ahead/behind, changed files, diff, agent count, and a per-agent list. Click the empty canvas to deselect.

05

Open an agent

In the inspector, click OPEN next to an agent to focus that session and switch back to the grid view.

faq

Can I create, remove, or switch worktrees from here?

No. The view is strictly read-only — inspection only, no git-mutating actions. You cannot create, remove, lock, prune, or switch worktrees from the diagram.

Does the collision overlay work?

Not yet. Cross-worktree collision detection is an unimplemented stub: the overlay always renders nothing and the blast-radius port returns an empty list. The intended algorithm (seeding changed-file symbols and expanding via Code Map blast radius) is documented in the code but depends on the Code Map providing real reverse edges, which isn't shipped.

How are agents mapped to worktrees?

By longest-prefix working-directory match. A session whose cwd falls inside a worktree is attributed to that lane; a session outside every worktree falls back to the primary worktree, which can mis-attribute it.

Is there a manual refresh?

No — it's a fixed 5-second poll with no refresh button, so the diagram can briefly lag a fresh commit or file change. Git counts are best-effort: a probe failure silently yields 0 rather than an error.

get started

one project. many shells. zero noise.

13x is local-first and free of telemetry — your code, commands and shells never leave the machine. Join the waitlist for the next build.