Pre-1.0 · Open source · MCP-native

Your team is all running coding agents on one repo. They are overwriting each other.

Once every person on a project has an agent editing code, the collisions stop being occasional. Crosscode gives each teammate's checkout a small background daemon that notices every edit as it settles and shares it with everyone else. Nothing is ever written to your files behind your back — each change arrives as a proposal you accept or reject, like a pull request that takes seconds instead of a round trip through your Git host.

Built for shared projects. It keeps working when you're the only one online — your teammates' agents are still going to land work on this repo, and Crosscode is what makes that safe when they do. Free for small teams, and free forever if you self-host.

claude · crosscode MCP
> get_workspace_state()

 daemon: running (auto-started)
 checkout: ~/dev/api-service
 peers online: 2 (alicja, codex-agent-3)

incoming proposals
   alicja · refactor: extract payment retry logic
    3 files · not yet applied · awaiting your review

> 

What your team is probably doing now — and what it costs you

Every team whose agents collide has already invented a workaround. Here's how each one actually plays out.

Your current approach
Where it breaks
With Crosscode
Everyone points their agent at the same branch
Whoever writes last wins. You find out when the tests fail, or later.
An edit is never applied on top of a newer local change. Stale writes are refused, not merged.
Separate worktrees, merge by hand
You're the merge queue. Conflicts surface hours later, far from the context that caused them.
Conflicts are classified the moment an edit settles, while you still remember what each agent was doing.
A branch and a PR per agent
Minutes of round trip through your Git host for a change that took four seconds to make.
Review happens locally, in your terminal or through your agent, in seconds. Publish to a real branch when you're ready.
Tell everyone which files to stay out of
Works until one of them ignores you, which they do.
Claims and live presence make it a fact the other agent can query, not an instruction it might drop.
Let an AI merge tool resolve it
Now something you didn't read has rewritten your working tree.
The AI reviewer only ever advises, runs on your own agent, and can't apply anything without you.

The common thread: Crosscode doesn't replace your editor, your agent, your branches, or your Git host. Turn it off and your repository is exactly what it was.

Use cases

Real scenarios teams run into once more than one agent touches a repo.

Review agent output like a pull request

  • Every remote change arrives as a proposal, never auto-applied
  • Diff, accept, or reject before it touches your branch

Hand off work across machines or people

  • Start on your laptop, hand off to a cloud agent in another worktree
  • Live presence, claims, and handoffs over the same MCP connection

Recover instantly from a bad edit

  • Checkpoints live under refs/crosscode/checkpoints/...
  • Roll back an agent's change without touching your branch history

Two ways to use Crosscode

Day-to-day work never requires this website. It's where you come to go deeper.

Your terminal Day-to-day

Status, claiming work, publishing, and accepting or rejecting a proposal all happen through the crosscode CLI or the MCP tools your coding agent already has connected. There's nothing to look up here for routine work.

This website Going deeper

Come here to create an account for the coordination service, and when you want to browse the full documentation, understand a setting before you change it, or read the safety model end to end instead of trusting a summary. Once the account exists, run crosscode login in your terminal — there is no web app to work in.

Why teams whose agents collide reach for Crosscode

Once more than one person on a project has an agent editing code, coordination stops being optional.

01

Stop losing work to collisions

Two agents editing the same files in separate checkouts usually means silent overwrites, or you diffing by hand to find out what happened. Crosscode records each edit the moment it settles and refuses to apply anything on top of a newer local change, so nothing gets clobbered.

02

Never auto-apply someone else's diff

Remote work, whether from a teammate or another agent, always shows up as a reviewable proposal. Your working tree stays yours until you explicitly accept a change.

03

Give your agent real situational awareness

Your coding agent can ask "who else is working on this repo right now, and on what?" and get a real answer: live presence, tasks, claims, and handoffs, over the same MCP connection it already uses.

Pricing

The free plan is meant to cover a real team, not tease you into upgrading. Up to 5 people, unlimited repos, unlimited AI review, auto-apply — and if you host it yourself, everything is free forever with no limits at all.

Essential
$2.50 /mo

billed monthly

  • Up to 10 people or agents
  • 30 days of proposal history
  • Auto-apply always, unlocked
  • Everything in Free
Create an account
Pro
$5.00 /mo

billed monthly

  • Up to 25 people or agents
  • 90 days of proposal history
  • Priority support
  • Everything in Essential
Create an account
Unlimited
$7.50 /mo

