A TUI for GitHub pull requests.
- Dashboard - Auto-discovers repos, lists PRs across My PRs, Needs Review, Involving, and Recent tabs with a live preview pane.
- Jump to repo/PR -
Ctrl+Pto fuzzy-find and jump to any PR. - PR detail - Browse description, diff, comments, and commits. Sidebar for files and CI checks.
- Diff navigation - Line-by-line cursor,
gg/G,Ctrl+d/Ctrl+u, visual mode for selecting ranges. - Inline reviews - Draft inline comments on diff lines, edit, discard, and batch-submit with a review event. Just like Github web UI.
- Comments & approvals - Post top-level comments, review comments, or approve directly.
- PR actions - Edit title/body, merge (with method selection), close/reopen, and checkout the branch locally.
- Commit view - Inspect individual commits and their diffs.
- Search -
/to search within diffs and descriptions;n/Nto jump between matches.
go install github.com/utkarsh261/pho/cmd/pho@latest
Binary lands in $(go env GOPATH)/bin/pho.
Or pin a specific version:
go install github.com/utkarsh261/pho/cmd/pho@v0.1.0
Add it to the $PATH:
echo 'export PATH="$(go env GOPATH)/bin:$PATH"' >> ~/.zshrc
Right now, pho looks at only the cwd and its direct children directories (if they are actually git repos). So if you have some repositories cloned in a directory, you can either open pho in that directory or:
$(go env GOPATH)/bin/pho ~/path/to/dir/containing/all/cloned/repositories
or simply start it in the current directory
pho
- Go 1.25+
- Git
- GitHub CLI (
gh) — rungh auth loginto authenticate
go build -o pho ./cmd/pho
With just:
just build
./pho
Flags:
| Flag | Description |
|---|---|
--version |
Print version and exit |
--debug |
Enable debug logging |
--reset |
Clear all caches and exit |
--config <path> |
Path to config file |
--root <dir> |
Root directory to scan for git repos (default .) |
go test ./...
With just:
just test
go vet ./...
With just:
just vet
tail -f ~/.local/state/pho/debug.log
So that i can build it exactly how i want a tool which i use on a regular basis to be.