install · quick start · controls · scopes · configuration · limitations · changelog
A code-review pane for herdr. Read your agent's diff beside the chat, comment on lines, and send the comments back.

|.m renders a .md file.reviewr never edits your files, never sends on its own, and never posts to your PR.
gh, glab, or az (with the azure-devops extension), logged in.herdr plugin install persiyanov/herdr-reviewr
reviewr opens on its own when herdr creates a workspace for a worktree. To open it yourself:
herdr plugin action invoke open --plugin persiyanov.reviewr
To update, reinstall. Your config stays:
herdr plugin uninstall persiyanov.reviewr && herdr plugin install persiyanov/herdr-reviewr
Without herdr, run a release binary on any repo. Everything but Send and the last turn scope works:
herdr-reviewr ~/some/repo
j / k in the file list, or ] to jump from change to change.Tab.v, then j / k, or drag the line numbers.c, type, Enter.s puts every comment in the agent's input.The footer shows the next step. ? lists every key.
To toggle reviewr with a key, add this to ~/.config/herdr/config.toml:
[[keys.command]]
key = "cmd+r" # many macOS terminals swallow alt+
type = "plugin_action"
command = "persiyanov.reviewr.toggle"
Every key can be rebound (Keybindings).
Getting around
| Key | Action |
|---|---|
1 2 3 |
Tab: Changes / All files / PR |
u b t g |
Scope: uncommitted / branch / last turn / commits |
B |
Pick the base branch |
G |
Pick commits |
j k · ↑ ↓ |
Move |
] [ |
Next / previous change |
f F |
Next / previous file |
PageUp PageDown |
Page |
Ctrl+U Ctrl+D |
Half page |
Tab |
Switch pane |
→ ← |
Expand / collapse, or scroll sideways |
/ |
Search files and code |
Ctrl+F |
Find in file |
: |
Go to line (:0 first, :$ last) |
w |
Wrap lines |
m |
Rendered / source markdown |
\| |
Unified / split diff (needs 137 columns) |
p |
Move the file list |
z |
Hide / show the file list |
< > |
Widen / narrow the file list |
r |
Refresh |
? |
All keys |
q |
Quit (asks if comments are unsent) |
Q |
Quit and drop unsent comments |
Reviewing
| Key | Action |
|---|---|
v |
Select lines |
c |
Comment |
e |
Edit the comment, or open the file in your editor |
d |
Delete comment |
n N |
Next / previous comment |
l |
List comments |
s |
Send comments to the agent |
y |
Copy comments |
esc |
Clear selection |
Comment box
| Key | Action |
|---|---|
Enter |
Save |
Esc |
Cancel |
Shift+Enter · Alt+Enter · Ctrl+J |
New line |
The usual editing keys work: arrows, Home / End, Ctrl+A / Ctrl+E, Alt+b / Alt+f,
Ctrl+W / Ctrl+U / Ctrl+K.
PR tab
| Key | Action |
|---|---|
j k |
Move through description and comments |
PageUp PageDown |
Scroll |
o |
Open in browser |
r |
Refresh |
Mouse: drag to copy, double-click a word, triple-click a line. Click or drag line numbers to comment. Click files, tabs, and links. Scroll with the wheel.
G.reviewr starts in uncommitted (default_scope changes that). Git-ignored files never show
in Changes.
Flags on the pane command:
| Flag | Default | Meaning |
|---|---|---|
--base <ref> |
auto | base for the branch scope, overrides the pick |
--theme <name> |
catppuccin |
color theme |
--wrap <on\|off> |
on |
wrap long lines |
Everything else goes in ~/.config/herdr/plugins/config/persiyanov.reviewr/config.toml. Saving
it applies at once. An invalid file blocks the pane with the error until you fix it.
theme = "tokyo-night"
default_scope = "branch" # uncommitted | branch | last-turn
markdown_view = "rendered" # source | rendered
diff_view = "split" # unified | split
navigator_position = "bottom" # right | bottom | left | top
toggle_placement = "overlay" # split | overlay | zoomed | tab
toggle_direction = "down" # right | down, for split
auto_open = false
editor = "code -g {file}:{line}"
url_opener = "browser-bridge --new-tab {url}"
review_prefix = "Fix each comment, then run the tests."
github_host = "github.example.com"
gitlab_host = "git.corp.example"
azure_devops_host = "tfs.corp.example"
[keybindings]
comment = ["c", "ㅊ"]
Dark: catppuccin, catppuccin-frappe, catppuccin-macchiato, dracula, nord, gruvbox,
one-dark, solarized, monokai, tokyo-night, rose-pine, ayu, everforest.
Light: catppuccin-latte, gruvbox-light, one-light, solarized-light, github-light,
tokyo-night-day, rose-pine-dawn.
Pick one that matches your terminal's background. Shared names match herdr's colors.
m and | stick for every file you open until you press them again. markdown_view and
diff_view set how a new pane starts.
Split needs a diff pane 137 columns wide: hide the file list (z), move it below (p), or open
reviewr zoomed or as an overlay. A narrower pane shows unified until it widens.
navigator_position or p moves it. < / > or dragging its edge resizes it. z hides it.
The branch scope compares against the repo's default branch. To pick another, press B or click
the base name in the header. Type to filter, or type any commit reference like HEAD~2. The
pick holds for this worktree until you change it. --base overrides it.
e opens the file at your line in $VISUAL, $EDITOR, or git's core.editor. Common editors
open at the right line. A terminal editor takes the pane until you quit. For anything else, set
editor; {file} and {line} are filled in.
Links open with open, xdg-open, or the Windows default browser. Under herdr --remote, set
url_opener to something that reaches your browser. The URL is passed as one argument, never
through a shell, so don't use ssh host open {url}.
review_prefix goes above your comments on every send and copy. It arrives as pasted text, so
Claude Code won't run a /command in it. To run one, type it in the agent's input before you
press s.
Each action takes a list of keys that replaces its defaults. The footer shows the first. Extra keys help non-Latin layouts: bind the character your layout types on the same key.
| Action | Default |
|---|---|
down / up |
j / k |
next-hunk / prev-hunk |
] / [ |
next-file / prev-file |
f / F |
scope-uncommitted / scope-branch / scope-last-turn / scope-commits |
u / b / t / g |
base-pick / commit-pick |
B / G |
tab-changes / tab-all-files / tab-pr |
1 / 2 / 3 |
wrap |
w |
rendered |
m |
split |
\| |
navigator-position |
p |
navigator-hide |
z |
navigator-grow / navigator-shrink |
< / > |
select |
v |
comment |
c |
edit / delete |
e / d |
next-comment / prev-comment |
n / N |
comments |
l |
search |
/ |
find |
ctrl+f |
goto-line |
: |
keys |
? |
send |
s, S |
copy |
y, Y |
open-pr |
o |
refresh |
r |
quit |
q |
quit-discard |
Q |
A key is one character or a ctrl+ / alt+ chord. Tab, Esc, and Enter are fixed.
The PR tab reads the upstream remote, else origin, so forks work. Self-hosted servers need
github_host, gitlab_host, or azure_devops_host, matching the remote's hostname exactly.
SSH aliases like github.com-work don't match.
The toggle opens reviewr right of your agent. toggle_placement changes that: overlay covers
the tab, zoomed fills it, tab opens a new one.
reviewr opens on its own in a new worktree's workspace, with split or tab only, and leaves
your agent focused. auto_open = false turns that off.
To place reviewr in a herdr layout, give a pane command = "herdr-reviewr". If ~/.local/bin
isn't on your PATH, use ~/.local/state/herdr/plugins/persiyanov.reviewr/bin/herdr-reviewr.
On Windows, point it at the plugin's own bin folder.
pbcopy, wl-copy, xclip, or xsel (Windows needs none). Send works without.cd'd.r.r.See CONTRIBUTING.md. To run your build in herdr:
git clone https://github.com/persiyanov/herdr-reviewr
cd herdr-reviewr
just install # build to bin/herdr-reviewr, re-signed on macOS
herdr plugin uninstall persiyanov.reviewr
herdr plugin link .
Toggle the pane off and on after every just install.
JSON export, marking files reviewed, more named keys, automatic light/dark theme, more themes (kanagawa,
vesper, a dark github), a theme that follows the terminal, copying through the terminal.
reviewr is built by one person. If it saves you time, sponsor it. Company sponsors get their logo here.
MIT. Syntax highlighting by syntect and two-face, whose bundled themes color most syntax.
Bundled syntax themes in assets/, each under its own license:
tokyo-night, tokyo-night-day) — Apache-2.0.rose-pine, rose-pine-dawn) — MIT.ayu) — MIT, converted from its Sublime color scheme.everforest) — MIT, built from its palette and highlight groups.| 日期 | 榜单 | 排名 | 周期新增 | 总 STAR |
|---|