billed monthly

  • Unlimited people and agents
  • 1 year of proposal history
  • Everything in Pro
Create an account

Team

For organisations that need SSO, exportable audit logs, and an SLA. Priced per seat. Everything in Unlimited, plus the controls your security review will ask about.

Get in touch

Self-hosting is free forever

MIT-licensed, no seat limits, no history limits, no feature gates. Paid plans exist so you don't have to run it.

Students and public repos are free

Verified students get Pro-level limits. Work on a public repository is free the same way.

Your code stays yours

AI review runs on the agent already connected to your machine. Nothing is sent to a third-party model provider.

Heads up: the hosted coordination service is still being deployed, so paid plans aren't chargeable yet. Self-hosting works today — see the install & quickstart guide.

Set up in one paste

Copy this prompt into your coding agent's chat: Claude Code, Codex CLI, OpenCode, Cursor, or any other MCP-capable agent. It clones Crosscode, installs dependencies, and wires up the MCP config itself. The daemon bootstraps on the first tool call, so there's no manual init and no daemon to start by hand.

Paste into your coding agent
Set up Crosscode for this project. Crosscode is a local-first safety daemon that
watches Git and filesystem activity and exposes itself to me as an MCP server, so
you (my coding agent) can coordinate safely with other people and agents working in
other checkouts of this same repository. Do the following:

1. Check whether `~/.crosscode` already exists.
   - If it does not exist: run `git clone https://github.com/amsultan2010/crosscode.git ~/.crosscode`.
   - If it does exist: run `git -C ~/.crosscode pull --ff-only`.
2. Make sure pnpm is available (`pnpm --version`). If it is not installed, run
   `npm install -g pnpm`.
3. Run `pnpm install` inside `~/.crosscode`.
4. Determine the absolute path of this project's Git root (`git rev-parse --show-toplevel`
   from the current directory). Call this `$PROJECT_ROOT`.
5. Add a `crosscode` MCP server entry to whichever MCP config applies to you:
   - If you are Claude Code: create or edit `.mcp.json` in `$PROJECT_ROOT`.
   - If you are Codex CLI: create or edit `~/.codex/config.toml`.
   - If you are OpenCode: create or edit `opencode.json` in `$PROJECT_ROOT` (or the
     global OpenCode config).
   - If you are another MCP-capable agent: use whatever MCP config file or command
     you use to register a local stdio MCP server.

   Use these exact values (do not change them):
   - command: `~/.crosscode/node_modules/.bin/tsx` (expand `~` to the real home
     directory path)
   - args: `["~/.crosscode/apps/mcp-server/src/main.ts"]` (expand `~` here too)
   - cwd: `$PROJECT_ROOT`

   For Claude Code's `.mcp.json`, that looks like:
   ```json
   {
     "mcpServers": {
       "crosscode": {
         "command": "/absolute/home/.crosscode/node_modules/.bin/tsx",
         "args": ["/absolute/home/.crosscode/apps/mcp-server/src/main.ts"],
         "cwd": "$PROJECT_ROOT"
       }
     }
   }
   ```
   Merge this into the file if it already has other `mcpServers` entries; don't
   overwrite unrelated entries.

6. Tell me the config was written and that I need to restart/reload you (or
   reconnect MCP servers) for the new "crosscode" server to be picked up.
7. Once reconnected, call the `get_workspace_state` tool once to confirm it works.
   You do not need to run any install/init command yourself first — the first tool
   call automatically creates a local Crosscode identity for this checkout and
   starts its background daemon if one isn't already running. If the call fails,
   report the exact error back to me instead of guessing at a fix.

Works with any MCP-capable coding agent, and there's no editor plugin to install. This gets the daemon running locally; to actually sync with other people and agents you also need a coordination service for your team and an account on it — the install & quickstart guide covers both. See MCP client setup for per-agent notes.

How it works

One daemon per checkout, talking through MCP and a shared coordination service.

  1. A background program watches your checkout

    One small daemon runs per checkout. It watches your files and your Git activity, waits until an edit has settled rather than reacting to every keystroke, and records it — without moving HEAD, staging anything, or touching your branch.

  2. Your agent talks to it over MCP

    The daemon exposes itself as a standards-compliant MCP server. Claude Code, Codex CLI, OpenCode, Cursor, or any other MCP-capable agent can call its tools directly. No CLI or editor plugin required.

  3. Work syncs through a shared service

    Those recorded edits go to a coordination service your team runs, backed by PostgreSQL, so every other checkout — other people or other agents — sees the same history. If it's unreachable, the daemon keeps working and catches up when it's back.

  4. Remote work arrives as a proposal

    Nothing from another checkout is written to your files automatically. Every remote change shows up as a reviewable proposal that you explicitly accept or reject.

