Agents · Cursor
Cursor for teams, without collisions
In shortRun lanes init --agents cursor in your repository and commit the result. Lanes writes .cursor/hooks.json so that every Cursor edit is committed as you and published to a shared branch right after it is made. Add lanes mcp to Cursor so its agent can read the team brief and check a file before touching it.
Cursor on a team
Cursor makes fast, wide edits. When a teammate's agent is changing the same code, nothing in Cursor tells it so. When two people's agents work in the same repository, one can overwrite the other's change in a shared file, or write new code against a function the other is renaming. Git shows the damage later, at merge time, after both agents have finished.
Lanes connects every agent on the team to one coordination server. Cursor gets teammates' changes published to the shared branch, and the rest of the team's agents see what Cursor is changing.
What Lanes installs for Cursor
Lanes writes .cursor/hooks.json with an afterFileEdit hook. Each Cursor edit is committed and published to lanes/main right after it is made, so teammates' agents see it and get heads-ups about it. Cursor has no hook that can wait before an edit without also deciding its permission, so Lanes cannot queue a Cursor edit behind a teammate's.
The file is committed with lanes init, so every teammate gets it when they pull. lanes off removes only the Lanes entries and leaves your own settings alone.
| What | Cursor with Lanes |
|---|---|
| Edits wait for a teammate's edit of the same file | No, published right after the edit instead |
Each edit committed as you and published to lanes/main | Yes |
| Team brief added to each prompt | No, use the MCP tool team_brief |
| Heads-up before reading a teammate's file | No |
| Check at the end of a turn | No |
| MCP team tools | Yes |
Set it up
- Get Lanes:
git clone https://github.com/mfmatozza/lanes && cd lanes && npm ci && npm run build. The commands below writelanesfornode /path/to/lanes/dist/lanes.cjs. - In your repository, run
lanes init --agents cursorand push the commit it makes. - Turn on shared context once per repository:
lanes team on, then commit.lanes/team.json. - Add the MCP server to Cursor:
Add this to ~/.cursor/mcp.json:
{ "mcpServers": { "lanes": { "type": "stdio", "command": "node", "args": ["/path/to/lanes.cjs", "mcp"] } } }- Check the machine with
lanes doctor.
Working alone, the first session starts a local Lanes server. For a team, one person runs lanes server --host 0.0.0.0 and invites the others with lanes invite <name>.
Things to know about Cursor
- Add
lanes mcpto Cursor so the agent can ask for the team brief and check a file before it edits it. That is how Cursor gets the shared context. - The Claude Code hooks in
.claude/settings.jsonstay inert inside Cursor. - The VS Code extension installs in Cursor from the
.vsixfile: Extensions, the...menu, Install from VSIX.
Status
Built from Cursor's published documentation and covered by Lanes' automated tests. It has not yet been run against the real Cursor. Issues and reports are welcome.
Mixed teams work: one person can use Cursor while teammates use Claude Code, Codex or Cursor. Every agent reports to the same server, so the brief and the heads-up name each teammate's task whatever agent they run.
Questions
Does Lanes queue Cursor's edits?
No. Cursor's hooks cannot wait before an edit without also deciding whether the edit is allowed, so Lanes publishes each Cursor edit right after it is made instead. Teammates' agents are queued and warned about it.
How does the Cursor agent get the team brief?
Through the MCP server. Add lanes mcp to ~/.cursor/mcp.json and the agent can call team_brief and team_check_file.
Can I use the Lanes sidebar in Cursor?
Yes. Install the VS Code extension from the .vsix file with Install from VSIX.