Eizen
TourLanesBrowserMemoryAutomationMeetingsReachConnections LanesFor teamsCompareSecurity Download for Windows

Stop your coding agents overwriting each other

Eizen is a desktop app for Claude Code, Codex and OpenCode. Each thread gets its own git worktree, dev server port and browser, so several can work on one repo at once and you merge the ones that worked.

Windows 10 and 11. Uses the accounts you already have.

An Eizen thread showing the invoice change it just made, with its lane branch in the headerA thread beside the Tasks panel listing two finished sub agentsA thread beside its browser panel showing the running invoice pageBranch history showing the diff of one turnThe new thread screen with token usage charts below the composer

Works with

Claude Code, Codex and OpenCode

Eizen runs the agent CLIs you already use and reads the same sessions, so you can start a thread in the app and resume it in a terminal, or the other way round.

Agents write code faster than anyone can read it. Two of them in one checkout will undo each other's work before lunch, and a month later nobody can say why a line is there.

One repository

Three lanes leave main. Two come back

Each dot is an agent working on its own branch. A merge that would conflict stops before it touches anything.

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.

Lanes

One worktree, one port and one browser per thread

Press Lane before you send. The thread starts in its own git worktree on its own branch, with your .env files copied in and node_modules shared with the main checkout. It gets a dev server port from 4100 up, and the agent is told to use it.

  • Merge from the breadcrumb. If it would conflict, nothing changes and Eizen names the files.
  • Try 3 ways. One message goes to three lanes, and you keep whichever works best when you use it.

How lanes work

What every thread gets

Six things that used to be your job

Its own folder and branch

A git worktree beside your repository, so two threads can't touch the same file.

  • harbor-web/main
  • .eizen-lanes/harbor-web/
  • 5c1a87/eizen/lane-5c1a87
  • a48476/eizen/lane-a48476
  • 9bb061/eizen/lane-9bb061

Its own port

Each lane gets the next free port, and the agent is told to use it.

PORTFirst laneSecond laneThird lane
410041014102

Approvals that say why

The exact command, the reason it's risky, and a clock if you set one.

Allow Bash?
Approves in 20sApproved
git push --force origin eizen/lane-5c1a87
Discards work or rewrites git history
DeclineAlwaysApprove

Its own browser

The agent moves a visible pointer, reads the page and catches console errors.

InvoicesShipments
http://localhost:4100/
HarborInvoicesShipmentsCarriers
InvoicesNew invoice
INV-20418Northwind Foods$12,840.00late
INV-20431Calder Steel$6,420.50open
INV-20437Ostrava Glass$3,189.00paid
INV-20452Lindqvist Timber$9,774.25open
Claude: clicking New invoiceClaude: reading the first rowClaude: taking a screenshot
1 console error

Every turn saved

A snapshot after each turn that you can read as a diff and restore.

Turn 2: read the invoice dataTurn 3: add the columnTurn 4: fix the termsTurn 5: the current files
- const TERMS_DAYS = 45
+ const TERMS_DAYS = 30
+ const DAY_MS = 86400000
+ function daysOverdue(item, today)

A count of what it used

Tokens for the thread and for each sub agent, while they run.

app.js pre-ship reviewTotal 271k
Main thread
184k
Money check
52k
HTML escaping
35k

Try it here

Press the buttons

This is the lane flow with the real steps in the real order. Turn Lane off to see what it prevents, or tick the box before you merge.

