octorus:一个 Rust 构建的 TUI 工具,AI 自动审查并修复代码,同时你浏览 PR diffs
Source: Dev.to
概览
octorus 是一个基于 Rust 构建的终端 UI(TUI)工具,能够让你浏览 pull‑request 差异、留下行内评论,并运行名为 AI‑Rally 的自主 AI 审查‑修复循环。它是在切换到 Helix 编辑器后,用来替代 octo.nvim 而创建的。
主要特性
- 行内审查评论,支持语法高亮的差异视图。
- 审查评论和讨论评论分为独立的区域。
- AI‑Rally:两个 AI 代理(审查者 & 被审查者)轮流审查并修复代码,直至收敛或达到可配置的迭代上限。
- AI‑Rally 在后台执行,让你可以继续手动审查。
- 自动将 AI 生成的评论和提交推送到 PR。
- 可自定义提示词和行为。
安装
cargo install octorus
快速开始
初始化配置
octorus init
这将在 ~/.config/octorus/ 下创建配置文件和提示词 markdown 文件。
运行差异查看器
octorus --repo <owner/repo> --pr <pr-number>
将 <owner/repo> 和 <pr-number> 替换为相应的值。
使用方法
- 浏览差异 – 使用你喜欢的快捷键在 PR 差异视图中导航。
- 留下评论 – 按
c添加普通评论,s添加建议,a进行批准,或r请求更改(默认绑定,参见配置章节)。 - 查看所有评论 – 审查评论和讨论评论会显示在不同的区域,便于快速浏览。
AI‑Rally
- 按
A启动 AI‑Rally。 - 两个 AI 代理(审查者 & 被审查者)开始来回的审查/修复循环,最多运行
max_iterations次。 - 按
b将 rally 发送到后台,允许你继续手动审查。 - 当代理完成后,它们会自动发布评论并将提交推送到 PR。
你可以通过提示词和配置选项自定义 AI 的行为。
配置
运行 octorus init 会生成默认配置文件(~/.config/octorus/config.toml),默认内容如下:
editor = "vi" # 用于编写 PR 评论的编辑器(如 nvim、hx)
[diff]
theme = "base16-ocean.dark" # 差异查看器的语法高亮主题
[keybindings]
approve = "a"
request_changes = "r"
comment = "c"
suggestion = "s"
[ai]
reviewer = "claude" # 可选项:"claude" 或 "codex"(需本地安装)
reviewee = "claude"
max_iterations = 10
timeout_secs = 600
# 自定义提示词目录(默认:~/.config/octorus/prompts/)
# prompt_dir = "/custom/path/to/prompts"
自定义提示词
提示词文件存放在 ~/.config/octorus/prompts/:
~/.config/octorus/prompts/
├── reviewer.md # 审查者代理的提示词
├── reviewee.md # 被审查者代理的提示词
└── rereview.md # 重新审查迭代的提示词
Claude 和 Codex 都以无头模式启动,因此相应的 CLI 工具必须已在你的机器上安装。作者使用 Codex 作为审查者,Claude Code 作为被审查者。
背景与灵感
这个想法来源于在社交平台上看到 AI 代理之间的对话,并希望将这种动态应用到代码审查中。构建一个 TUI 差异查看器为实验自主审查循环提供了理想的环境。
延伸阅读
octorus差异渲染的详细性能分析:
如果你觉得 octorus 有用,请考虑给 GitHub 仓库加星。祝审查愉快!