Repository navigation
Lanes 0.0.4 (preview)
Install or update:
| On | Command |
|---|---|
| macOS, Linux, WSL | brew install autter-dev/tap/lanes, or curl -fsSL https://github.com/Autter-dev/lanes/releases/latest/download/lanes-installer.sh | sh |
| Windows | winget install Autter.Lanes, scoop install lanes (after scoop bucket add autter https://github.com/Autter-dev/scoop-bucket), or irm https://github.com/Autter-dev/lanes/releases/latest/download/lanes-installer.ps1 | iex |
| Anywhere with Node | npm install -g @autter/lanes |
More ways, and how to check a download, at https://lanes.autter.dev/download.
Verify an archive: gh attestation verify <file> --repo Autter-dev/lanes, or compare it with SHA256SUMS.
Changes
Claude Code works in lanes. Run lane init once, then claude -w <name> starts a session in a lane of its own, with its own ports. Still a preview.
cd your-repo
lane init # writes lane.toml, and sets up Claude Code's hooks
claude -w fix-auth # a new lane; the session starts in it with PORT and LANE_URL set
lane list # fix-auth, with its ports and folderIn this version:
claude -w <name>makes a lane and works in it. Subagents withisolation: worktreeand background sessions get lanes too, and removing the worktree removes the lane.- A session in a lane starts with
PORT,VITE_PORTandLANE_URLset, and knows which lane it's in. - If Claude Code tries
git worktree addin a Lanes repo, it's pointed tolane newinstead. lane initputs Claude Code's hooks in.claude/settings.local.json, which stays on your machine and out of Git. It also adds a Git hook that turns any other tool's new worktree into a lane, and a short note inAGENTS.md.--no-agentsskips all of it.- For every repo at once, there's a Claude Code plugin:
/plugin marketplace add Autter-dev/lanes, then/plugin install lanes@autter.
Not yet:
- Other agents (Cursor, Codex, Gemini CLI, Copilot) get lanes only through the Git hook: no session context and no
git worktree adddeny. - Repos with Git hooks under
core.hooksPath(Husky, lefthook) don't get the Git hook yet;lane initsays so. - There's no background daemon, no checkpoints or undo, no promote to a pull request, and no database per lane.
2026-10-17
16:43Added: Claude Code works in lanes.claude -w fix-authmakes a lane, and the session works in it, with no other steps oncelane inithas run. Checked end to end with Claude Code 2.1.300 on Windows. (20d009c)lane hook claude <event>: what Claude Code's hooks run, reading its JSON on stdin.worktree-create: makes the lane (or finds the one with that name) and prints its folder. Names likeFix Authbecomefix-auth. Subagents withisolation: worktreeand background sessions get lanes too.worktree-remove: removes the lane and frees its ports.session-start: putsPORT,VITE_PORT,LANE_URLand the rest in the session's environment, and tells the agent which lane it's in and how to start the app.pre-tool-use: turns downgit worktree addin a Lanes repo, pointing tolane new <name> --print-path.- Session start and the deny never stop a session: outside a Lanes repo, or if anything goes wrong, they stay silent.
lane initsets up agents:- Claude Code's hooks go in
.claude/settings.local.json, kept out of Git, so a teammate withoutlaneisn't affected. This happens only when the repo has.claude/orCLAUDE.md, orclaudeis on your PATH. - A Git
post-checkouthook turns a worktree any other tool makes into a lane. An existing hook still runs after it. Withcore.hooksPathset (Husky, lefthook), nothing is written, and init says why. AGENTS.mdgets a short note on working in lanes, andCLAUDE.mdgets an@AGENTS.mdline.- Running it again changes nothing.
--no-agentsskips it all.
- Claude Code's hooks go in
lane newcopies.claude/settings.local.jsoninto the lane, so a session started inside a lane has the hooks too.- A Claude Code plugin in this repo, for every repo at once:
/plugin marketplace add Autter-dev/lanes, then/plugin install lanes@autter. It runs the same hooks.
16:28Changed: the website offers 0.0.3: the download page's archives, and a 0.0.3 entry on the releases page. (3f0efa4)