Skip to content

What stage is

A git terminal application for reading code you did not write.

stage is a git application for the terminal. It does what lazygit does, with lazygit’s keys, and it adds the half that reviewing needs: a diff you can read, navigate, and comment on.

It exists because of how code gets written now. An agent produces a change in one pass. You did not type it, and you have to decide which parts of it are correct.

  1. An agent writes a change.
  2. You read every line of it.
  3. You stage the lines you accept, and commit them.
  4. You send the rest back as comments.

Each step has a page:

Step Page
Read Reading a diff
Understand Navigating with LSP
Accept Staging
Send back Review comments

The diff is the product. stage shows it with syntax colors, marks the changed words inside a changed line, and puts the two sides beside each other.

You can also move through the code from the diff. Put the cursor on a name, press g, and stage opens the file that defines it. A language server answers, so the answer is the real one.

This is the half that a git application usually leaves out. For someone reading unfamiliar code, it is the half that matters.

Staging, committing, branches, history editing, stashes, worktrees: the workflow and the keys are lazygit’s. Where both tools have an action, lazygit’s key wins.

If lazygit is in your hands already, most of stage is too. Read Coming from lazygit for the differences.

stage is not an agent, not an editor, and not a merge tool.

It also does not reimplement git. Every command shells out to the git binary, and @ shows you the commands it ran.

  1. Install it.
  2. Do Your first review.
  3. Read Panels, modes and contexts to understand the keyboard.