📌 项目地址agavra/tuicr | ⭐ 1,781 颗星 | 🔧 Rust | 📜 未标注

项目地址:agavra/tuicr | ⭐ 1781 | Rust | 读作 “tweaker” | crates.io / tuicr.dev

先说清楚它干什么

tuicr 是一个带 vim 键位的 code review TUI。用 j/k 在终端里滚动看 diff,按 c 写评论,按 y 把 review 复制成 markdown,或者 :submit 直接推到 GitHub、GitLab、Bitbucket——推上去的是一个真实的 review,不是贴一段文字。

1781 星,Rust 写的,装在 crates.io 上。

连续 diff 流

GitHub 网页端按文件切分 diff,换文件要点一次。tuicr 把所有改动的文件拼成一条流,从头滚到尾。j/k 移动,不用来回切。

数据来源比想象中宽:

  • 版本控制支持 git、jj、mercurial 三种
  • 能审未提交的改动、commit 范围、任意 GitHub PR / GitLab MR / Bitbucket PR

对应到命令:

tuicr                  # 打开提交选择器
tuicr -w               # 审未提交的改动,跳过选择器
tuicr -r main..HEAD    # 审 commit 范围
tuicr pr 125           # GitHub PR,或 Bitbucket PR
tuicr mr 125           # GitLab MR

tuicr tui pr 125tuicr tui mr 125 是显式走 TUI 子命令的写法,效果一样。

四档评论粒度

评论可以打在四个层级:行、范围、文件、整个 review。行级评论抓具体问题,review 级写总结,各归各位。这个设计和 GitHub 网页端的评论模型对得上,所以 :submit 推上去之后平台那边显示是正常的 review 结构,不是一坨拼接文本。

导出有三条路:

  1. :submit 推送到 GitHub / GitLab / Bitbucket
  2. y 复制结构化 markdown 到剪贴板
  3. tuicr --stdout 输出到标准输出,可以接脚本

我觉得最值钱的功能:进度持久化

审查记录按文件或 hunk 粒度保存,跨会话持久化。审到一半被打断,回来重新打开,接着看,不用回忆刚才到哪了。

tuicr review list 列出本地所有保存的 review 会话。

还有个细节:重新打开一个你之前审过的 PR 时,如果平台提供这个元数据,tuicr 会自动选中比你上次提交的 review 更新的那些 commits。

对每天审代码的人来说,“中断后能恢复”比任何锦上添花的功能都实在。

更新机制做得比多数 TUI 工具认真

tuicr update            # 更新当前安装
tuicr update 0.18.0     # 安装指定版本

这个命令会先判断二进制归谁管:Homebrew、Cargo、Mise、Nix profile 装的,走对应管理器升级;安装脚本或手动下载的,从 GitHub Release 找匹配资产原地替换,替换前做 SHA-256 校验。

两个坑提前说:nix run 只是临时执行,想让 tuicr update 接管,用 nix profile install github:agavra/tuicr;指定版本安装只支持 Cargo 和直接下载二进制,Homebrew、Mise、Nix 要用各自的版本锁定机制。

一个 TUI 工具在更新路径上做了这么多适配,说明作者很清楚用户的安装环境五花八门。

安装

curl -fsSL tuicr.dev/install.sh | sh
# 或
brew install tuicr
# 或
sudo pacman -S tuicr

其他方式:

cargo install tuicr
mise use github:agavra/tuicr
nix run github:agavra/tuicr

GitHub Releases 有预编译二进制,Linux 提供动态链接 GNU 和静态 musl 两个变体。源码安装就是 clone 之后 cargo install --path .

值不值得装

连续 diff 流加进度持久化,这两点对高频审查者收益最大——一个省上下文切换,一个省记忆成本。vim 键位是基本盘,c 评论、y 复制、:submit 提交,键盘用户几分钟上手。

如果你一周审不到一个 PR,网页端够用,迁移动力不大。但如果 code review 是你每天的常规工作,这个工具值得装一个试试。

这篇文章对你有帮助吗?

发表回复