01Stacks
A fork covers its parent like a card. Hover the deck and the whole tree drops down.
- 1.1/sfork or ⇧⌘F
- 1.2⌘E fans the tree out
- 1.3Forks of forks, any depth
Every coding agent you run, in one app, sorted by workspace and worktree. Fork a session to ask a side question without dirtying it. Draw a line from one agent to another and the second one sees what the first is doing.
Workspaces on the left, real terminals on the right. Each project lists its worktrees and the agents running in them. Press ⌃1, ⌃2 and an agent starts in place, already wired into Synapse.
Clone a repo, open a folder, or start from a template. The library finds every workspace already on the machine.
Every agent runs in its own PTY with the PATH a login shell would give it. macOS editing keys work, ⇧Enter is a newline.
Claude, Codex, Gemini, OpenCode, Cursor, Copilot and Amp, one key each. Launch profiles are plain JSON, so changing a flag is one line.
An agent hands you five points and you want to dig into the third. Type /sfork why 3? and a child session answers from the parent's context. The question never enters the parent. Pop the fork when you're done, or send a short summary back.
A fork covers its parent like a card. Hover the deck and the whole tree drops down.
Forks show up on the canvas too, hanging off the agent they came from.
Each running agent is a node, the ones in the app and the ones in your other terminals. Working ones pulse fast, idle ones breathe, forks hang off their parent. Drag from one node to another and context starts flowing. ⌃Tab flips the app into it, ⌘-click a node opens its session.
No orchestrator, no broadcast. You decide who reads whom, and the rest happens on its own: context arrives with the next prompt, messages land in the inbox.
Drag from one agent to another. That's the whole setup.
Arrives before you ask, and you see it arrive.
auth/session.ts.a41f9c2. Hold off on session.ts, moving token refresh there.retryAfter?Every agent can text every agent, whichever CLI it runs in.
Twenty agents open? Find any one in a keystroke.
Start agents in the app, or don't. Synapse also finds the ones in your own terminals and in Superset, from Claude Code's session registry and a process scan.
| Agent | Shows up | Peers read its context | Messages |
|---|
Six operations, three surfaces. Every agent gets the same tools over MCP and the CLI. Claude Code and Codex also get a skill, so you can just ask.
# identity from the process tree
synapse peers --all
synapse link codex-api
synapse read codex-api
synapse send codex-api "landed?"
synapse inbox
synapse ui# stdio, zero dependencies
synapse_peers
synapse_link { agent, direction }
synapse_unlink { agent }
synapse_read { agent, max }
synapse_send { agent, text }
synapse_inbox# Claude Code and Codex
> /synapse connect to the codex
agent and ask what it found
⏺ synapse link codex-api
⏺ synapse send codex-api "..."
Linked. Reply lands next prompt.Everything stays on your machine. Transcripts are read from disk, links, messages and fork lineage live in ~/.synapse, and Synapse makes no network calls.
Pair with a teammate using an invite code, then draw a link to share one agent's context with theirs. One way, nothing shared by default, and the relay stores nothing.
Workspaces, worktrees and real agent terminals in one window, with the canvas one keystroke away.
/sfork or ⇧⌘F opens a side session from the current context. Stacked as a deck, drawn as lineage on the canvas.
Claude Code and Codex print a line whenever context or messages arrive. Live band and toasts in Claude Code.
Any agent can message any linked agent, across CLIs. Plus ⌘F fuzzy search and markdown in the agent panel.
One app. Every agent you run, connected.