A TUI application for managing GitHub Pull Requests.
Quickly triage review requests and authored PRs across multiple repositories without leaving the terminal.
- 4 sections for focused PR triage
- PRs grouped by repository for easy scanning
- Sort by newest or oldest
- Repository filtering
- Auto-polling for live updates
- Vim keybindings + arrow key support
new (1) stale (2) [all (4)] authored (3)
org/repo-a
> ✓ Fix cache invalidation 2h user-a
✗ Refactor auth flow 1d user-b
org/repo-b
✓ Improve loading state 5h user-c
◌ Add error boundary 3d user-a
──────────────────────────────────────────────────────────────────────────────────
j/k move h/l section g/G top/end ... Sort: newest first Updated 13:24
| Section | Description |
|---|---|
| new | Review requests with no reviews yet and updated within the last 48 hours |
| stale | Review requests that have not been updated for more than 48 hours |
| all | All PRs where your review is requested (includes both new and stale) |
| authored | All open PRs you created |
- GitHub CLI (
gh) installed and authenticated
gh auth logincurl -fsSL https://raw.githubusercontent.com/wattanx/prow/main/install.sh | bashBy default, the binary is installed to ~/.local/bin. You can change the install directory with PROW_INSTALL_DIR:
PROW_INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/wattanx/prow/main/install.sh | bashprow upgradeprow # Open the TUI
prow upgrade # Update to latest version
prow --help # Show help
prow --version # Show version| Key | Action |
|---|---|
j / ↓ |
Move cursor down |
k / ↑ |
Move cursor up |
g |
Jump to first item |
G |
Jump to last item |
h / Shift+Tab |
Previous section |
l / Tab |
Next section |
Enter |
Open PR in browser |
s |
Toggle sort (newest / oldest) |
f |
Open repository filter |
r |
Refresh data |
q |
Quit |
| Key | Action |
|---|---|
j / ↓ |
Move cursor down |
k / ↑ |
Move cursor up |
Space |
Toggle repository selection |
Enter |
Apply filter |
Esc |
Cancel |
Configuration is stored at ~/.config/prow/config.json (auto-created on first launch).
{
"pollInterval": 60,
"defaultSection": "all"
}| Key | Description | Default |
|---|---|---|
pollInterval |
Auto-refresh interval in seconds | 60 |
defaultSection |
Initial section (new / stale / all / authored) |
"all" |
- Ratatui - Rust TUI framework
- Crossterm - Terminal backend
- Tokio - Async runtime
- Clap - CLI argument parser
- GitHub CLI - GitHub API via
gh api graphql
The original TypeScript/Ink implementation is preserved under
legacy/for reference.
MIT