Inspiration
Claude Code sessions are ephemeral and siloed. Hours of agent reasoning, tool calls, file reads, and architectural decisions live on one engineer's machine and nowhere else. We kept asking: why can't Claude Code sessions travel across machines the way git commits do? Weave is the answer.
What it does
Weave gives teams 3 main CLI primitives for Claude Code sessions: push, pull, merge. Push your session to a shared remote. Pull a teammate's session and resume it on your machine with identical context — same thinking blocks, same reasoning chain, same tool results, as if it had been running on your computer all along with as little context lost as possible. Fork a session before exploring a risky approach so your original is always safe. Merge two parallel sessions into one using Cerebras, which reads both conversation histories semantically and produces a unified briefing neither engineer could have written alone.
How we built it
Weave is a Python CLI that reads and writes Claude Code's native JSONL session format directly. Sessions are stored on a shared Supabase backend. The merge step runs Cerebras inference locally on the calling machine. The server never touches the model. A config file at .weave/config mirrors git's remote convention so teams configure their shared remote once and reference it by name forever after.
Challenges we ran into
The JSONL format is more complex than it looks. Sessions are a directed graph of records linked by parent UUIDs, with streaming chunks that need to be collapsed, thinking blocks that must be preserved verbatim, and cwd-encoded paths that differ across machines. The merge prompt took significant iteration. Models want to summarize and clean up, but a dead end in session A is critical context for the merged session . We had to be explicit: reproduce failures, surface conflicts, invent nothing.
Accomplishments that we're proud of
The fork primitive works exactly like the mental model. Two engineers starting from identical Claude Code context, working in parallel, producing genuinely different reasoning chains, then merging back into one session that captures both. That's a new workflow that didn't exist before this weekend. We're also proud of how little infrastructure Weave requires. The server is passive storage. All intelligence runs on the client.
What we learned
Semantic merging is fundamentally different from structural merging. Git can merge files because code is text and conflicts are positional. Claude Code sessions can't be merged that way. Two sessions that both read the same file and drew different conclusions aren't in conflict at the text level, they're in conflict at the reasoning level. That's why you need a model in the loop, and why Cerebras's inferencing speed matters: a merge that takes 30s breaks the flow, a merge that takes <1s feels native.
What's next for Weave
Making the WeaveHub setup one command, adding weave log for session history, and deeper Claude Code integration via slash commands. We want to make the backend configurable so teams can point .weave/config at their own VPS or VM instead of Supabase (a one-line change in the config file, nothing else, for teams with strict data residency requirements). Long term, weave merge runs automatically in CI alongside git merge so when two branches come together, their Claude Code context does too.
Log in or sign up for Devpost to join the conversation.