Your team's Claude Code, shared.

One engineer's Claude context, queryable by another engineer's Claude. No pasted transcripts. No GitHub pushes. No shared bucket setup. One command per session.

Live on PyPI: pipx install teammate-sync

The problem

You and your teammate are both using Claude Code on the same project. You need to know what they decided about the database schema, or which file they touched, or why they picked one library over another.

Today you have two bad options:

today, without teammate-sync
# Option 1: ping them on Slack and wait
You:     hey saketh whats the pagination approach for Account?
Saketh:  brb in a meeting, will get back in an hour
(45 minutes later)

# Option 2: get them to send their session transcript
Saketh:  here's my whole .jsonl, 50k lines, good luck
You:     *pastes into Claude*
Claude:  context window: 200,000 tokens used. session degraded.

What teammate-sync does

Your teammate types /share in their session. From your own terminal, your Claude can ask theirs anything and gets back a cited answer in three seconds.

with teammate-sync
 Use teammate-sync. What did Saketh decide about pagination for
   Account, and why?

Called teammate-sync (3.1s)

Claude:
  Cursor-based on Id, NOT offset.
  Reason: 2.4 million rows with concurrent writes from the integration
  user made offset pagination produce inconsistent results — rows would
  skip or double-process. Cursor pagination on Id gives deterministic
  ordering. Same pattern recommended for Contact lookups.

  Cited: saketh/CLAUDE.md, session abc-123 (yesterday 2:14pm)
  Context cost: ~500 tokens. Saketh was not interrupted.

That is the whole experience. Everything else on this page is the engineering that makes it actually work.

"Why not just push to GitHub?"

This is the first question every engineer asks. Here is the honest answer with a concrete example.

A real scenario

Saketh is debugging a recursive trigger problem on a Salesforce migration. He has been at it for 90 minutes. He has not pushed anything to GitHub yet. Engineers do not push mid-debugging. The work is not done. The commit message would be misleading. The branch would break review.

Om hits the same problem 30 minutes later on a different object. He needs to know if Saketh figured it out.

Without teammate-sync, here is what Om can read from GitHub: nothing. Saketh has not pushed. Om's choices are:

With teammate-sync, Om types in his Claude:

Om's terminal, 11:32am
 What is Saketh seeing about the recursive trigger right now?

Called teammate-sync (3.2s)

Claude:
  Saketh's most recent message in his session, 94 seconds ago in
  cwd /Users/saketh/penguin: he found that the Account_History
  trigger fires on every migration insert, creating a feedback
  loop. He disabled it before the run with this SOQL:

    UPDATE TriggerHandler__c SET Active__c = false
    WHERE Object__c = 'Account_History__c';

  Same pattern is likely on Contact_History__c. Expect to disable
  yours before your Contact migration too.

  Cited: saketh's live session, last message 94s ago.
  Not in GitHub — Saketh has not committed yet.

This is reasoning Saketh has not committed, not documented, not mentioned in Slack. It exists only in his live Claude session, right now. teammate-sync surfaces it the moment Om asks.

The three deeper reasons behind this example

1. Most reasoning never reaches a commit. Engineers iterate dozens of times for every commit. The dead ends, the experiments, the "wait let me try X" moments — that is where the actual knowledge lives. Git ignores all of it.

2. Commits show the decision, not the reasoning. "Use cursor pagination" is a one-line commit. The 90 minutes of figuring out why offset failed first is what your teammate actually needs when they hit the same fork in the road.

3. PR-reviewed code is sanitized. By the time something lands in main, the messy real reasoning has been edited out for "code quality." The questions, the alternatives considered, the bug that was almost shipped — gone. Your teammate will hit those exact same questions next week with no record they were ever asked.

The one-line version: GitHub captures the finished work that survives review. teammate-sync captures the live reasoning that produced it — including the parts your teammate is figuring out right now, this second.

Install

One PyPI package, one binary, three commands. Works on any machine where Claude Code already runs.

your terminal
# Prereq: pipx (one-time, if you don't already have it)
 brew install pipx && pipx ensurepath

# 1. Install the binary (~15s)
 pipx install teammate-sync

# 2. Sign in with GitHub, wire up hooks / MCP / slash commands (~1 min)
 teammate-sync init

# 3. Start the sync daemon — leave this terminal open
 teammate-sync daemon
[sync] daemon starting
[sync] share-mode INACTIVE — daemon idle until /share is run

That's it. Restart any open Claude Code sessions so they pick up the new hooks + MCP, then type /share in any session to start sharing it. Full walkthrough: INSTALL.md.

Requires Python 3.11+, Claude Code CLI, and an ANTHROPIC_API_KEY in your shell. Works on macOS and Linux. Why pipx instead of pip: PEP 668 blocks plain pip on modern Python; pipx gives the binary its own isolated venv automatically.

How it works

Four steps. One-time setup is under two minutes per engineer.

1

Install + sign in

One pipx install, then GitHub OAuth. Your workspace is your GitHub org — we discover your teammates from there. No new account, no manual invites.

pipx install teammate-sync teammate-sync init
2

Run the daemon

A tiny background process watches your workspace. Nothing leaves your machine until you explicitly opt in.

teammate-sync daemon
3

Share a session

In any Claude Code session, type the slash command. Your CLAUDE.md and that session's transcript become queryable by your org. Other sessions stay completely private.

/share
4

Your teammates query you

Their Claude calls your context with natural language. Gets back a cited synthesis in seconds. You are never interrupted. Their context window never bloats.

Use teammate-sync, what did X decide about Y?

Frequently asked

Is this a cloud agent or autonomous AI?

No. The Claude Code on each engineer's laptop is the agent. We are connective tissue between humans and their Claudes. No autonomous work, no inference billed by us, no replacement for your existing workflow.

What about privacy? My client work is sensitive.

Default is nothing shared. Sessions only sync when you explicitly type /share. Unshared sessions never leave your machine. When you /unshare, the cloud copy is wiped in one operation. Per-session granularity means your unrelated client work stays local forever.

Do I need AWS or any other accounts?

No. The only account you need is GitHub — which your engineers already have. No bucket setup, no IAM roles, no static credentials anywhere on the engineer's machine.

Can I see who queried what?

Audit log is on the roadmap for the team plan. Every request passes through one server with verified GitHub identity, so the data is captured. Surfacing it as a clean log is a near-term item.

Pricing

Pre-launch. Free during beta. At general availability:

team plan

Bring your own Anthropic key

$20 / engineer / month

You pay Anthropic for inference. We charge for the platform — hosting, identity, audit, ACLs, multi-source connectors.

  • GitHub-org-based workspaces
  • Per-session privacy controls
  • Cited synthesis from teammates' Claude Code sessions
  • Slack and Linear integrations (planned)
  • Audit log of all queries (planned)

Enterprise plan with SSO, SOC2, and on-prem deployment available later. Email om at turgon.ai for early access pricing.

Request beta access

We are taking on 3 engineering teams for the closed beta over the next two weeks. Best fit: 3 to 15 engineers, all on Claude Code, same GitHub org.

Email om at turgon.ai with your team size and what you use Claude Code for. We will reply within 24 hours with setup instructions.