Where it all starts.

A coding agent for jobs that take all afternoon.

Close the terminal and the work keeps running; attach again whenever you like. On a tracked task, when the context fills, Yazi starts fresh from the task's saved checkpoint instead of a summary of the chat.

Yazi v0.1.0-dev
sessions 3
endpoints local
cwd ~/src/yazi

Run the parity tests

Preparing the test run.

Checkpoint saved

Terminal disconnected

$ yazi --continue

Session restored

shell · done
$ go test ./internal/tui2/parity
ok internal/tui2/parity 0.12s
Took 1.2s

All four scenarios passed.

Illustrative replay

Three things keep a long job alive.

Long agent runs go wrong the same way: the context fills, the chat gets summarised, and the summary drifts from what actually happened. On a tracked task, Yazi keeps the record outside the chat.

A fresh context that doesn't pretend.

A tracked task is one from a spec you attach with /spec. For it, Yazi rebuilds the model's context from the record: the objective, your constraints word for word, the latest checkpoint and the evidence it cites. Earlier episodes and summaries are left out, because that's where long runs drift.

in context

  • objective
  • your constraints, verbatim
  • the checkpoint
  • evidence
  • this episode

left out

  • the last episode
  • summaries
  • what the model thinks it tried

Work has an owner, and a revision.

Each task is written down with its owner and a revision number that only goes up. Every save says which revision it started from, so a worker holding stale information is refused instead of overwriting newer work.

task checkpoint rev 7
worker A saves, expects rev 7 accepted
worker B still holding rev 7 stale
worker B saves, expects rev 7 rejected
expected 7 ≠ current 8 B reloads

It writes down what it learned.

Run /refine and Yazi reviews the session, then proposes small edits to its own memories, prompt notes, skills and subagent specs. /refine apply lands them; every edit is revisioned, and /refine undo rolls back the last set.

session review proposal
memories skills prompt notes
changeset → rollback

What you can do with Yazi

Resume a saved task

Return to a session with yazi --continue; the full transcript stays searchable. A tracked task also brings its checkpoint, so the next round starts from what's recorded.

Run it somewhere else

A named SSH endpoint moves the shell, files, Python and processes to another machine. Credentials and history stay on your laptop.

Bring your own agent

Point a session at Claude Code, Codex or OpenCode. The agent keeps its own login. Yazi supplies the tools, the sandbox and the transcript. Switch back and its turns are ordinary history.

yazi native models
claude-acp haiku
codex-acp gpt-6-luna

Tools for longer jobs

Read less, know more

Reading a file to find out what is in it is how an agent wastes context. index returns the skeleton instead, so the model reads only the lines that matter.

skeleton internal/tool/file/read.go
imports: [4-17]
types:
  type Config struct [24-38]
    Cwd string
  type Read struct [40]
    func (r *Read) Invoke(...) [159-233]
fns:
  func NewRead(config) [42-53]

Built to hit the cache

When a file like AGENTS.md changes, Yazi appends a note instead of rewriting the prompt, so the provider's cached prefix survives. In a churn benchmark, this change took Yazi's warm cache rate from 11% to 98%.

Loopback provider · 3 trials · 10 turns each

Subagents with their own context

The model spawns subagents, each with its own context, Python runtime and model settings. They run in parallel and survive the parent compacting.

Prompt and forget

Give it a goal and walk away. Completion gates are real commands, go test or git diff --check, that have to pass before it stops. A failure feeds output back and it keeps going.

A sandbox that doesn't nag

Seatbelt on macOS, rootless runc on Linux, deny-default out of the box. It asks once for a resource and remembers the answer.

One session, two surfaces

The TUI and the web UI are the same runtime. Run /remote pair and scan the code it prints to open the same session on your phone. The server only answers clients on the private networks it defaults to: your LAN, a tailnet and the machine itself.

Nix as a tool source

In a sandboxed session with Nix available, the agent runs nix shell nixpkgs#<package> instead of installing with npm, pip, brew or apt, so nothing lands in the sandbox.

A plugin system that runs Doom

Plugins run out of process, are usually written in Python, and can add tools, commands, hooks, UI and model providers. That's enough surface to run Doom.

Run your first task.

One command on Linux or macOS. Then start yazi and type /login.

curl -fsSL https://yazi.krea.to/install.sh | bash