Review a diff

Reviewing a diff is a tool float, the same shape as lazygit or btop: a command on a chord that floats over your panes and closes on the same key. The command is zen-review, a standalone review tool under the MIT license that runs in any terminal.

ZenTerm shipped its own diff viewer on G through v0.10.0. v1.0.0 replaced it with zen-review, so the chord stays and the tool behind it runs outside ZenTerm too.

Install zen-review

shell
curl -fsSL https://raw.githubusercontent.com/praxis-labs-io/zen-review/main/install.sh | sh

The binary lands in ~/.local/bin. The install guide covers the PATH setup, Go and clone installs, and upgrades.

Put it on a chord

Open Settings with ,, choose Tools, then Add tool float. Point it at zen-review, set the shortcut to

G, and pick the checklist icon. Settings writes one line to your config:

float = title:Review command:"zen-review" key:cmd+g git:true persist:dir icon:checklist

G now floats the review over the repository the focused pane sits in.

Why this float sets git and persist

Those two fields carry the weight here, and a review is where they earn it.

git:true opens the float inside a Git repository and nowhere else. zen-review measures against your base branch, so it has nothing to show in a plain folder. The chord stays quiet there rather than opening an empty card.

persist:dir keeps a session per directory. A review is a burn-down you come back to: what you have read is stored as line ranges, and those ranges survive the agent's next rewrite. Reopening in the same repository picks the reading up where you left it, and a fresh start each time would throw that away.

The configuration reference lists every field a float takes, including a pinned working directory and its position in the toolbar.

Learn the tool

n walks to the next hunk you have not read, r marks the one you are on and advances, c writes a comment, and ? lists every key. zen-review's README covers the review loop, the CLI, and reviewing what an agent wrote.

If you bound diff_viewer or diff-layout in your config, those keys do nothing in v1.0.0 and the log says what to write instead.