tuicr
一句话简介
一个基于 Rust 开发的 Git 交互式提交工具,支持在命令行中高效管理和编辑提交记录。
标签
适用应用场景
- 交互式修改 Git 提交信息
- 清理和重写本地提交历史
- 代码审查后批量修正提交
- 辅助团队规范化提交规范
README 中文摘要
tuicr:面向终端的代码审查工具
tuicr 是一款终端代码审查 TUI,提供 Vim 风格按键绑定,并支持将审查结果导出至 GitHub、GitLab、Bitbucket 或剪贴板,兼容 git、jj 与 Mercurial 仓库。
核心功能
- 连续 diff 浏览:类 GitHub 风格的统一流式 diff,可滚动查看所有改动文件
- 多粒度注释:支持行级、范围、文件级、审查整体四种注释
- 审查状态持久化:按文件或 hunk 粒度记录审查进度,跨会话保留
- 三种导出目标:推送真实 review 至 GitHub/GitLab/Bitbucket;复制结构化 Markdown 到剪贴板;或输出至 stdout
- 多 VCS 兼容:支持 git、jj、Mercurial,可审查未提交变更、commit 区间或任意远程 PR/MR
安装与更新
推荐使用一键脚本或 Homebrew:
curl -fsSL tuicr.dev/install.sh | sh
# 或
brew install tuicr
其他安装方式包括 cargo install tuicr、mise use github:agavra/tuicr、nix run github:agavra/tuicr,也可从 GitHub Releases 下载预编译二进制或源码编译。更新命令 tuicr update 会根据当前可执行文件的来源(Homebrew/Cargo/Mise/Nix 或安装脚本/二进制)自动选择升级方式,并执行 SHA-256 校验。
快速上手
tuicr # 从 commit 选择器开始
tuicr -w # 审查未提交变更
tuicr -r main..HEAD # 审查 commit 区间
tuicr pr 125 # 审查 GitHub PR
tuicr mr 125 # 审查 GitLab MR
tuicr --stdout # 将 review 输出至 stdout
进入 TUI 后使用 j/k 导航,按 c 添加注释,y 复制或 :submit 推送至远端。再次打开已审查的 PR 时,会预选上次提交之后的新 commit,已覆盖的 commit 会以 ✓ 标记。
审查导出
- GitHub:
:submit选择 Comment/Approve/Request changes/Draft,行内注释落至对应行;需要gh已认证 - GitLab:
:submit支持 Comment/Approve/Request changes(需被指派为 reviewer),需要glab已认证 - Bitbucket Cloud:
:submit支持 Comment/Approve,行内注释支持多行范围;需要bkt认证至bitbucket.org,暂不支持 Request changes 与 Data Center - 复制至剪贴板:
y或:clip复制带编号与文件/行锚点的结构化 Markdown,便于粘贴给 Claude、Codex、Cursor 等编码代理 - 输出至 stdout:
tuicr --stdout > review.md
会话管理与库 API
tuicr review 子命令可在不打开 TUI 的情况下列出已保存的会话、添加注释、输出结构化内容,便于脚本与代理集成。Rust 库 API 通过 ReviewStore 暴露会话列表、加载与统一注释插入接口:
use tuicr::{AddCommentRequest, CommentTarget, CommentType, LineSide, ReviewStore};
let store = ReviewStore::new();
let sessions = store.list_sessions_for_repo("/path/to/repo")?;
let session = &sessions[0].session_ref;
store.add_comment(
session,
AddCommentRequest {
target: CommentTarget::Line {
path: "src/main.rs".into(),
line: 42,
side: LineSide::New,
},
content: "Handle the empty case here.".into(),
comment_type: CommentType::from_id("issue"),
},
)?;
配置
配置文件位于 ~/.config/tuicr/config.toml(Windows 为 %APPDATA%\tuicr\config.toml)。可配置主题、diff 视图、忽略空白、外观、鼠标、leader 键、注释编辑器 Vim 模式、相对行号、审查轮询间隔等;自定义评论类型可通过 [[comment_types]] 声明。
内置主题包括 dark、light、ayu-light、ayu-mirrora、onedark、github-light/dark、catppuccin-*、everforest-*、gruvbox-*、nord-*、solarized-*、tokyo-night-*。本地主题可放置于 themes/ 目录下,并支持引用本地 .tmTheme 语法高亮文件。
关键按键
| 按键 | 动作 |
|---|---|
j / k |
下/上移动 |
Ctrl-d / Ctrl-u |
半页下/上 |
g / G |
跳至顶部/底部 |
{ / } |
上/下一个文件 |
[ / ] |
上/下一个 hunk |
m / M |
下/上一个注释 |
/ |
在 diff、文件树或帮助中搜索 |
c / C |
添加行/文件注释 |
v / V |
Visual 模式(范围注释) |
r / R |
切换文件/hunk 已审查 |
e |
用 $EDITOR 打开当前文件 |
y |
复制 review 至剪贴板 |
:submit |
推送至远端平台 |
完整按键说明见 docs/KEYBINDINGS.md。项目以 MIT 协议开源。
摘要更新于 2026-08-07 00:33:54
· 原文 10867 字符
· md5 781dd1345fa6…