Skip to content
Theme:

Git Diff View

Press Ctrl+G to open or close the git diff view. It shows changed files on the left and the diff on the right. By default the diff shows all changes relative to HEAD (both staged and unstaged); press t to cycle the scope between Both, Unstaged, and Staged. You can navigate hunks, stage and unstage files, create commits, discard changes, queue inline comments, and submit those comments back to the agent as a structured prompt.

┌─────────────────┬───────────────────────────┐
│ Git Diff · Both │ Unified Diff │
│ │ │
│ ● src/main.rs │ @@ -10,6 +10,8 @@ │
│ src/lib.rs │ fn main() { │
│ Cargo.toml │ + let config = ... │
│ │ + setup(config); │
│ │ run(); │
│ │ } │
│ │ │
├─────────────────┴───────────────────────────┤
│ j/k move · space stage · t scope · C commit │
└─────────────────────────────────────────────┘

The file-list header shows the active scope: Git Diff · Both, Git Diff · Unstaged, or Git Diff · Staged. The bottom help bar changes depending on which pane is focused.

KeyAction
Tab / Shift+TabMove focus between the file list and diff pane
h / In the diff pane, focus the file list; in the file list, collapse or move to parent
l / or EnterIn the file list, expand/open the selected entry and focus the diff
j / Move down
k / Move up
gJump to top of the diff pane
GJump to bottom of the diff pane
PageDown / PageUpPage through the diff pane
oToggle between the hunk-diff view and the full-file view (in the diff pane)
< / >Resize the split panes
rRefresh the diff
EscClose git diff view

Press t to cycle what the diff shows:

ScopeComparisonIncludes untracked files
Both (default)HEAD → worktreeYes
Unstagedindex → worktreeYes
StagedHEAD → indexNo

The active scope is shown in the file-list header.

KeyAction
SpaceToggle staging of the selected file or directory (stages unstaged entries, unstages staged ones; on a directory, applies to every file beneath it)
aStage all changes
AUnstage all changes
CCommit staged changes

C opens a commit-message composer at the bottom of the screen. Type a message and press Enter to create the commit, or Esc to cancel. You can only commit when at least one file is staged.

Press d to discard changes to the selected file. A confirmation prompt appears — press y to confirm or n / Esc to cancel. Discard restores the file to its state in HEAD (for tracked files) or removes it (for untracked files).

KeyAction
cAdd a comment at the current diff location
EnterSubmit a comment while editing that comment
sSubmit all queued comments to the agent (from the diff pane)
uUndo the last queued comment
  1. Navigate to a diff line you want to comment on.
  2. Press c to open the comment editor.
  3. Type your comment and press Enter to queue it.
  4. Add more comments if needed.
  5. Press s from the diff pane to submit all queued comments.

All queued comments are sent as a single prompt to the agent, grouped by file and including the line number, line kind, line text, and your feedback. This lets the agent understand exactly which changes you’re commenting on.

The git diff view is designed for reviewing agent-generated changes. After the agent modifies files, open the diff to:

  • See exactly what changed
  • Stage the changes you want to keep and commit them directly
  • Discard changes you don’t want
  • Add targeted feedback on specific lines
  • Request fixes to particular hunks without describing them in prose