tuicr Skill:vim 键位做代码审查、可直接导出给 AI agent 的 TUI 工具
用终端做代码审查、用 vim 键位写评语、直接把结构化 Markdown 扔给 AI agent——这就是 tuicr 正在做的事。Rust 编写的 TUI 代码审查工具,今日冲上 GitHub Trending,338 颗星当天增长,总 star 突破 1,700,正被高频用于 GitHub PR / GitLab MR / 任意 commit 范围的审查场景。
功能与原则
tuicr 是一款终端代码审查 TUI 工具,核心原则是「让审查流程完全在终端里闭环」:
- 连续 diff 流:在一个终端流里滚动浏览所有变更文件
- 多级评语:支持行级、范围级、文件级、审查级评论
- 会话持久化:审查进度按文件/hunk 粒度保存,退出后再回来接着看
- 三端导出:推送真实 review 到 GitHub / GitLab,或复制结构化 Markdown,或管道到 stdout
- 多 VCS 支持:git、jj(magit-like)、mercurial 全部支持
- Agent Ready:内置 Claude Code Skill,review 结果可直接交给 AI agent 继续处理
认可度
- GitHub 星数:1,729 颗(截至 2026-07-30),当日新增约 338 颗
- GitHub Trending:今日冲入 Rust 语言分类 trending 前列
- 工具属性:面向开发者工具链,在 Reddit r/vim、r/programming 有讨论
- 定位稀缺性:现有 TUI diff 工具(hunk、git diff 等)均不支持结构化评语导出;tuicr 是少数能将审查结果直接喂给 AI 编程工具的方案
链接
GitHub:https://github.com/agavra/tuicr
原作者
@agavra(GitHub username: agavra)— 独立开发者,长期活跃于 GitHub 工具链开源社区,tuicr 是其代表性作品,crates.io 同期发布 Rust crate。
介绍
代码审查(Code Review)是团队协作中最容易成为瓶颈的环节。传统的浏览器 GitHub PR 界面需要频繁切换上下文,gh CLI 工具虽然快但缺少可视化的 diff 浏览体验,vimdiff 类工具又没有协作评语能力。tuicr 试图解决这个全流程断层。
它的使用逻辑非常直接:在终端里启动 tuicr,选择一个审查对象(未提交变更、commit 范围、GitHub PR 或 GitLab MR),TUI 界面会以类似 GitHub PR 页面的连续 diff 形式展示所有变更文件,开发者用 vim 键位(j/k 上下滚动,c 新建评语,y 复制到剪贴板,:submit 提交)完成审查,最终导出三种结果:真实推送到 GitHub/GitLab 评论、直接复制 Markdown 到剪贴板、或管道到 stdout 供其他工具消费。
tuicr 还内置了一个 Claude Code Skill(见 skills/tuicr/SKILL.md),专门为 AI agent 设计了 CLI 导出接口——开发者可以把审查结果通过管道直接交给 Claude Code,让 AI 根据评语自动处理后续修复。这种「人审 + AI 修」的分工流水线,是 tuicr 区别于其他 diff 工具的核心使用范式。
特点
- vim 键位全支持:j/k 导航、c 写评语、y 复制、:submit 提交,无需鼠标
- 跨平台:macOS / Linux / Windows 全支持,安装方式覆盖 brew / cargo / nix / 脚本 / 二进制
- 多 VCS 一体:git / jj / mercurial 自动识别,无需配置
- 会话持久化:审查状态跨 session 保存,PR 再次打开时自动定位到未审查位置(标记 ✓)
- AI Agent 原生集成:自带 Claude Code Skill,review 结果可直接管道给 AI 继续处理,支持 Rust Library API 供其他工具调用
- 评语结构化导出:每条评语带文件名+行号锚点,粘贴给 AI agent 时格式清晰可解析
使用方法
安装(任选其一):
# 脚本安装(推荐)
curl -fsSL tuicr.dev/install.sh | sh
# Homebrew
brew install agavra/tap/tuicr
# Cargo
cargo install tuicr
# Nix
nix run github:agavra/tuicr
基本调用:
tuicr # 交互式选择 commit / PR / MR
tuicr -w # 直接审查当前未提交变更
tuicr -r main..HEAD # 审查 commit 范围
tuicr pr 125 # 审查 GitHub PR #125
tuicr mr 125 # 审查 GitLab MR #125
tuicr --stdout | pbcopy # 导出审查结果到剪贴板
vim 键位速查:
| 操作 | 键 |
|---|---|
| 上/下滚动 | j / k |
| 新建评语 | c |
| 复制 Markdown | y |
| 提交到 GitHub/GitLab | :submit |
| 切换主题 | :theme |
使用场景与人群
适用场景:需要频繁做代码审查的开发者、团队内部推行「审查即文档」流程的技术 lead、想用 AI 工具接管 review 后续修复的 AI Coding 高阶用户。
目标用户:Terminal-first 开发者、vim/IDE 双修工程师、AI Coding 工具链玩家(Claude Code / Codex / Cursor 等)。
输入与输出案例
案例一:审查一个 GitHub PR
# 输入
tuicr pr 208
# TUI 输出
- 连续 diff 视图,每条变更文件按 GitHub 风格渲染
- 红色/绿色行内高亮
- 底部状态栏显示 PR 标题 + 文件数 + 已审查/未审查状态
# 完成后
:submit → 推送到 GitHub PR,行级评语直接挂到对应代码行
案例二:将审查结果交给 Claude Code
# 输入:审查当前未提交变更
tuicr -w
# 在 TUI 中对 src/auth.rs:42 添加评语 "Magic number should be a named constant"
# 完成后按 y 复制结构化 Markdown
# 复制到剪贴板的内容:
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
# 粘贴给 Claude Code,让 AI 自动修复
tuicr 的存在填补了「TUI diff 工具」到「结构化代码审查」之间的空白——不只是看 diff,而是真正完成了审查流程的可编程闭环。
GitHub: https://github.com/agavra/tuicr
评论区
登录后可评论。