A terminal UI for managing GitHub pull requests, built with OpenTUI, React 19, and Bun.
gituirequires the GitHub CLI (gh) to be installed and authenticated. Every GitHub call is a shell-out togh— ifgh pr listworks in your terminal,gituiworks. Open the in-app status panel with?to verify.
- GitHub CLI (
gh) — install via your package manager, then rungh auth login - A terminal with a true-color, UTF-8 capable shell
brew install thalesbruno/tap/gituinpm install -g @thalesbruno/gituiBinaries for each release live in GitHub Releases. Pick the one for your platform:
# macOS Apple Silicon
curl -L https://github.com/thalesbruno/gitui/releases/latest/download/gitui-darwin-arm64.tar.gz | tar xz
sudo mv gitui-darwin-arm64 /usr/local/bin/gitui
# Linux x64
curl -L https://github.com/thalesbruno/gitui/releases/latest/download/gitui-linux-x64.tar.gz | tar xz
sudo mv gitui-linux-x64 /usr/local/bin/gitui
# Linux arm64
curl -L https://github.com/thalesbruno/gitui/releases/latest/download/gitui-linux-arm64.tar.gz | tar xz
sudo mv gitui-linux-arm64 /usr/local/bin/gituiFirst run on macOS may be blocked by Gatekeeper. Either right-click the binary in Finder once and choose Open, or remove the quarantine flag:
xattr -d com.apple.quarantine /usr/local/bin/gitui.
For local development — requires Bun >= 1.1:
git clone git@github.com:thalesbruno/gitui.git
cd gitui
bun install
bun run build # produces ./gitui (a standalone binary)From inside any GitHub repository on your machine:
gituigitui reads the origin remote of the current working directory, so it operates on whichever repo you launch it from.
| Key | Action |
|---|---|
j / ↓ / scroll |
Move selection down |
k / ↑ / scroll |
Move selection up |
enter / click |
Open PR detail |
1 / 2 |
Open / Closed tabs |
← / → |
Previous / next page |
r |
Refresh |
q / Ctrl+C |
Quit |
| Key | Action |
|---|---|
esc / h / backspace |
Back to list |
1 / 2 / 3 / 4 |
Overview / Conversation / Commits / Files |
o |
Open PR in browser |
a |
Approve PR (two-step confirm) |
m |
Merge PR (two-step confirm) |
q / Ctrl+C |
Quit |
Closing a PR is a button-only action — same two-step confirm shape.
| Key | Action |
|---|---|
? |
Open status panel (gh install + auth, repo) |
Mouse: clickable affordances are present wherever a keyboard binding exists. Drag-selecting any text copies it to your system clipboard automatically (a Copied to clipboard ✓ toast confirms).
- Runtime: Bun
- UI: @opentui/core + @opentui/react
- Framework: React 19
- GitHub: shells out to the
ghCLI — no token plumbing - Language: TypeScript (strict)
