AI コーディングエージェント(Claude Code / Codex / Cursor など)が生成する差分をレビューする機会が急増しています。エージェントが数分で 500 行の変更を出す状況では、行単位のインラインコメント、複数ファイルの俯瞰、レビュー進捗の管理が想像以上に煩雑になります。
とくに Vim ユーザーやターミナル完結を好むエンジニアにとって、GitHub や GitLab の Web レビュー UI に戻る「文脈スイッチ」は無視できないコストです。git diff を眺めるだけではインラインコメントが残せず、Web UI に切り替えるとキーバインドやスクロール感覚が変わってしまいます。
こうした課題に対して、ターミナル内で完結する新しいコードレビュー TUI として登場したのが agavra/tuicr です。GitHub 風の連続差分ビューを Vim キーバインドで操作でき、書いたコメントは GitHub / GitLab / Bitbucket / Azure DevOps に「リアルレビュー」としてインライン投稿できます。単一の Rust バイナリで動作し、AI エージェント向けに Markdown 形式でエクスポートする機能も備えています。
本記事では、tuicr の仕組み・導入手順・4 フォージへの投稿フロー・AI エージェント連携ワークフロー・類似 OSS(hunk / lumen / gh pr review)との違いを解説します。基本情報は公式サイト tuicr.dev と GitHub リポジトリ agavra/tuicr を起点にまとめており、本文中の記述はすべて README・公式ドキュメント・公開情報に基づくドキュメントベースの解説です。動作検証やインストール後の使用感は扱いません。
なお、本記事執筆時点(2026 年 8 月 14 日時点)で、対象リポジトリの GitHub 属性は archived=false / fork=false / disabled=false であり、アーカイブ済み・フォーク版・無効化リポジトリのいずれでもない、アクティブに開発中のオリジナルプロジェクトです(出典: gh api /repos/agavra/tuicr)。
tuicr とは|ターミナルで完結する Vim 派向けコードレビュー TUI
tuicr(発音は「tweaker」)は、Vim キーバインドで操作するコードレビュー用の TUI(テキストユーザーインタフェース)です。README のサブタイトルには次のように記載されています。
A code review TUI with vim keybindings. Export to GitHub, GitLab, Bitbucket, or clipboard.
(出典: agavra/tuicr README)
公式サイト tuicr.dev のタグラインは「Code review in your terminal.」で、Web UI に戻らずにコードレビューを完結させることを目的として設計されています。
基本情報
現時点でのリポジトリの基本情報は次の通りです。
項目 | 値 |
|---|---|
owner / name | agavra / tuicr |
説明 | a code review TUI with vim keybindings |
主要言語 | Rust |
ライセンス | MIT |
Stars | 2,714 |
Forks | 206 |
最終 push | 2026-08-13 |
公開状態 | public(archived=false / fork=false / disabled=false) |
(出典: gh api /repos/agavra/tuicr、2026 年 8 月 14 日取得。リポジトリは agavra/tuicr)
Rust 製の単一バイナリとして配布されており、Node.js や JVM などのランタイムに依存しません。ライセンスは MIT のため、企業内利用・改変・再配布の自由度が高いのも実務上の利点です。
名前の由来と開発体制
tuicr の発音は README の TIP ブロックで「tweaker」と明記されています。TUI(テキストユーザーインタフェース)と Reviewer の合成語が語源と読み取れる命名です。
開発体制は CONTRIBUTING.md の記載を参照すると、@agavra(chair)と @YPares / @martintrojer が committer として関与しています。スポンサー欄には AI コードレビューサービスを提供する CodeRabbit が名前を連ねており、AI コードレビュー領域からの後押しを受けたプロジェクトである点も特徴です。
tuicr の 5 つの中核機能
README の「What it does」セクションには 5 つの中核機能が挙げられています。ここでは単なる翻訳ではなく、AI コーディング時代のレビュー体験にどう効くかという観点で整理します。
GitHub 風の連続差分ビュー
tuicr は、変更ファイル全体を 1 本のスクロールで確認できる連続差分ビューを提供します。GitHub の PR 画面と近い視覚モデルで、ファイル境界をまたぐレビューを Vim のスクロール操作のまま行えます。
AI エージェントが生成する差分は、複数ファイルに跨る変更や、命名の変更が全体に波及するリファクタリングを含むことが多いため、ファイル単位ではなく PR 全体をスクロールで俯瞰できるビューは実務上の価値が大きい機能です。
4 粒度のコメント(line / range / file / review)
tuicr では、以下 4 種類の粒度でコメントを付けられます。
- 行単位(1 行に対するインラインコメント)
- 範囲単位(複数行の範囲を選択して付与)
- ファイル単位(ファイル全体に対するコメント)
- レビュー全体(PR / MR 単位の総評)
Web UI で当然にできることをターミナルで再現している点が重要で、レビューの精度を落とさずにコンテキストスイッチだけを削減できます。
レビュー進捗の永続化
ファイル単位・ハンク単位で「レビュー済み」状態を保存し、セッションを跨いで再開できます。中断可能な設計は、レビュー対象が大きいときや複数の PR を並行してレビューするときに有効です。
5 通りのエクスポート先
tuicr で書いたレビューは、以下 5 通りに送り出せます。
- GitHub にリアルレビューとして投稿
- GitLab にリアルレビューとして投稿
- Bitbucket にリアルレビューとして投稿
- クリップボードへの構造化 Markdown 出力
- 標準出力(stdout)へのパイプ
Web UI と併用したい場合にもデータが分断されず、AI エージェントに渡す・別ツールに流し込む・チームチャットに貼るといった多様な受け渡しが可能です。詳細は README の Export your review 節 を参照してください。
git / jj / mercurial の自動対応
tuicr はバージョン管理システム(VCS)として Git、Jujutsu(jj)、Mercurial の 3 種に自動対応します。Mercurial 対応は同系統の TUI レビューツールでは珍しく、社内でエンタープライズ VCS を使うチームや、jj で新しいワークフローを試しているチームにも刺さる設計です。
導入手順とクイックスタート
インストール方法の 5 系統
インストール方法は README に 5 系統が列挙されています。以下は README からの抜粋です。
curl -fsSL tuicr.dev/install.sh | sh
brew install tuicr
cargo install tuicr
mise use github:agavra/tuicr
nix run github:agavra/tuicr
(出典: agavra/tuicr README)
加えて、GitHub Releases 経由でビルド済みバイナリを直接ダウンロードする経路も用意されています。パッケージマネージャの制約が厳しい環境でも導入経路を選びやすい構成です。
最初のコマンド
README のクイックスタートで示されている代表的なコマンドは次の通りです。
tuicr # コミット選択 UI から入る
tuicr -w # 未コミットの差分をレビュー
tuicr -r main..HEAD # コミット範囲を指定
tuicr pr 125 # GitHub / Bitbucket の PR
tuicr mr 125 # GitLab の MR
tuicr --stdout # レビューを stdout に流す
tuicr review list # ローカルに保存されたレビューを一覧
tuicr update # 実行中インストールを更新
(出典: agavra/tuicr README)
引数なしで tuicr を叩けば直近のコミット選択 UI が立ち上がり、-w で未コミット差分、-r でコミット範囲、pr / mr サブコマンドでフォージ上の PR / MR を対象にレビューが始まります。
tuicr update によるバージョン管理
tuicr update は現在のインストール手段(Homebrew / Cargo / Mise / Nix プロファイル / install スクリプト / 手動 DL バイナリ)を自動判別してその場で更新するコマンドです。SHA-256 検証も伴うため、手動でリリースページを追わずとも安全に更新を回せます。バージョン指定(例: tuicr update 0.18.0)にも対応します。
Vim キーバインドと操作モデル
tuicr の設計思想の中心は「完全な Vim モデル」の採用です。単に j / k で行移動できるだけでなく、ビジュアルモード、半ページ送り、ファイル間・ハンク間ジャンプ、リーダーキーまで含めて Vim ユーザーの手癖をそのまま持ち込めます。
README に挙げられている主要キーバインドを整理すると次のようになります。
キー | 動作 |
|---|---|
| 上下移動 |
| 半ページ送り |
| 先頭 / 末尾 |
| 前 / 次ファイル |
| 前 / 次ハンク |
| 行コメント / ファイルコメント |
| ビジュアルモード(範囲コメント) |
| ファイル / ハンクのレビュー済みトグル |
| クリップボードへコピー |
| GitHub / GitLab / Bitbucket に投稿 |
| フルヘルプ表示 |
(出典: agavra/tuicr README)
リーダーキーは既定で ; に設定されており、config.toml で変更できます。加えて comment_vim = true にすることで、コメント編集ボックス自体を Vim モードで操作できます。Vim の hjkl / w / b / d などが編集ボックス内でも生きるため、レビュー本文の記述もキーボードから手を離さずに済みます。
キーバインドの完全な一覧は公式リポジトリの docs/KEYBINDINGS.md に整理されています。
4 フォージへのインライン投稿フロー
tuicr の差別化ポイントの中心は、TUI で書いたコメントを 4 種類のフォージにインラインで投稿できる点です。それぞれの対応状況と必要な認証を整理します。
フォージ | 対応アクション | 必要認証 | 備考 |
|---|---|---|---|
GitHub | Comment / Approve / Request changes / Draft |
| フル対応 |
GitLab(self-hosted 含む) | Comment / Approve / Request changes |
| Draft は GitHub 限定 |
Bitbucket Cloud | Comment / Approve |
| Request changes / Draft 未対応、Bitbucket Data Center は対象外 |
Azure DevOps | Comment / Approve / Request changes |
| MVP 段階、ローカルクローン必須 |
(出典: agavra/tuicr README および docs/GITLAB.md / docs/BITBUCKET.md / docs/AZURE.md)
GitHub
gh CLI が認証済みであれば、tuicr pr 125 のように PR 番号を指定するだけで対象 PR を取り込めます。投稿時のアクションとして Comment / Approve / Request changes / Draft の 4 種類がすべて選択でき、tuicr のフォージ対応の中では最も成熟しています。
GitLab
glab CLI が認証済みであれば、self-hosted 環境を含めて MR に対して Comment / Approve / Request changes を投稿できます。Draft レビュー投稿は GitHub 限定である点が現状の制約です。セルフホスト GitLab を運用するチームでの導入検討時は、docs/GITLAB.md の設定手順を確認しておくと良いでしょう。
Bitbucket Cloud
Bitbucket 対応は Cloud 版のみが対象で、Bitbucket Data Center は現時点では対応外である点に注意が必要です。投稿可能なアクションは Comment / Approve の 2 種類で、Request changes と Draft は未対応です。認証には bkt CLI を利用します。詳細は docs/BITBUCKET.md を参照してください。
Azure DevOps
Azure DevOps 対応は README で「MVP」と明記されています。統一的な diff API が存在しないため、対象リポジトリをローカルにクローンした上で git diff base...head によりローカルで差分を組み立てる方式が採られています。認証は AZURE_DEVOPS_EXT_PAT 環境変数か az login に対応します。
AI コーディングエージェントとの連携ワークフロー
ここまでの機能はいずれも人間が直接レビューする用途に効きますが、tuicr は AI コーディングエージェントに「レビュー内容を渡し戻す」ワークフローも重視しています。本セクションは、既存の類似 TUI との差別化がとくに大きい部分です。
クリップボード経由のフィードバックループ
y キーまたは :clip コマンドで、書いたコメントを構造化 Markdown としてクリップボードにコピーできます。想定される出力形式は README で次のように例示されています。
I reviewed your code and have the following comments. Please address them.
1. `src/auth.rs` - Consider adding unit tests
2. `src/auth.rs:42` - Magic number should be a named constant
3. `src/auth.rs:50-55` - This block could be refactored
(出典: agavra/tuicr README)
このまま Claude Code / Codex / Cursor などのチャット欄に貼り付ければ、エージェント側は「どのファイルの何行目に、どんな修正が必要か」を機械可読な形で受け取れます。人間のレビュー結果をエージェントに戻す「フィードバックループ」を、Web UI に戻ることなく Vim キーバインドのみで完結させられる設計です。
ペイン分割環境での並走レビュー
tuicr は公式スキル定義として skills/tuicr/SKILL.md を持ち、cmux / tmux / Zellij / Herdr の各ペイン分割環境で AI エージェントと tuicr を並走操作するワークフローを想定しています。ペイン分割環境は環境変数($CMUX_WORKSPACE_ID / $TMUX / $ZELLIJ / $HERDR_ENV)から検出され、cmux が優先される仕様です。
SKILL.md ではエージェントの動作モードとして次の 2 種類が定義されています。
- ユーザー主導レビュー: 人間がレビューを主導し、エージェントは基本的にコメント追加を控える
- エージェントレビュー:
tuicr review add --username <エージェント名>を用い、エージェントが自身の名義で明示的にコメントを追加する
これにより、レビューコメントの著者を「人間」と「エージェント」で明確に区別しつつ、同じセッションに情報を集約できます。詳細は skills/tuicr/SKILL.md を参照してください。
tuicr review サブコマンドとライブラリ API
tuicr は TUI 本体とは別に、tuicr review サブコマンド群(list / add など)を CLI として提供しています。保存済みレビューの一覧表示や、外部からのコメント追加を CLI からスクリプトで扱えます。
さらに Rust の ReviewStore API が公開されており、AddCommentRequest を通じて他ツールから tuicr の保存セッションにコメントを追加できます。エディタ統合や CI パイプラインからの自動コメント投入といった発展的な自動化にも道が開かれた設計です。
類似 OSS(hunk / lumen / gh pr review)との比較
初見エンジニアにとって最も知りたいのは、既存の類似ツールとの違いです。README の「How it compares」表を再掲し、tuicr 独自のポジションを整理します。
機能 | tuicr | hunk | lumen |
|
|
|---|---|---|---|---|---|
TUI 差分ビューア | ✅ | ✅ | ✅ | ❌ | ❌ |
TUI 内でのコメント記述 | ✅ | ✅ | ✅ | ❌ | ❌ |
Vim キーバインド(完全) | ✅ | ❌ | 部分(j/k のみ) | ❌ | ❌ |
GitHub へのインライン投稿 | ✅ | ❌ | ❌ | 部分(レビュー粒度のみ) | ❌ |
GitLab / Bitbucket インライン投稿 | ✅ | ❌ | ❌ | ❌ | ❌ |
エージェント向け Markdown 出力 | ✅ | CLI skill 経由 | ❌ | ❌ | ❌ |
git 対応 | ✅ | ✅ | ✅ | ❌ | ✅ |
jj 対応 | ✅ | ✅ | ✅ | ❌ | ❌ |
Mercurial 対応 | ✅ | ❌ | ❌ | ❌ | ❌ |
単一静的バイナリ | ✅ | ❌ | ✅ | ✅ | ✅ |
(出典: agavra/tuicr README)
hunk との位置付けの違い
hunk(modem-dev/hunk)は「Review-first terminal diff viewer for agentic coders」を掲げる TUI です。エージェント向けの差分ビュー体験に軸を置いており、OpenTUI ベースで実装されているため Node ランタイムを必要とします。また Mercurial には対応しません。
tuicr との最大の違いは、hunk が「エージェントに渡すための差分ビュー」を中心に据えているのに対し、tuicr は「TUI で書いたコメントを実際のフォージ(GitHub / GitLab / Bitbucket / Azure DevOps)にインライン投稿する」ところまでを担っている点です。Claude 公式スキルとしても配布されている hunk と、フォージ投稿までを守備範囲とする tuicr は、同じ TUI レビュー領域でも棲み分けができる関係です。
lumen との位置付けの違い
lumen(jnsahaj/lumen)は「Beautiful git diff viewer, generate commits with AI」を掲げる Rust 製の単一バイナリツールです。ランタイム依存がない点は tuicr と共通しますが、AI による差分要約とコミットメッセージ生成が主眼で、レビューコメントを PR に投稿する機能はありません。Vim キーバインドも j / k の部分対応にとどまり、ビジュアルモードや半ページ送りといった完全な Vim モデルは持ちません。
tuicr は「レビュー投稿までを担う TUI」、lumen は「AI 補助(コミット生成・要約)を主眼にした差分ビューア」と整理でき、目的が明確に異なります。
gh pr review / git diff との違い
gh pr review は GitHub 公式 CLI のサブコマンドで、レビュー全体(Comment / Approve / Request changes)を投稿できますが、行単位のインラインコメントは付けられません。git diff は差分表示に留まり、コメントの記録・投稿機能を持ちません。tuicr はこれら「投稿粒度」「コメント記録」の両方をカバーする役割を担います。
tuicr の独自ポジション
比較表から抽出される tuicr の独自性は次の 3 点にまとめられます。
- GitHub / GitLab / Bitbucket / Azure DevOps の 4 フォージにインライン投稿できる唯一の TUI ツールである
- 完全な Vim キーバインド(ビジュアルモード /
{N}G/Ctrl-d/Ctrl-u等)を採用している - 単一静的バイナリで動作しつつ、Mercurial にも対応し、AI エージェント連携が公式スキルとして体系化されている
設定・カスタマイズ
tuicr の設定ファイルは Linux / macOS では ~/.config/tuicr/config.toml、Windows では %APPDATA%\tuicr\config.toml に配置します。主な設定オプションは以下の通りです。
theme = "catppuccin-mocha"
diff_view = "side-by-side" # or "unified"
ignore_whitespace = false
appearance = "system" # or "dark" / "light"
mouse = true
leader = ";"
comment_vim = false
relative_line_numbers = false
[[comment_types]]
id = "issue"
color = "red"
definition = "must fix before merge"
(出典: agavra/tuicr README)
差分表示と操作系
diff_view は side-by-side(並列表示)と unified(統合表示)を切り替えられます。ignore_whitespace を有効にするとホワイトスペース差分を無視でき、フォーマッター起因のノイズを抑えられます。mouse の有効化・relative_line_numbers(相対行番号)の切り替えなど、Vim ユーザーが期待する項目が一通り揃っています。
テーマ
バンドル済みテーマは README 記載によれば 22 種類が用意されており、catppuccin / gruvbox / nord / tokyo-night / solarized 系など主要テーマを一通りカバーしています。TOML と .tmTheme シンタックスを組み合わせたローカルテーマも配置可能で、社内標準のテーマを持ち込むこともできます。
comment_types によるコメント種別のラベル化
[[comment_types]] テーブルにより、コメントに「issue」「suggestion」「question」などの種別を持たせられます。上記の例では must fix before merge を意味する issue を赤色でラベル化しており、レビュー粒度を型として揃えられる仕組みです。チームでレビュー運用を標準化したい場合に有効です。
導入前に押さえたい制限と現状の対応範囲
導入判断の前に押さえておくべき制限を整理します。
- Bitbucket は Cloud 版のみ対応。Bitbucket Data Center は対象外
- Bitbucket では Request changes / Draft レビューが未対応
- Azure DevOps は MVP 段階で、対象リポジトリのローカルクローンが必須
- Draft レビュー投稿は GitHub のみ
- 開発は活発だがバージョン番号は成熟期に到達しておらず、
tuicr updateによるバージョン管理が前提
社内標準が Bitbucket Data Center の場合や、Draft レビューを他フォージで多用している場合は、現状の対応範囲を踏まえた検討が必要です。
どんな開発者・チームに向くか(導入判断チェックリスト)
ここまでの情報を踏まえ、tuicr が刺さるチームと、他ツールを検討した方が良いケースを整理します。
tuicr が刺さる 4 タイプ
- AI コーディングエージェントを日常的に使い、生成コードのレビュー量が増えているチーム
- Vim ユーザーが多く、Web UI に戻るコンテキストスイッチを削減したいチーム
- GitHub / GitLab / Bitbucket / Azure DevOps の複数フォージを跨いで運用しているチーム
- self-hosted GitLab や Mercurial / Jujutsu を採用しており、単一バイナリで動くレビュー支援ツールを求めているチーム
他ツールを検討した方が良いケース
- Web UI 上での議論(画像・スレッド・レビュアー割り当て)を重視するチーム
- Bitbucket Data Center を運用しており、社内標準を変えられないチーム
- レビュー支援を IDE 統合(VS Code 拡張・JetBrains プラグイン)で完結させたいチーム
- コミットメッセージや差分要約の AI 生成が主目的のチーム(この用途は lumen などが適している)
自チームがどちらに寄っているかを確認したうえで、まずは README の Quick start を眺め、docs/KEYBINDINGS.md と該当フォージのセットアップドキュメントに目を通す流れが最短の評価経路です。
次のアクション
導入を前提に一次情報を追う場合は、以下のリンクから確認するのが効率的です。
- 公式サイト: tuicr.dev
- リポジトリ本体: agavra/tuicr
- README: agavra/tuicr README
- キーバインド全リファレンス: docs/KEYBINDINGS.md
- AI エージェント連携スキル: skills/tuicr/SKILL.md
- フォージ別セットアップ: docs/GITLAB.md / docs/BITBUCKET.md
- コントリビュート方針: CONTRIBUTING.md
TUI 系のコードレビュー・AI コーディング系 OSS についてより広い視点で比較したい場合は、次の関連記事も参考になります。
- DeepSeek-TUIが選ばれる理由|Claude Code・Codex CLIとの選定軸
- ターミナルAIコーディングOSS「oh-my-pi」の仕組みと特徴
- GitHub Trending 週間ランキング(2026年第32週)
関連情報
AI コーディング時代のコード品質担保、受託開発におけるレビュー体制の設計などをご検討中の方は、お問い合わせフォーム からご相談ください。要件の整理段階からご相談いただけます。



