Skip to content

Lanes 0.0.4 (preview)

Choose a tag to compare

@github-actions github-actions released this 17 Oct 16:56
· 82 commits to main since this release

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 folder

In this version:

  • claude -w <name> makes a lane and works in it. Subagents with isolation: worktree and background sessions get lanes too, and removing the worktree removes the lane.
  • A session in a lane starts with PORT, VITE_PORT and LANE_URL set, and knows which lane it's in.
  • If Claude Code tries git worktree add in a Lanes repo, it's pointed to lane new instead.
  • lane init puts 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 in AGENTS.md. --no-agents skips 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 add deny.
  • Repos with Git hooks under core.hooksPath (Husky, lefthook) don't get the Git hook yet; lane init says 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:43 Added: Claude Code works in lanes. claude -w fix-auth makes a lane, and the session works in it, with no other steps once lane init has 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 like Fix Auth become fix-auth. Subagents with isolation: worktree and background sessions get lanes too.
      • worktree-remove: removes the lane and frees its ports.
      • session-start: puts PORT, VITE_PORT, LANE_URL and 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 down git worktree add in a Lanes repo, pointing to lane 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 init sets up agents:
      • Claude Code's hooks go in .claude/settings.local.json, kept out of Git, so a teammate without lane isn't affected. This happens only when the repo has .claude/ or CLAUDE.md, or claude is on your PATH.
      • A Git post-checkout hook turns a worktree any other tool makes into a lane. An existing hook still runs after it. With core.hooksPath set (Husky, lefthook), nothing is written, and init says why.
      • AGENTS.md gets a short note on working in lanes, and CLAUDE.md gets an @AGENTS.md line.
      • Running it again changes nothing. --no-agents skips it all.
    • lane new copies .claude/settings.local.json into 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:28 Changed: the website offers 0.0.3: the download page's archives, and a 0.0.3 entry on the releases page. (3f0efa4)