GIT HOOK

Hidden Git checkpoints

Safety snapshots live under refs/crosscode/checkpoints/... and never pollute your branch history.

MCP

MCP-first

Works with any MCP-capable coding agent: Claude Code, Codex CLI, OpenCode, Cursor, and more.

LIVE

Live presence & handoffs

WebSocket-backed presence, tasks, claims, and handoffs, with a durable poll fallback when offline.

EDITOR

Works in your editor via MCP

VS Code, Cursor, Claude Code, Codex CLI, Gemini CLI, and OpenCode all connect through the same standards-compliant MCP server. No editor plugin to install.

The safety model

Four rules govern everything Crosscode is allowed to do to your working tree.

  1. The local filesystem is always authoritative for local work.

  2. Remote operations arrive as proposals and are never automatically applied.

  3. Every materialization re-checks the local base and creates a checkpoint first.

  4. Excluded paths, secrets, symlink traversal, malformed payloads, and unsupported binaries are rejected.

If Crosscode stops running or gets removed, the repository is still an ordinary Git repository. See the safety model page for the full list.

What's here today vs. still missing

Pre-1.0. The whole loop — capture, sync, review, accept, publish — works; the hosting around it doesn't exist yet.

Working today Live

  • Open source: clone it and run it yourself
  • A per-checkout daemon that captures every settled edit durably
  • An MCP server that starts that daemon for you on the first tool call
  • Multiple workspaces, teammates, roles, invite codes, and pairing codes — sign yourself up with crosscode signup, no admin step
  • A per-workspace autonomy setting: always ask, auto-apply only when clean, or auto-apply always
  • Live presence, tasks, claims, and handoffs
  • publish --branch for accepted work, plus binary files and real rename tracking
  • An AI reviewer for ambiguous conflicts that runs on your own connected MCP agent — advisory only, off by default, and still gated behind human approval

Not there yet Honest gaps

  • The hosted coordination service isn't deployed yet. Until it is, someone on your team runs it, backed by a Supabase project you create. That's the main setup cost today.
  • No payment provider is wired up, so no paid plan is chargeable yet. Plan limits themselves are enforced server-side.
  • Not on npm or any editor marketplace yet — you run it from a cloned checkout.
  • No editor extension, and there won't be one: MCP is the single integration contract.

Questions people ask before installing

If yours isn't here, the docs go deeper.

What do I actually have to set up?

Two things, once per team. Create a free Supabase project (it handles sign-in and stores the shared state), then run the coordination service — one small Node process, or the included Dockerfile on any container host. After that everyone else just points their checkout at it and runs crosscode signup. There is no hosted version we run for you yet. The install guide walks through it.

What does it cost?

Self-hosting is free forever with no limits — it's MIT-licensed and runs on your own infrastructure. The hosted plans (from $2.50/mo) exist so you don't have to run it yourself; see pricing. The hosted service is still being deployed, so nothing is chargeable yet.

Which coding agents does this work with?

Any MCP-capable agent: Claude Code, Codex CLI, OpenCode, and Cursor are used today. It's a standard MCP server, so anything that can add a local stdio MCP server can use it.

Can it rewrite my branch history or force-push anything?

No. Crosscode never moves HEAD, rewrites history, or applies a remote change without your explicit approval. See the safety model for the exact rules it follows.

What happens if I stop running it?

Your repository is an ordinary Git repository the whole time. Stop or remove Crosscode and nothing about your checkout changes. There's no lock-in format to migrate away from.

Does it work without any coding agent, just for people?

Yes. The CLI works for human-only teams too, though the proposal-review workflow matters most once agents are in the mix.

What if I'm the only one working on it today?

That's still the case Crosscode is for, as long as the project is shared. Your teammates' agents will land work on this repo again, and the proposals waiting for you when they do are exactly what Crosscode exists to make safe. What it is not built for is a project only you will ever touch — there is nothing to coordinate with, and you should just use Git.

Does my source code get sent to an AI provider?

No. The AI reviewer for ambiguous conflicts runs on the coding agent already connected to your own machine, so it never leaves your machine and there is no third-party model provider in the loop. That's also why AI review is unlimited on every plan, including free — it costs us nothing.