Documentation
Crosscode lets several people and coding agents work on the same repository at once, each in their own checkout, without overwriting each other. You run the daemon and the coordination service yourself; it is not a hosted product.
Architecture
The daemon, the coordination service, and how transactions and proposals move between them.
Install & quickstart
Prerequisites, setting up Supabase and the coordination service, signing in, and the normal day-to-day workflow.
CLI reference
The scriptable crosscode command surface, including --json output.
Safety model
The rules that govern when Crosscode is allowed to touch your working tree.
Network protocol
The wire schema shared by the daemon, CLI, MCP server, and coordination service.
MCP client setup
Connecting Claude Code, Codex CLI, and OpenCode to the local crosscode-mcp server.
Current limitations
What is still in progress, taken directly from the project README.
crosscode CLI or the local MCP server. Fetch
/llms.txt for a curated markdown index of this site,
or the MCP tool catalog
for the exact tool surface. The capability ladder and trust model for
agent-delegated actions live in this repository's root
AGENTS.md.
What Crosscode is
Everyone works in their own ordinary Git checkout. A background program — the daemon — watches that checkout, notices whenever an edit has settled, and sends a record of it to a shared coordination service, which passes it on to everyone else. Their edits are never written into your files automatically: each one arrives as a proposal you inspect and then accept or reject.
Git remains the durable history and publishing layer. Crosscode does not replace your editor, agent, Git host, branches, worktrees, staging area, or normal commits — stop running it and your repository is unchanged.
What works today
Watching your checkout
- One daemon per Git checkout/worktree, which survives restarts
- Captures an edit once it has settled, with before/after hashes so a stale change can't land on top of a newer one
- An append-only SQLite log locally, plus an outbox so work made offline is never lost
- Hidden Git checkpoints that never move
HEAD, touch your index, or appear in branch history - Notices branch switches, commits, resets, index changes, merges, rebases, cherry-picks, and reverts
Sharing work
- A coordination service backed by Supabase-hosted PostgreSQL, with an immutable audit log
- Idempotent uploads, and cursor-based resume from exactly where the daemon left off after a disconnect
- Live presence, tasks, claims, handoffs, and intents over WebSocket, falling back to polling
- Text and binary files (binaries base64-encoded, restored byte-for-byte) and renames tracked as real renames
Reviewing before anything lands
- Explicit inspection, diffing, acceptance, and rejection of every proposal
- Crash-safe application that preserves newer local edits
- Validation profiles that come only from a committed
.crosscode/config.yaml - An advisory AI reviewer for ambiguous conflicts — non-authoritative, off unless workspace policy enables it, and still gated behind human approval
- A per-workspace autonomy tier: always ask, auto-apply when clean, or auto-apply always
publish --branchwith a dry-run plan, turning accepted work into ordinary commits on a real remote
Accounts and teams
- Self-serve sign-up from the site or
crosscode signup, with a personal workspace provisioned automatically — no administrator step - Multiple workspaces, memberships, roles, invite codes, and one-time pairing codes, all from the CLI or the service's HTTP API
- Supabase Auth sign-in, in a browser (
crosscode login) or headlessly (crosscode login --email/--password), with this machine registering itself on first daemon start
Connecting your tools
- An HTTP-backed CLI and a standards-compliant MCP server that starts the daemon on first connection
- Any MCP-capable agent or editor: Claude Code, Codex CLI, OpenCode, Cursor, VS Code, Gemini CLI — no plugin to install
See current limitations for the honest gaps.