| Crates.io | tuicr |
| lib.rs | tuicr |
| version | 0.5.0 |
| created_at | 2026-01-09 19:55:44.005176+00 |
| updated_at | 2026-01-23 03:55:58.613691+00 |
| description | Review AI-generated diffs like a GitHub pull request, right from your terminal. |
| homepage | https://github.com/agavra/tuicr |
| repository | https://github.com/agavra/tuicr |
| max_upload_size | |
| id | 2032750 |
| size | 973,859 |
Review AI-generated diffs like a GitHub pull request, right from your terminal.

I use Claude a lot but there's no middle ground between "review every change" and "accept all edits". Reviewing every change slows things down to human speed, but accepting all edits makes the final review painful since I end up leaving comments one at a time and wait after each fix.
tuicr is the middle ground. Let the agent loose, review the changes like a
normal PR, drop comments where needed, and export everything as structured
feedback Claude can act on in one pass.
It makes my AI-assisted development go brrrrrr.
[!TIP] I pronounce it "tweaker"
A GitHub-style diff viewer in your terminal with vim keybindings. Scroll through changed files, leave comments, mark files as reviewed, and copy your full review to clipboard in a format ready to paste back to the agent.
j/k, Ctrl-d/u, g/G, {/}, [/]v / V and comment on multiple lines at oncebrew install agavra/tap/tuicr
Download the latest release for your platform from GitHub Releases.
cargo install tuicr
git clone https://github.com/agavra/tuicr.git
cd tuicr
cargo install --path .
Run tuicr in any git, jujutsu, or mercurial repository:
cd /path/to/your/repo
tuicr
Detection order: Jujutsu → Git → Mercurial. Jujutsu is tried first because jj repos are Git-backed.
| Flag | Description |
|---|---|
--theme dark |
Use dark color theme (default) |
--theme light |
Use light color theme for light terminal backgrounds |
| Key | Action |
|---|---|
j / ↓ |
Scroll down |
k / ↑ |
Scroll up |
h / ← |
Scroll left |
l / → |
Scroll right |
Ctrl-d / Ctrl-u |
Half page down/up |
Ctrl-f / Ctrl-b |
Full page down/up |
g / G |
Go to first/last file |
{ / } |
Jump to previous/next file |
[ / ] |
Jump to previous/next hunk |
Enter |
Expand/collapse hidden context between hunks |
zz |
Center cursor on screen |
| Key | Action |
|---|---|
Tab |
Toggle focus between file list and diff |
;h |
Focus file list (left panel) |
;l |
Focus diff view (right panel) |
;e |
Toggle file list visibility |
Enter |
Select file (when file list is focused) |
| Key | Action |
|---|---|
r |
Toggle file reviewed |
c |
Add line comment (or file comment if not on a diff line) |
C |
Add file comment |
v / V |
Enter visual mode for range comments |
dd |
Delete comment at cursor |
i |
Edit comment at cursor |
y |
Copy review to clipboard |
| Key | Action |
|---|---|
j / k |
Extend selection down/up |
c / Enter |
Create comment for selected range |
Esc / v / V |
Cancel selection |
| Key | Action |
|---|---|
Tab |
Cycle comment type (Note → Suggestion → Issue → Praise) |
Enter / Ctrl-Enter / Ctrl-s |
Save comment |
Shift-Enter / Ctrl-j |
Insert newline |
← / → |
Move cursor |
Ctrl-w |
Delete word |
Ctrl-u |
Clear line |
Esc / Ctrl-c |
Cancel |
| Key | Action |
|---|---|
:w |
Save session |
:e (:reload) |
Reload diff files |
:clip (:export) |
Copy review to clipboard |
:diff |
Toggle diff view (unified / side-by-side) |
:q |
Quit |
:x / :wq |
Save and quit (prompts to copy if comments exist) |
? |
Toggle help |
q |
Quick quit |
| Key | Action |
|---|---|
j / k |
Move selection |
Space |
Toggle commit selection |
Enter |
Confirm and load diff |
q / Esc |
Quit |
| Key | Action |
|---|---|
y / Enter |
Yes |
n / Esc |
No |
When you export your review (:clip or confirm on :wq), tuicr copies structured Markdown to your clipboard. The format is optimized for pasting into AI agent conversations:
I reviewed your code and have the following comments. Please address them.
Comment types: ISSUE (problems to fix), SUGGESTION (improvements), NOTE (observations), PRAISE (positive feedback)
1. **[SUGGESTION]** `src/auth.rs` - Consider adding unit tests
2. **[ISSUE]** `src/auth.rs:42` - Magic number should be a named constant
3. **[NOTE]** `src/auth.rs:50-55` - This block could be refactored
Each comment is numbered and self-contained with its file path and line number or range (if applicable).
Sessions are automatically saved to ~/.local/share/tuicr/reviews/ (XDG compliant). When you reopen tuicr in the same repository, your previous review progress (comments, reviewed status) is restored.