Eizen
TourLanesBrowserMemoryAutomationMeetingsReachConnections LanesFor teamsCompareSecurity Download for Windows

Memory

Every line can tell you why it exists

AI-written code comes with an awkward problem: a month later, nobody remembers asking for it. Eizen keeps the reason next to the line.

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.

The real editor: a card over line 9 of app.js naming the thread, the request and the reason

Ask this line

Read the conversation behind any line

Put the cursor on a line and press Alt+L, or use the context menu in the editor.

Recorded as it happens

Each turn records which lines it wrote, from the edits the agent actually made.

Follows the line

When later turns move a line, the record moves with it.

Outlives old snapshots

The index has its own storage, so clearing branch history leaves it alone.

Falls back to git blame

Anything written outside Eizen shows a normal blame, labelled as that.

The agent reads it too

The note arrives before the edit

Before an agent edits lines that an earlier turn wrote, Eizen tells it what those lines were for. It adds a few hundred characters at most and never holds the edit up. You can turn it off in Settings.

Eizen line history for app.js: an earlier turn wrote the lines you are about to replace. If they are a deliberate workaround, keep what they do unless the user asked otherwise.

Line 9, today. Asked: "Add a Days overdue column to the invoice table. Terms are 30 days from the issued date..."

The note an agent receives before the edit

Corrections become rules

Correct it once

When a message reads like a correction, Eizen distils it to one line and offers it as a project rule. Add writes it to CLAUDE.md, or AGENTS.md for Codex and OpenCode. Nothing is written until you press Add, and a dismissed rule isn't offered again.

You wrote
No, don't rely on colour alone. Always keep the word next to the dot.
Keep this as a rule in CLAUDE.md
Keep the word next to the status dot
AddEditDismiss
CLAUDE.md
## Rules from corrections
- Keep the word next to the status dot

Branch history

Go back to any turn without touching your git log

Eizen saves a snapshot after every turn in a separate repository of its own. You can read any turn as a diff, scrub through screenshots of the page as it was, and restore. Restoring saves your current state first.

Branch history with the turns on the left and a diff on the right

Side chats

Ask a side question without derailing the thread

Select any text in a reply. Ask quotes it in the composer. Start side chat branches the thread at that reply into a new one beside it, with the text already quoted, and the original carries on untouched.

A selection in a thread with Ask and Start side chat above it

Limits

What it can’t know

  • Code written outside Eizen has no origin, so you get git blame.
  • Changes made by a shell command rather than an edit tool are not attributed to a turn.
  • Corrections are detected from wording. Some will be missed and you can always write the rule yourself.

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.