Local and GitHub Code Review TUI

angelmm1 pts0 comments

tuicr — terminal UI for code review

~/code/auth-svc — tuicr

v0.10.0 · press ? for help

live in agavra/tuicr · vim keybindings, GitHub-style diffs, real PR-style comments

sponsored by

features

why review in the terminal at all

[01]

›GitHub-style diff

Every changed file in one continuous scroll.

jkCtrl-d{}[]

[02]

›Vim, all the way down

Modal navigation, visual selection, gG jumps, search with /, jump to line N with {N}G. If your fingers know vim, they already know tuicr.

hjkl/ngGzz

[03]

›PR-style comments

Comment at the line, range, file, or review level. Select multi-line ranges with v / V. Classify each by issue, suggestion, note, or praise (or define your own).

cCvV;cTab

[04]

›Three export targets

Pull a live PR with tuicr pr 125, then push your review back to GitHub (:submit), copy structured markdown to your clipboard (y), or pipe to stdout for any downstream tool.

tuicr pr:submity--stdout

[05]

›Git, jj & Mercurial

Single static binary, no runtime. Auto-detects the VCS: jj first (jj repos are Git-backed underneath), then git, then hg.

gitjjhg

[06]

›Agent skill bundle

Ship the /tuicr skill to Claude Code or Codex. The agent opens tuicr in a tmux split; you review, and comments flow back automatically.

/tuicrtmuxskills/

themes

click to apply across the page · 20+ built-ins ship with tuicr

export

three targets, one keystroke each

→GitHub

team workflow

:submit opens a picker (Comment, Approve, Request changes, or Draft). Inline comments land on the right lines as a real PR review; review-level comments become the summary. Requires gh authenticated to the repo.

⌘:submit

→Clipboard

agent loop

y or :clip copies a structured markdown block. Each comment is numbered, classified, and anchored to a file/line. Paste it back to Claude, Codex, Cursor, or any LLM and let it act on the whole batch.

⌘y · :clip

→Stdout

scripting

Run with --stdout to pipe the same markdown to any downstream process. Persist a review to disk, send it to a CI job, pipe it into pbcopy, or chain it into a custom workflow.

$tuicr --stdout > review.md

clipboard.md · copied —<br>3 comments

I reviewed your code and have the following comments. Please address them.

Comment types:<br>ISSUE (problems to fix)<br>SUGGESTION (improvements)<br>NOTE (observations)<br>PRAISE (positive feedback)

1. **[ISSUE]** src/auth.rs:49 — Silent swallow of expiry<br>context when claims.exp SUGGESTION]** src/auth.rs:102 — Pull TOKEN_TTL_SECS<br>into a config struct so tests can override it without<br>recompiling. Default 3600 is fine for prod; rotation<br>policies will want shorter.

3. **[PRAISE]** tests/auth_test.rs — Nice coverage on the<br>expired-token path. Keep the table-driven style.

compare

what tuicr does that the alternatives don't

tuicr<br>hunk<br>lumen<br>gh pr review<br>git diff

TUI diff viewer

Comment in the TUI

Vim keybindings<br>partial1

Push inline review → GH<br>partial2

Agent-ready markdown<br>via CLI skill

git

jj

Mercurial (hg)

Single static binary<br>needs Node

1Lumen has j/k navigation but no broader vim model (visual mode, {N}G, Ctrl-d/Ctrl-u, etc.).

2gh pr review posts approve/comment/request-changes at the review level only. No inline line comments.

keybindings

first-session cheatsheet · press ? in-app for the rest

Navigate

j / kdown · up<br>Ctrl-d / uhalf page<br>{ / }prev · next file<br>[ / ]prev · next hunk<br>/ then nsearch · next match<br>gG · {N}Gtop · bottom · line N

Review

ccomment at cursor<br>Ccomment on whole file<br>;creview-level comment<br>v / Vvisual range select<br>rtoggle reviewed<br>Tabcycle comment type

Export & cmds

:submitpush review to GitHub<br>y · :clipcopy markdown<br>--stdoutpipe to stdout<br>:diffunified ⇄ side-by-side<br>:commitspick revision range<br>?full help

install

pick your weapon · single static binary, no runtime

review tuicr comments comment github line

Related Articles