Lanes
GitHub

Agents · GitHub Copilot

GitHub Copilot for teams, without collisions

In shortRun lanes init --agents copilot in your repository and commit the result. Lanes writes .github/hooks/lanes.json so that every GitHub Copilot edit is committed as you and published to a shared branch right after it is made. Add lanes mcp to GitHub Copilot so its agent can read the team brief and check a file before touching it.

Updated 2026-11-12 · Lanes 0.3.0 · Source on GitHub

GitHub Copilot on a team

Copilot's agent mode works in the same repositories as everyone else's agents, with no view of what they are changing. 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. GitHub Copilot gets teammates' changes published to the shared branch, and the rest of the team's agents see what GitHub Copilot is changing.

What Lanes installs for GitHub Copilot

Lanes writes .github/hooks/lanes.json, which Copilot CLI, Copilot in VS Code and the Copilot app read. Each Copilot edit is committed and published right after it is made, so teammates' agents see it. As with Cursor, Copilot's hooks cannot wait before an edit, so its edits are shared right after they are made and teammates' agents are queued behind them.

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.

WhatGitHub Copilot with Lanes
Edits wait for a teammate's edit of the same fileNo, published right after the edit instead
Each edit committed as you and published to lanes/mainYes
Team brief added to each promptNo, use the MCP tool team_brief
Heads-up before reading a teammate's fileNo
Check at the end of a turnNo
MCP team toolsYes

Set it up

  1. Get Lanes: git clone https://github.com/mfmatozza/lanes && cd lanes && npm ci && npm run build. The commands below write lanes for node /path/to/lanes/dist/lanes.cjs.
  2. In your repository, run lanes init --agents copilot and push the commit it makes.
  3. Turn on shared context once per repository: lanes team on, then commit .lanes/team.json.
  4. Add the MCP server to GitHub Copilot:
copilot mcp add lanes -- node "/path/to/lanes.cjs" mcp
  1. 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 GitHub Copilot

  • Copilot also reads .claude/settings.json, runs hook commands through PowerShell on Windows and refuses an edit on any non-zero exit. That is why every Lanes hook command ends with ; exit 0.
  • Add lanes mcp so the agent can call the team tools.

Status

Built from GitHub Copilot's published documentation and covered by Lanes' automated tests. It has not yet been run against the real GitHub Copilot. Issues and reports are welcome.

Mixed teams work: one person can use GitHub Copilot 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

Which Copilot surfaces does this cover?

The hooks file is read by Copilot CLI, Copilot in VS Code and the Copilot app.

Can a Lanes hook ever block Copilot?

No. Every hook command ends with ; exit 0, because Copilot refuses an edit when a hook exits non-zero.

Does Copilot get the team brief?

Through the MCP server, with copilot mcp add.