Terminal UI for keeping up with your open GitHub pull requests and GitLab merge requests across repositories.
ghui gives you one keyboard-driven place to review PR/MR details, inspect diffs, leave diff comments, manage labels, toggle draft state, merge, open requests in the browser, and copy metadata without leaving the terminal.
npm install -g @kitlangton/ghuiRequirements:
- Bun runtime installed
- GitHub CLI installed and authenticated with
gh auth loginfor GitHub repositories - GitLab CLI installed and authenticated with
glab auth loginfor GitLab repositories
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_PROVIDER: optionalgithuborgitlaboverride; when unset, ghui detects fromGHUI_REPOURLs or the current git remoteGHUI_AUTHOR: author username, defaults to@meGHUI_REPO: optional repository queue for browsing all open requests in a repo; supports GitHubowner/nameand GitLab nested paths likegroup/subgroup/projectGHUI_GITLAB_HOST: optional GitLab hostname for self-managed GitLab API callsGHUI_PR_FETCH_LIMIT: max requests fetched, defaults to200
Example:
GHUI_AUTHOR=@me ghui
GHUI_REPO=basecamp/omarchy ghui
GHUI_PROVIDER=gitlab GHUI_REPO=gitlab-org/gitlab ghui
GHUI_REPO=https://gitlab.com/gitlab-org/gitlab 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 filesc: enter or exit diff comment mode while viewing a diffup/down/pageup/pagedown: move comment target while in diff comment modeenter: open a commented diff line, or start a comment on an uncommented linea: add a comment while in diff comment modeleft/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