Terminal UI for keeping up with your open GitHub pull requests across repositories.
ghui gives you one keyboard-driven place to review PR details, inspect diffs, leave diff comments, manage labels, toggle draft state, merge, cut releases, open PRs in GitHub, and copy PR metadata without leaving the terminal.
Homebrew is the recommended install path on macOS and Linux. It installs a standalone ghui binary, so you do not need Bun or npm at runtime.
brew install kitlangton/tap/ghuiUpgrade with:
brew upgrade ghuiOr install with npm:
npm install -g @kitlangton/ghuiThe npm package also installs a platform-specific binary package and does not require Bun.
Requirements:
- GitHub CLI installed and authenticated with
gh auth login
Run it from anywhere:
ghuiClone, install, and link:
git clone https://github.com/kitlangton/ghui.git
cd ghui
bun install
bun linkWith Nix flakes:
nix develop
bun install
bun run devGHUI_PR_FETCH_LIMIT: max PRs fetched, defaults to200
Example:
GHUI_PR_FETCH_LIMIT=100 ghuiYou can also copy .env.example to .env and edit the values locally.
up/down: move selectionk/j: move selectiongg/G: jump to first or last pull requestctrl-u/ctrl-d: page up or downtab/shift-tab: switch PR queuectrl-p/cmd-k: open the command palette/: filterenter: expand details; normal PR actions still work while details are expandedesc: return from expanded details, leave diff/comment mode, or close modalr: refreshd: view stacked diff for all changed filesshift-r: review or approve the selected pull requestup/down/pageup/pagedown: move comment target while viewing a diffenter: open a commented diff line, or start a comment on an uncommented linev: start or clear a multi-line diff comment rangen/p: jump between diff comment threadsf: open the changed-files navigator while viewing a diffleft/right: choose the deleted or added side while in split diff comment mode[/]: switch files while viewing or commenting on a diffs: toggle draft or ready-for-review statem: mergex: close with confirmationt: choose theme, includingSystemto match your terminal colorsl: manage labelso: open PR in browsery: copy PR metadataq: quit
Review submission:
- Press
shift-rto open the review modal. - Use
j/korup/downto choose Comment, Approve, or Request changes. - Press
enterto move to the optional summary area. - Press
enteragain to submit, orshift-enterto insert a newline. - Press
escfrom the summary to return to action selection; pressescfrom action selection to cancel.
Open the command palette and pick Releases… (or New release…) to manage releases for the active repository without leaving the terminal.
In the releases overlay:
j/k,gg/G: navigate releasesenter: view a release (body + assets)n: cut a new releasee: edit the selected releaseshift-d: delete the selected release (with confirmation)o: open in browsery: copy URL]/r: load more / refreshesc: back to list / close
In the release form:
tab/shift-tab: move between fields (tag, target, title, description, pre-release, latest)space/enter: toggle the focused checkbox or tri-statectrl-g: generate release notes (only fills empty title and body, matching github.com)ctrl-s: save as draftctrl-↵: publish (or save the edit when editing an existing release)esc: cancel and return to the releases overlay
Asset uploads are still done from the GitHub web UI for now — use o to jump to the draft release in the browser when you need to attach binaries.