AgentMash opens a pull request adding itself to your repo. You review it, merge it, and your teammates pick it up on their next pull.
Sign-in asks GitHub for the repo scope, which is broader than this needs — it
is what GitHub offers for pushing a branch to a private repository. What it is used for:
listing repositories you can push to, reading whether a
.claude/settings.json already exists so yours is merged rather than
overwritten, creating a new branch, and opening a pull request. It never pushes to your
default branch. Signing out drops the token.
GitHub sign-in is not switched on for this server. The command-line installer does the same thing.
Teammates run git pull. That is their whole setup — the hooks and the room id
travel with the repo. Node 18 or newer is the only requirement, and 20 or newer is what it
is tested on.
Choose the repo your team points coding agents at.
This opens a pull request on a new branch. Nothing reaches your default branch until you merge it.
The room id is the credential. Anyone who can read the repo can read and write that
room's events, which is what makes a teammate's setup a git pull. A public
repo publishes its room id, so prefer a private repo — or create the room with
npx agentmash init and share it out of band with
npx agentmash join.
What ever leaves a machine: file paths, branch names, the line counts and declarations of each change, and the first 200 characters of each prompt. Never the contents of a file.
Merge it and your team is connected.
git pull, which they would do anyway.
Nothing appears on the dashboard until someone's agent edits a file. That first event is
your confirmation it works. If it does not arrive, npx agentmash doctor in the
repo will say why — the hooks stay silent on failure by design, so it is the only thing
that will tell you.
What you now have is advisory: your agents warn each other about recent edits to the same file. It does not lock anything, and it does not stop two agents editing one file.