Try a laneA demo. Nothing runs on your machine
Add a Download CSV button above the invoice table.
    Long exposure of star trails circling a fixed point above the Gemini North telescope, crossed by its laser beam

    The idea behind it

    Star trails all turn around one point

    Leave a camera open under a clear sky and each star sweeps an arc around the same spot. Agents rewrite your files all day, and we wanted the branch and the reason for each change to stay put in the same way.

    λ = 2.5λ = 0.5

    Before the matrix

    The maths

    An eigenvector is the direction a matrix can stretch and cannot turn

    Watch the arrows. The matrix swings most of them to a new heading. The red ones stay on their own line and only change length, by a factor called the eigenvalue.

    Browser

    The agent can see what it built

    Claude opens your dev server in the thread's own browser, clicks through it, reads the console and takes screenshots, even when that thread is off screen. Websites open in a real WebView2 view, so OAuth and logins behave the way they do in Edge.

    See the browser tools

    InvoicesShipments
    http://localhost:4100/
    HarborInvoicesShipmentsCarriers
    InvoicesNew invoice
    INV-20418Northwind Foods$12,840.00late
    INV-20431Calder Steel$6,420.50open
    INV-20437Ostrava Glass$3,189.00paid
    INV-20452Lindqvist Timber$9,774.25open
    Claude: clicking New invoiceClaude: reading the first rowClaude: taking a screenshot
    1 console error

    Memory

    Click a line and read why it’s there

    Git blame can tell you Claude changed something three weeks ago. Eizen records which turn wrote each line, so Alt+L shows the thread, what you asked for and what the agent said about it. Before the agent edits that line again, it gets the same note.

    How Eizen remembers

    7function total(status) {
    8}
    9const TERMS_DAYS = 30
    10const DAY_MS = 86400000
    11
    12function daysOverdue(item, today) {
    13 const due = Date.parse(item.issued)
    Line 9Alt+L
    Invoice table days overdue column
    Lines 9 to 19, 8m ago
    You asked

    Add a Days overdue column. Terms are 30 days from the issued date.

    Why

    Due date is issued plus 30 days. Whole days are compared at UTC midnight so time zones can't shift the count.

    A normal day

    A working day on one repo

    The logo is three bars of different lengths pointing the same way. It's also a fair picture of a day with Eizen: several threads moving at different speeds toward the same main branch.

    Morning

    Read what ran overnight. Start three lanes on the billing repo, one for each ticket that came out of yesterday's review.

    Afternoon

    Approve the odd command from your phone. Pick an element in the browser and tell the agent what is wrong with it.

    End of day

    Merge the lanes that passed the project checks and queue the slow jobs for tonight.

    Night shift

    Queue work for the hours your accounts sit idle

    Add tasks before you leave. Between 23:00 and 07:00 Eizen starts them one at a time per project, only while the account you chose has headroom. A task that stops for an approval is parked and reported, and the summary is there in the morning.

    The rule it follows

    Move the sliders

    The hand sweeps one night. Tasks run inside the red arc, and only while the account is under both limits.

    0003060912151821 02:00

    Try the limits

    32%
    61%
    The next task would start

    A task starts only under both limits: 50% and 80% unless you change them.

    Upgrade the date handling
    Regression tests for totals
    Clear the safe TODOs

    For teams

    From first install to a daily merge

    Eizen has no admin console. A lead sets it up once on one machine and exports the settings, and everyone else imports that file. Tokens stay on each person's computer.

    Read the full rollout

    1. Day 1. One engineer installs it and adds accounts and two repos.
    2. Day 1. Set the permission mode, protected files and a check command.
    3. Day 2. Connect the tracker, GitHub and the database.
    4. Week 1. Run two lanes at once on real tickets.
    5. Week 2. Export the settings and bring in the rest of the team.
    6. After that. Night shift for slow jobs, review links for people outside engineering.

    Compared with

    How it sits next to what you use now

    Most teams already use a terminal agent, an AI editor or a hosted agent. Eizen sits on top of the first and alongside the other two.

    EizenTerminal agent aloneAI editorHosted agent
    Several agents on one repoOne worktree per thread, set up for youOne checkout unless you script worktreesUsually one workspace per windowSeparate cloud environments
    Seeing the running appA browser per thread that the agent drivesAdd a browser tool yourselfVaries by editorScreenshots from the cloud environment
    Where it runsYour computer, against your local servicesYour computerYour computerThe vendor's servers
    Inline autocompleteNoneNoneYesNone
    Works with your PC offNoNoNoYes

    Descriptions of other tools cover the usual setup and may change. Full comparison

    Reach

    Approve the next step from your phone

    Pair a phone with a QR code and keep driving threads running on your PC. Install Eizen on a laptop and your PC's dev ports appear at the same localhost addresses there, so sign-in redirects finish normally.

    Phone, laptop and review links

    An Eizen thread on a phone

    Your PC

    localhost:3000next dev
    localhost:5173vite
    localhost:8080api

    Your laptop

    localhost:3000forwarded
    localhost:5173forwarded
    localhost:8080in use here

    Security

    Your threads and tokens stay on your computer

    Eizen has no server of its own. Prompts and the code an agent reads go to the model provider you chose, as they do with the CLI. Connection secrets are encrypted for your Windows user.

    Allow Bash?
    Approves in 20sApproved
    git push --force origin eizen/lane-5c1a87
    Discards work or rewrites git history
    DeclineAlwaysApprove

    Approvals with reasons

    A prompt shows the exact command and, when it is risky, why.

    A safety net you can turn on

    With it on, force pushes and recursive deletes still stop and ask, even in Bypass permissions.

    Protected files

    List the paths agents may read and never edit.

    Project checks

    A failing test run goes back to the agent before the turn can finish.

    What stays and what leaves

    Connections

    Fifteen services one click away

    Sign in, pick which Claude accounts may use it, and the tools appear in the next message. Any other MCP server works through Custom.

    Questions

    Before you install

    What is Eizen?
    Eizen is a Windows desktop app for running Claude Code, Codex and OpenCode. Each thread gets its own git worktree, dev server port and browser, so several agents can work on one repository without overwriting each other. It also records which turn wrote each line, runs queued tasks overnight and lets you approve the next step from your phone.
    Where does my code go?
    Prompts and the code an agent reads go to the model provider you chose, as they do with the CLI. Eizen has no server of its own and sends no analytics. Tool calls go to the services you connected, and their tokens stay in an encrypted file for your Windows user.
    Does it replace Claude Code?
    No. Eizen runs Claude Code through its SDK and uses the same sessions. Keep your terminal if you like it.
    Does a lane copy the whole repository?
    Git worktrees share one object store, so a lane costs about the size of your checked-out files. node_modules is linked to the main checkout.
    What happens when my PC is off?
    Nothing runs. Your phone and laptop talk to the PC, and Night shift needs it awake.
    What happens at a usage limit?
    The thread stops and says so. Pick another account and send again, and queued messages move with it. Relay can do that for you if you turn it on, but check your plan's terms first.
    Which systems does it run on?
    Windows 10 and 11 are what we build and test.
    Can two people work in one thread?
    No. Threads belong to one computer. Review links let people outside the team comment on a running page.

    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.