| Crates.io | octorus |
| lib.rs | octorus |
| version | 0.1.9 |
| created_at | 2026-01-21 01:26:47.79204+00 |
| updated_at | 2026-01-25 08:07:38.553873+00 |
| description | A TUI tool for GitHub PR review, designed for Helix editor users |
| homepage | |
| repository | https://github.com/ushironoko/octorus |
| max_upload_size | |
| id | 2057998 |
| size | 438,984 |
A TUI tool for GitHub PR review with Vim-style keybindings.
cargo install octorus
Or build from source:
git clone https://github.com/ushironoko/octorus.git
cd octorus
cargo build --release
cp target/release/or ~/.local/bin/
or --repo owner/repo --pr 123
| Option | Description |
|---|---|
-r, --repo <REPO> |
Repository name (e.g., "owner/repo") |
-p, --pr <PR> |
Pull request number |
--refresh |
Force refresh, ignore cache |
--cache-ttl <SECS> |
Cache TTL in seconds (default: 300) |
Create default config files and prompt templates:
or init # Create config files (skip if exists)
or init --force # Overwrite existing files
This creates:
~/.config/octorus/config.toml - Main configuration file~/.config/octorus/prompts/ - Prompt template directory
reviewer.md - Reviewer agent prompt templatereviewee.md - Reviewee agent prompt templaterereview.md - Re-review prompt template| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
Enter |
Open diff view |
a |
Approve PR |
r |
Request changes |
c |
Comment only |
C |
View review comments |
R |
Force refresh (discard cache) |
A |
Start AI Rally |
? |
Toggle help |
q |
Quit |
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
n |
Jump to next comment |
N |
Jump to previous comment |
Ctrl-d |
Page down |
Ctrl-u |
Page up |
c |
Add comment at line |
s |
Add suggestion at line |
q / Esc |
Back to file list |
Note: Lines with existing comments are marked with ●. When you select a commented line, the comment content is displayed in a panel below the diff.
| Key | Action |
|---|---|
j / ↓ |
Move down |
k / ↑ |
Move up |
Enter |
Jump to file/line |
q / Esc |
Back to file list |
Run or init to create default config files, or create ~/.config/octorus/config.toml manually:
# Editor to use for writing comments
editor = "vi"
[diff]
# Syntax highlighting theme for diff view
theme = "base16-ocean.dark"
[keybindings]
approve = 'a'
request_changes = 'r'
comment = 'c'
suggestion = 's'
[ai]
# AI agent to use for reviewer/reviewee
# Supported: "claude" (Claude Code), "codex" (OpenAI Codex CLI)
reviewer = "claude"
reviewee = "claude"
# Maximum iterations before stopping
max_iterations = 10
# Timeout per agent execution (seconds)
timeout_secs = 600
# Custom prompt directory (default: ~/.config/octorus/prompts/)
# prompt_dir = "/custom/path/to/prompts"
AI Rally uses customizable prompt templates. Run or init to generate default templates, then edit them as needed:
~/.config/octorus/prompts/
├── reviewer.md # Prompt for the reviewer agent
├── reviewee.md # Prompt for the reviewee agent
└── rereview.md # Prompt for re-review iterations
Templates support variable substitution with {{variable}} syntax:
| Variable | Description | Available In |
|---|---|---|
{{repo}} |
Repository name (e.g., "owner/repo") | All |
{{pr_number}} |
Pull request number | All |
{{pr_title}} |
Pull request title | All |
{{pr_body}} |
Pull request description | reviewer |
{{diff}} |
PR diff content | reviewer |
{{iteration}} |
Current iteration number | All |
{{review_summary}} |
Summary from reviewer | reviewee |
{{review_action}} |
Review action (Approve/RequestChanges/Comment) | reviewee |
{{review_comments}} |
List of review comments | reviewee |
{{blocking_issues}} |
List of blocking issues | reviewee |
{{external_comments}} |
Comments from external tools | reviewee |
{{changes_summary}} |
Summary of changes made | rereview |
{{updated_diff}} |
Updated diff after fixes | rereview |
AI Rally is an automated PR review and fix cycle that uses two AI agents:
┌─────────────────┐
│ Start Rally │ Press 'A' in File List View
└────────┬────────┘
▼
┌─────────────────┐
│ Reviewer │ AI reviews the diff
│ (Claude/Codex) │ → Posts comments to PR
└────────┬────────┘
│
┌────┴────┐
│ Approve?│
└────┬────┘
No │ Yes
│ └──→ Done ✓
▼
┌─────────────────┐
│ Reviewee │ AI fixes issues
│ (Claude/Codex) │ → Commits changes locally
└────────┬────────┘
│
▼
Next Iteration
--force, reset --hard) are prohibitedb to run rally in background while continuing to browse files| Key | Action |
|---|---|
j / ↓ |
Move down in log |
k / ↑ |
Move up in log |
Enter |
Show log detail |
g |
Jump to top |
G |
Jump to bottom |
b |
Run in background (return to file list) |
y |
Grant permission / Enter clarification |
n |
Deny permission / Skip clarification |
r |
Retry (on error) |
q / Esc |
Abort and exit rally |
MIT