The outline and accepted proposals
.threadvm/ → nested Git repositoryWhat if the outline you think in was also the place where work happens? Below is the actual outliner, playing a short story with scripted agents. Watch, or click in and take over.
Write a thought. A bullet is a thought, and nesting gives it context. The outline is a normal outline until you ask for help.
Mention an agent. Mentioning @cursor turns the bullet into a thread with its own sandbox and branch. It sees the path to the bullet and the branch beneath it.
Answer when it asks. When an agent needs you, its question appears under the bullet that asked, and every folded branch above it keeps count. Pick an answer.
Review what comes back. Agents never edit the outline. Their changes arrive as suggestions: green for new bullets, struck text for rewording. Accept or reject each one.
Keep the result. Accepted suggestions become part of the outline, and the thread stays attached to the bullet. Now it is yours: type @claude anywhere and press Return.
Everything runs in this page: the outline, the room, and the agents, which are deterministic simulations. Nothing is sent anywhere, and a reload starts over.
Before the infrastructure, a few simple ideas about how working together should feel. Written, naturally, as an outline.
threadvm open serves the same outliner against a Git-backed outline in your project. Delegated bullets run real agents in their own worktrees and tmux sessions, and report back as proposals.

The document, the execution, and the code have different jobs. Keep each history where it belongs, and connect them with stable IDs.
Read the architecture note →The outline and accepted proposals
.threadvm/ → nested Git repositoryRuns, observations, and agent activity
events.jsonl → append-only eventsThe actual changes to your project
project Git → worktrees + branchesThis is a work in progress, built in the open. Good tools start with good questions.