---
title: "Review mode"
description: "ctrl+r opens a full-screen whole-file diff whose line comments go back to the agent as one review prompt."
canonical: "https://agent-manager.dev/docs/review/"
last-updated: "2026-10-09"
section: "Documentation"
source: "agent-manager"
---

# Review mode

`ctrl+r` on a session hands the whole screen to its repo, with a keymap of its own: changed files and +/- counts on the left, the entire file on the right, syntax highlighted with changed lines tinted, so every edit reads in full context. It refreshes as the agent keeps editing, and `esc` returns you to the list where you left it.

![Animated demo of the review screen: a changed Go file scrolled side by side, the layout switched to unified, the next file opened, then a line comment sent back to the agent, which starts working on it.](/assets/demo-diff.gif)

_Fig. 3ctrl+r · review mode_

## Comments go back to the agent

`c` writes a note on any line and `d` drops one. Comments stay on the review screen until you send them. `C` flattens every one into a single prompt, asks you to confirm, and delivers it into the agent's pane, so the agent starts addressing your notes while you watch the diff update.

Comments and reviewed-file marks stay after you quit. `C` sends the current drafts as one numbered round, and each point keeps its id. An agent marks one handled with `review_comment`, or with `agent-manager review-comment` from a shell. On a sent comment, `d` marks it handled or open. A comment whose line is gone is marked outdated.

## Keys

| Key | Action |
| --- | --- |
| ↑↓ / j k | Scroll the file. `ctrl+d` and `ctrl+u` move half a page, `g` and `G` jump to the ends. |
| J / K | Next, previous file. `tab` and `shift+tab` do the same. |
| n / N | Jump between changes. |
| u | Toggle unified and side by side, holding the cursor on the same source line. |
| s | Cycle the scope: uncommitted, versus target, last commit, staged. |
| r | Pick the repo when the session's directory holds several. Type to filter. |
| b | Pick the branch from the repo's worktrees. |
| B | Pick the target the "versus target" scope compares against. |
| space | Mark a file reviewed. |
| f | Show code files only, hiding images, compiled assets and lock files; press again to show them. |
| c / d | Write or drop a draft. On a sent comment, mark it handled or open. |
| C | Send the current drafts as one numbered round. Enter or `y` confirms. |
| o / F3 | Open the current file in your editor. |
| esc / q | Close the review. |

Each changeable value in the header wears its own key, so the scope, layout, repo and target pills read as `s`, `u`, `r`, `B` legends at a glance.

![The review screen, side by side, with changed lines tinted inside the full file.](/assets/screenshot-review.png)

_Fig. 4side by side_

## Which repo it opens

A session often starts in a parent folder that is not a git repo. Take `~/company` with `api/` and `web/` inside it. Press `ctrl+r`. Review looks through the folders under it, three levels down, skips dependency and build directories, and opens the repo with uncommitted changes. When every repo is clean, it opens the one with the newest commit. Press `r` and type to pick a different one.

The list footer reminds you to tell the agent "set review mode". The agent calls the [`review`](/docs/mcp/#tools) tool, or runs the subcommand from a shell inside its session, and the next review opens there:

```bash
agent-manager review-repo /path/to/repo
agent-manager review-base main
```

The path is checked to be inside a git repo and resolved to the repo root, so a declaration is a fact rather than a guess. Review then resolves its target in a fixed order:

- a repo you picked by hand with `r` or `b`, for as long as the manager runs,
- then the agent's declared repo,
- then the ranking: dirty working trees first, then the most recent commit.

> **Worktrees** Linked worktrees are discovered wherever they live on disk, so one declaration names both the repo and the branch under review. A stored base ref that stops resolving surfaces as an error in review, and `B` opens a picker to set or clear it.
