questions about agentmash.
short answers, each with a link to the part of the docs that says more.
what is agentmash?
agentmash is a coordination layer for teams whose developers each run AI coding agents, such as Claude Code and Cursor, on the same repository. every edit goes to one room for the repository, so each agent knows which files teammates’ agents are working in, on which branch, and before it edits one of them it’s told who changed it, when, and what they changed. an agent can claim files before it starts, and if two developers’ agents still change the same file, Claude Code, Codex and GitHub Copilot tell the person as the session finishes, before either change lands, and the person decides what happens to the two.
how is it different from git worktrees?
a worktree gives an agent its own checkout on its own branch, so two agents never write into the same files on disk. it doesn’t tell one agent what another is changing: two branches that change the same file conflict only when they’re merged, and nothing tells your agent about a teammate’s worktree on another laptop. agentmash tells your agent what your teammates’ agents are changing, on any branch and any machine, before it edits. it doesn’t warn your own agents about each other: keeping them apart is the worktree’s job, so use both.
does it lock files?
no, nothing is ever locked. in Claude Code, Codex and GitHub Copilot the advisory before an edit is a note the agent reads, and the edit goes ahead. Cursor, and the agents whose hooks can’t add a note (Amp, Crush, Factory Droid, Gemini CLI, goose, Kilo Code, Kiro, OpenCode, OpenHands and Qwen Code), get it as a refusal of the first edit, with the advisory as the reason, once per session and file every ten minutes, and the same edit again goes through. a claim is advisory too, never a lock: it expires on its own (two hours by default, eight at most), ends with the session that made it, and can be released early. a team that wants a block sets AGENTMASH_STRICT=1, and then an edit into a teammate’s change is cancelled until the agent acknowledges it with a reason.
does the server see my code?
no, unless your room turns diffs on. the room gets file paths, branch names, the shape of each change (its line counts and the names it touches) and the first 500 characters of a prompt, with an opaque id of the checkout each edit came from, which names neither the machine nor the folder. with diffs on, the changed text is held in memory and never written to our database, and AGENTMASH_DIFFS=0 keeps yours on your machine whatever the room says. AGENTMASH_HINTS=0 keeps your prompts there too.
what if the server is down or slow?
your agents keep working. every hook caps its network call with a hard timeout and exits 0 on any failure, so a broken server can’t block anyone’s coding or anyone’s git commit. the check before an edit waits 1500 ms at most by default. the MCP tools don’t go quiet, because quiet would read as “nobody is working on anything”: they say the server is unreachable and the answer is unknown.
which tools does it work with?
it depends on what each tool lets a hook see. npx agentmash login connects each one it finds on your machine, in its own settings, and a tool of your own can use the public API:
- Claude Code: every edit and the advisory before it. claims and the MCP tools come with a repository set up by
npx agentmash init, which registers the MCP server. - Codex: every edit, the advisory before it, claims and the MCP tools, once you approve its hooks in
/hooks. - Cursor: its edits and prompts, live, and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason; the retry goes through. the
cursor-agentCLI runs the same hooks. - GitHub Copilot: every edit, the advisory before it, its prompts and the MCP tools, in VS Code and its CLI.
- Devin: its edits, through the Claude Code hooks it runs. whether its agent reads the advisory is still to be verified.
- Amp: its edits, the files its shell commands change and its prompts, and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason; with Amp's old permission rules on, it only reports.
- Antigravity: when you ask for it, with
npx agentmash tools add antigravity: its edits, the files its shell commands change and its prompts, and a heads-up at the start of each turn rather than before an edit. - Cline: its edits and the MCP tools, in VS Code and its CLI, and its prompts in VS Code. the advisory comes just after the edit, not before.
- Crush: its edits, once the file changes, and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason; its prompts and shell commands aren't seen.
- Factory Droid: its edits, prompts and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason.
- Gemini CLI: its edits, prompts and the MCP tools, in folders it trusts. the advisory before an edit comes as a refusal of the first edit, with the reason.
- goose: its edits and prompts, live, and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason.
- Junie: its edits, a step after they happen, its prompts in its terminal UI, and the MCP tools. whether its agent reads the advisory before an edit is still to be verified.
- Kilo Code: its edits, prompts and the MCP tools, in its CLI, VS Code and JetBrains. the advisory before an edit comes as a refusal of the first edit, with the reason.
- Kiro: its edits, prompts and the MCP tools, in the Kiro IDE and kiro-cli on its V3 engine. the advisory before an edit comes as a refusal of the first edit, with the reason.
- OpenCode: its edits, prompts and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason.
- OpenHands: its edits, prompts and the MCP tools, in its CLI and Agent Canvas. the advisory before an edit comes as a refusal of the first edit, with the reason.
- Qwen Code: its edits, the files its shell commands change, its prompts and the MCP tools. the advisory before an edit comes as a refusal of the first edit, with the reason.
- Continue: the MCP tools only: it runs no hooks, so its edits don't show in the room.
- Zed: the MCP tools only: its agent has no hooks, so its edits don't show in the room.
- everyone else, on aider, vim or any editor: a git post-commit client reports what landed in a commit, not what’s in progress, in a repository set up with
npx agentmash init.
how each coding agent was checked, as of : the warning before an edit and the reports were tested live in Claude Code, Codex, Cursor, GitHub Copilot (its CLI), Kilo Code and OpenCode, and the MCP tools in Claude Code and Codex; Amp, Cline, Crush, Factory Droid, Gemini CLI, goose, Kiro, OpenHands and Qwen Code are held by our tests against payloads recorded from each tool, not run live yet; Devin, Antigravity, Junie, Continue and Zed rest on their own docs (Devin and Junie partly on our tests too), not tested live yet.
every agent's setup →claude code and cursor on one team →other agent tools →
which languages does conflict detection read?
every language, by path: two edits to the same file are matched whatever it’s written in. matching by symbol, where a change to an exported function reaches every file that imports it, reads the JavaScript and TypeScript family only (.ts .tsx .mts .cts .js .jsx .mjs .cjs). python, go and rust files are matched by path alone.
how do teammates set it up?
someone who can push to the repository connects it once, at agentmash.dev/install. then each developer runs npx agentmash login once (Node.js 18.12 or newer), signs in with GitHub in the browser it opens, and restarts their coding agent: the login connects every one it finds, and Codex also asks for agentmash’s hooks to be approved in /hooks. nothing is committed to the repository, and npx agentmash logout takes it all back out.
can we run our own server?
yes, on the enterprise plan. self-hosting runs our private docker image on one machine on your network, and your repositories point at it. ask at hello@agentmash.dev and we send you a read-only login to pull the image with. on your own server, prompt excerpts never leave your network.
how much does it slow an edit?
the check before an edit is the one network call an edit waits on; reporting the edit afterwards runs in the background. measured from a fresh process, as every hook is, one check costs about 160 ms against a server on your own machine, 323 ms against one in your region and 454 ms across the atlantic. the default budget is 1500 ms, and an edit whose check runs past it goes ahead unwarned.
what is the crew?
22 ready-made Claude Code agents, one for each job: a planner, a backend engineer, a tester, a reviewer and more, handing work to each other, with mash conducting every team. one command adds the ones you pick to your repository as a named team. a team is files in your repository, and it doesn’t need the coordination server at all.
is it one word?
yes: agentmash is one word. the README and the npm package also write it AgentMash. it’s the same thing, at agentmash.dev.
can we use it now?
yes. agentmash is open to new teams: someone who can push to your repository connects it at agentmash.dev/install, and each developer runs npx agentmash login once on their machine. agentmash.dev/setup has the steps for each coding agent.