Eizen
TourLanesBrowserMemoryAutomationMeetingsReachConnections LanesFor teamsCompareSecurity Download for Windows
Two observatory domes side by side under star trails

Lanes

Give each thread its own copy of the repo

Two agents in one folder read each other's half-finished edits, run each other's broken tests and fight over port 3000. A lane keeps them apart.

The map

Agents on their own lines

Every lane has its own branch, folder and port. A merge that would conflict stops before anything changes.

main eizen/lane-5c1a87, port 4100. Days overdue column eizen/lane-a48476, port 4101. Status pills eizen/lane-9bb061, port 4102. Pre-ship review Would conflict in app.js. Nothing changed Merged Merged
  • Blue. Finished and merged into main.
  • Amber. Would conflict, so nothing changed.
  • Green. Checks passed and merged.

Two agents, one folder

const TERMS_DAYS = 30 Aconst TERMS_DAYS = 45Breading a file A is halfway throughBconst TERMS_DAYS = 60A's change is gone, and the tests fail for B

Two agents, two lanes

Aeizen/lane-5c1a87: TERMS_DAYS = 45 Beizen/lane-a48476: TERMS_DAYS = 60 Both finish, both pass their checks Merging the second names the file that conflicts

How it works

From one button to a merged branch

The composer on a new thread with the Lane buttonA thread running in its lane with the lane branch in the headerThe browser panel on the dev server for this laneA lane thread and its Tasks panelThe project menu with Merge and Remove lane
01

Press Lane and send

The Lane button sits next to the permission mode on a new thread and stays on until you press it again. The project folder must be the top of a git repository.

02

Eizen prepares the folder

A git worktree appears beside your repository on a new branch, starting from your last commit. Your .env files are copied in and node_modules is linked to the main checkout.

03

The agent gets a port

Each lane has its own dev server port, starting at 4100. Claude gets it as PORT and is told to stay inside its folder and commit on its branch.

04

Everything follows the lane

Files, the diff panel, the terminal, branch history and the browser all belong to that lane. You can open the others in split view and watch them side by side.

05

Merge it or remove it

Commit with the usual button, then click the project name in the breadcrumb and choose Merge. A merge that would conflict changes nothing and names the files. Remove lane deletes the folder and keeps unmerged commits on the branch.

Try 3 ways

Send one task three ways and keep the best

Open the "..." menu on a new thread and choose Try 3 ways in lanes. The same message starts in three lanes, each with its own thread and port. You judge by using the three running apps, and it costs three times the usage.

Attempt 1:4100
Attempt 2:4101
Attempt 3:4102

Try it here

Run a lane in this page

The demo follows the same steps as the app. Tick the box to see how a conflict is handled.

Try a laneA demo. Nothing runs on your machine
Add a Download CSV button above the invoice table.

    Limits

    What a lane doesn’t separate

    A worktree separates files. Anything your app keeps outside its folder is still shared, and it pays to know which parts before you start five at once.

    What happensWhat to do
    DatabasesEvery lane talks to the same database unless your config says otherwise.Use a database per branch, such as a Neon branch, for anything that writes.
    Hard-coded portsA dev server that ignores PORT will clash.Point its port option at the one shown in the project menu.
    node_modulesLinked to the main checkout, so an install in a lane changes it for everyone.Do dependency upgrades in a normal thread.
    Uncommitted workA lane starts from the last commit.Commit or stash first if the lane needs it.
    Codex, OpenCode, terminalsClaude gets the port automatically and these do not yet.Set PORT yourself in those.

    Questions

    About lanes

    Why not run git worktree myself?
    You can. Eizen also copies env files, links dependencies, picks a port, tells the agent where it is, and removes links safely before deleting the folder, so a delete can never empty your main node_modules.
    How much disk does a lane use?
    About the size of your checked-out files. Git history is shared between worktrees.
    Can a lane start from another branch?
    Lanes start from the commit your main checkout is on. Switch branch there first.
    What happens to the thread when I remove a lane?
    It leaves the sidebar. The transcript stays with your Claude history on disk.

    Open a lane on the repo you were going to work on anyway

    The setup checklist handles Claude Code, sign-in and Git, so you won't need a terminal.