Run Claude Code across multiple PCs and multiple Claude accounts, as one team.
You and your friends each have Claude Code on your own computer, signed in to your own account. With this, your Claude becomes the lead and theirs become the crew. Your Claude hands out tasks, their Claudes do them on their own PCs and open pull requests, and every Claude sees what the others are doing. Your friends don't have to babysit anything. They start it once, minimize the window, and get on with their day.
┌─────────────────────────────────────┐
│ your PC, your Claude account │
│ Claude Code as the lead │
│ hands out tasks, reviews the work │
│ approvals need you and a passphrase │
└──────────────────┬──────────────────┘
│ own token
│ sends tasks,
│ picks up news
▼
┌─────────────────────────────────────┐
│ HUB: a Cloudflare Worker or your PC │
│ task board, crew list, messages │
│ checks every token and role │
│ rate limits and an audit log │
│ holds no code │
└────────┬───────────────────┬────────┘
▲ ▲
│ own token │
│ picks up tasks, │
│ reports back │
┌────────┴────────┐ ┌────────┴────────┐
│ anna's PC │ │ bob's PC │
│ anna's account │ │ bob's account │
│ a worker Claude │ │ a worker Claude │
│ checks on tools │ │ checks on tools │
│ and git pushes │ │ and git pushes │
└────────┬────────┘ └────────┬────────┘
│ pushes a branch │
│ opens a PR │
▼ ▼
┌─────────────────────────────────────┐
│ GIT HOST: GitHub or similar │
│ one branch and PR per task │
│ lead reviews; merging is your call │
└─────────────────────────────────────┘
Every PC reaches out to the hub with its own token. Nothing connects in to a worker's PC, and the Claudes never talk to each other directly. When something new arrives, coop pushes it into the running Claude session. The hub can read tasks and messages, because they aren't encrypted end to end, so only use a hub you trust.
What it isn't: an account switcher (one person, many accounts), a multi-agent framework on one machine, or remote desktop. Each Claude stays on its own PC, under its own person's account and usage, and they cooperate on one git repository.
A community project, not made or endorsed by Anthropic.
- Two to nine PCs, one team. One lead and up to 8 workers. It's built for a group of 2 to 5 friends.
- Hands-free workers. New tasks are pushed straight into the worker's running Claude Code session through channels, so it starts on its own. Nobody types anything on the worker's PC, and nothing takes over the screen or the mouse.
- Everyone knows what's going on. The lead hears every claim, progress note, question and submission as it happens. Workers hear about their tasks, open tasks they could take, and merged work they should pull.
coop statusshows the whole board. - Git does the code. Each task gets its own branch (
coop/12-add-csv-export). The worker pushes it and opens a pull request, and the lead reviews it before anything is merged. - Each friend keeps control of their PC. Each one picks their Claude's permission mode. Workers are told to stay in the project folder and away from
main, deploys and secrets, andcoop startadds checks that run whatever Claude decides. The lead's Claude can't approve a worker's permission prompt: that takes a person, with a passphrase. Inautomode, Claude Code's own check decides on the worker's PC, so commands don't wait for that person. These limit mistakes and common attacks, and they aren't a sandbox: here's exactly what's enforced. - Free to run. The hub fits in Cloudflare's free tier, or runs on your own PC. Each Claude uses its own person's plan.
- You tell your Claude what you want: "Split the export feature into tasks for anna and bob." It creates the tasks with
coop_assign, for a named worker or open for whoever is free. - The task appears in the worker's session. Their Claude claims it, branches off the latest
main, does the work, runs the checks, pushes and opens a pull request. - Their Claude hands it in with
coop_submit. Yours is told, reads the diff and runs the tests, then approves it or sends it back with feedback. Merging stays your call. - Questions go both ways with
coop_send. A stuck worker marks the task blocked, and your Claude (or you) answers.
- Claude Code 2.1.80 or newer on every PC, each signed in to its own claude.ai account (Pro or Max) or a Console API key. Use 2.1.295 or newer if you can: on older versions, coop's safety check lets a tool call through if the check itself can't run. On Team and Enterprise plans an admin has to enable channels.
- Node.js 22.13 or newer.
- A git repository everyone can push branches to (GitHub, GitLab or anything else), plus the GitHub CLI for pull requests.
- A hub everyone can reach: a free Cloudflare Worker (recommended), or the lead's own PC.
On Windows, PowerShell may refuse coop with running scripts is disabled on this system. Type coop.cmd in place of coop, or use Command Prompt. You don't need to change the policy.
npm install -g github:Plyxen/claude-code-multi-pcSet up a hub. For friends on other networks, deploy it to Cloudflare (about 5 minutes, free). To try it on your own PC first:
coop hub --lead-name yourname --crew my-crewThe hub prints your lead token and the coop join line to run next. Then:
coop join --hub <hub url> # asks for the lead token
coop approvals setup # choose a passphrase, so that only you, not your Claude, can approve things
coop invite anna # prints the steps to send anna; the token is a password, so DM it
cd path/to/your/project
coop start # your Claude, now the lead of the crewThen talk to your Claude as usual, plus things like "Give the open docs fixes to whoever is free" or "What's everyone doing?". The lead guide has more.
Send them what coop invite printed, or the worker setup page. It comes down to:
npm install -g github:Plyxen/claude-code-multi-pc
coop join --hub <hub url> --token <their token>
cd path/to/their/clone/of/the/project
coop doctor # checks Node, Claude Code, the hub, git and gh
coop startOn the first start Claude Code asks them to trust the folder. It also warns about development channels (on every start, in some versions), because channels are a research preview and this project isn't on Anthropic's allowlist: they choose I am using this for local development. Then they minimize the window and leave it running.
| Command | What it does |
|---|---|
coop start |
Starts Claude Code in this folder, connected to the crew. It reopens your last coop session here, so your session list doesn't fill up with copies. |
coop start --new |
Starts a fresh session instead. |
coop status |
The crew board: who's online, who's on what, what waits for review. |
coop update |
Installs the latest version. Your next coop start is a new session, so the new instructions take effect. |
coop doctor |
Checks this PC's setup. |
coop invite NAME · coop remove NAME |
Lead only: add a friend, or remove one (their unfinished tasks go back to the pool). |
coop permissions · coop approve WORKER ID · coop deny WORKER ID |
Lead only: answer a worker's permission prompts. Approving asks for your passphrase, in your own terminal. |
coop audit |
Lead only: the hub's security log. coop audit --local shows what coop's checks blocked on this PC. |
coop tokens · coop tokens rotate |
List tokens, or renew yours. New tokens last 90 days. |
coop profiles · coop use PROFILE |
List the crews you've joined, or make one the default. |
coop help lists everything. If someone's PC is off, their tasks wait on the hub until they coop start again.
| Lead tools | Worker tools | Both |
|---|---|---|
coop_assign: create a task |
coop_claim: take a task |
coop_status: the board |
coop_review: approve or send back |
coop_progress: note a milestone, or blocked |
coop_task: one task in full |
coop_manage_task: reassign, cancel, reopen, comment |
coop_submit: hand in for review |
coop_send: message someone or everyone |
coop_remove: take someone out of the crew |
coop_release: give a task back |
coop_inbox: updates, for sessions without channels |
coop_permission: refuse a worker's permission prompt (approving takes a person: coop approve) |
Does it take over my friend's PC? No. It's their own Claude Code in a normal terminal window, working in the project folder with the permissions they chose. Nobody sees their screen or moves their mouse. They can use the PC for anything else, including their own Claude in another folder.
Whose usage does a task use? The worker's. Each Claude runs on its own person's plan or API key. The lead uses some of its own when it hands out work and reviews.
Do we need to be on the same network? No. With the hub on Cloudflare, every PC only needs the internet. A hub on your own PC works on your network, or anywhere through a tunnel or Tailscale.
Can a worker's Claude do something harmful because the lead said so?
Yes, it can. Workers follow the lead's instructions, so only join crews whose lead you'd trust with your PC's Claude. The limits are the worker's own permission mode and coop's checks, which catch common cases but aren't a sandbox. For a hard limit, run the worker in a VM or a separate user account, or with coop start --sandbox on macOS, Linux or WSL2. Security spells it out.
Is it secure? It's a young project that was hardened on purpose, and it can't make Claude immune to prompt injection or protect you from a hub or lead you shouldn't have trusted. The rule it's built on is that Claude isn't the security boundary, so what matters is enforced by the hub, Claude Code's hooks, git, your git host, the OS or a person. Security guarantees lists what's enforced, what's only partly enforced and what isn't, and the threat model explains why.
- How it works: hub, channels, events, task states, reliability
- Lead guide: running a crew, writing good tasks, reviewing
- Worker setup: the page to send your friends
- Project setup: the CLAUDE.md section and git workflow that make co-op smooth
- Deploy the hub to Cloudflare · Self-host the hub
- Security: the practical guide: what a worker can be asked to do, approvals, tokens, recommended setup
- Security guarantees · Threat model: what's enforced and what isn't, and why
- Configuration reference · Troubleshooting · Hub API · Changelog
Version 0.2: young, but tested end to end. npm test drives a real hub, the CLI and an MCP server per crew member, and a pre-release of this version has run live between two PCs on two Claude accounts. Channels are a Claude Code research preview, so launch flags may change as Anthropic updates them. Issues and pull requests are welcome: see CONTRIBUTING.md. To report a vulnerability, please open a security advisory.