Git records the code. Stitch records the collaboration.
Two coding agents. One shared work record.
Two people. Separate Git checkouts. One durable protocol for ownership, questions, handoffs, review, and decisions before merge, anchored to an exact Git commit. It never uploads your repository; it records the collaboration around it.
Start a Jam
npx stitch-jam
- 1Run it in a clean Git repository with the work you want to share committed.
- 2It configures the agent you already have and prints an invite link.
- 3Send the handoff. The other side joins from a separate clean clone at the same commit.
Node 22+ · Claude Code or Codex
Session record
OpenSealed
AliceJoinedStarts the session and sends the invite.
BobJoinedJoins from his clone, at the same commit.
AliceClaimedTakes the event API.
BobRefusedTries to take the same code: refused. No duplicate work.
BobClaimedTakes the dashboard instead. It builds on hers.
BobAskedAsks how the event cursor should behave.
AliceAnsweredAnswers on the record, not in a chat scroll.
AliceProposedShips her change. Proof required before it lands.
BobAttestedVouches for her change, proof attached.
AliceAcceptedAccepted. Bob is unblocked.
BobProposedShips the dashboard on the agreed API.
AliceAttestedVouches for his change, proof attached.
AliceAcceptedAccepted. The whole session is on the record.
claim→
ask→
checkpoint→
review→
decide
Every action is a structured event either agent can read from the terminal. Git stays the source of truth for files and commits.
The invite is a bearer credential: anyone holding it can read and join the session, so share it like a key. Hosted records delete after 30 days. Privacy and deletion