{"slug": "show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes", "title": "Show HN: Critter TUI for reviewing GitHub PRs and agent changes", "summary": "Andy Hamilton released Critter, a keyboard-driven TUI for reviewing GitHub pull requests and coding agent changes, installable via `cargo install --git https://github.com/andyhmltn/reviewer`. The tool integrates with GitHub CLI and nvim, supports local reviews without posting to GitHub, and includes a Codex plugin and tmux bindings for agent feedback loops.", "body_md": "Give every diff a second look. 👀\n\nCritter brings GitHub's familiar review flow to a fast, keyboard-driven TUI: read diffs, leave inline comments, and submit a review. It also works as a review loop for coding agents—launch Critter, write your feedback, and send it straight back to the agent for another pass.\n\nYou need [Rust](https://www.rust-lang.org/tools/install), the [GitHub CLI](https://cli.github.com/), and an authenticated GitHub session (`gh auth login`\n\n).\n\n```\ncargo install --git https://github.com/andyhmltn/reviewer\n```\n\nCritter uses `nvim`\n\nto open files by default. Set `$EDITOR`\n\nto use something else.\n\n```\n# Pick a PR from the current repository\nreviewer\n\n# Open a PR directly\nreviewer 447\n\n# Review a repository without cloning it\nreviewer -R owner/repo 447\n```\n\nComments stay local until you submit. Press `P`\n\nto approve, request changes, or leave a comment.\n\nRun Critter from the agent's tmux session and wait for the submitted feedback:\n\n```\n# Review the current branch's PR, including uncommitted work\nreviewer pr-tmux --wait\n\n# Review the local working tree before a PR exists\nreviewer local-tmux --wait\n```\n\nThe command prints your review as a ready-to-use prompt, so the agent can apply the comments and run the loop again. Nothing is posted to GitHub.\n\nTo narrow a local review:\n\n```\nreviewer pr-tmux --wait --unstaged\nreviewer pr-tmux --wait --last-commit\nreviewer local-tmux --wait --base main\n```\n\nThe bundled Codex plugin exposes the same flow as `$local-review`\n\n.\n\nTo start a review without spending a Codex turn on the plugin, add a tmux binding that opens Critter in its own window. The binding captures the originating pane before opening the review so Critter knows which Codex chat should receive the result. When you submit, the review window closes and the complete feedback is pasted into that chat and sent. Quitting without submitting leaves the Codex chat untouched.\n\n```\n# Review unstaged tracked changes with prefix + h.\nbind-key h set-environment -gF REVIEWER_CODEX_PANE '#{pane_id}' \\; \\\n  new-window -n reviewer -c '#{pane_current_path}' \\\n  '~/.cargo/bin/reviewer codex-tmux --target-pane \"$REVIEWER_CODEX_PANE\" --unstaged-or-pr'\n```\n\n`--unstaged-or-pr`\n\nreviews unstaged tracked changes when there are any and falls\nback to the current branch pull request when the working tree is clean. Use\n`reviewer codex-tmux --last-commit`\n\nfor the last commit, or omit the scope flag\nto always review the current branch pull request.\n\n| Key | Action |\n|---|---|\n`j` / `k` |\nMove between files, change blocks, or lines |\n`h` / `l` |\nPrevious / next file |\n`Enter` |\nOpen or comment |\n`Alt+Enter` |\nInsert a newline in a comment |\n`V` |\nSelect individual lines |\n`/` |\nSearch changed lines |\n`n` / `N` |\nNext / previous search result |\n`v` |\nMark file viewed |\n`o` |\nOpen the current line in `$EDITOR` |\n`c` |\nView pending comments |\n`P` |\nSubmit or hand off the review |\n`b` |\nOpen review intelligence |\n`<Space>l` |\nToggle the file sidebar |\n`:` |\nOpen the command palette |\n`Esc` |\nGo back |\n`q` |\nQuit |\n\nCritter can also run a deeper background review through `pi`\n\n:\n\n```\nreviewer peer-review -R owner/repo 42\nreviewer peer-review-status -R owner/repo 42\n```\n\nIt never starts an AI review automatically. Results are cached locally and appear inside the TUI.\n\nRun `reviewer --help`\n\nfor every command and `reviewer --version`\n\nfor the installed version.\n\nAdd Critter as a [ gh-dash](https://github.com/dlvhdr/gh-dash) keybinding:\n\n```\n- key: R\n  name: review\n  command: reviewer {{.PrNumber}}\n```\n\n", "url": "https://wpnews.pro/news/show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes", "canonical_source": "https://github.com/andyhmltn/critter", "published_at": "2026-08-27 03:38:19+00:00", "updated_at": "2026-08-27 04:19:34.026149+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents"], "entities": ["Andy Hamilton", "Critter", "GitHub", "Rust", "GitHub CLI", "nvim", "Codex", "tmux"], "alternates": {"html": "https://wpnews.pro/news/show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes", "markdown": "https://wpnews.pro/news/show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes.md", "text": "https://wpnews.pro/news/show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes.txt", "jsonld": "https://wpnews.pro/news/show-hn-critter-tui-for-reviewing-github-prs-and-agent-changes.jsonld"}}