A terminal interface for browsing GitHub — repos, issues, pull requests, and notifications — built with Rust, Ratatui, and the gh CLI.
Run ghx to browse your repositories. Run it inside a git repo to jump straight to that repo’s issues.
Features
- Repository browser — browse your repos with fuzzy search/filter, configurable source (user, org, or starred)
- Repo detail screen — description, stars, language, license, topics, and a rendered README preview
- Issues & pull requests — tabbed view with sub-tab toggle between issues and PRs, plus fuzzy filtering via nucleo
- PR CI status — visual check indicators inline: ✓ pass, ✗ fail, ● pending
- Detail view — full issue/PR body rendered as markdown, with labels, metadata, and comment threads. Scrollable.
- Notifications — dedicated tab for GitHub notifications with mark-as-read support
- Context mode — detects the current repo via
ghand skips straight to its issues - Open in browser — press
oto open the current item on github.com - mdr integration — press
rto read issue/PR body in the full mdr markdown reader - Clone repo — press
cto clone the selected repo to~/repos - Configurable themes — 9 built-in TOML themes with an interactive picker (
t), plus user themes from~/.config/ghx/themes/ - Help overlay — press
?for a keybinding reference
Key Bindings
| Key | Action |
|---|---|
j / k / arrows | Navigate up/down |
g / G | Jump to top / bottom |
Ctrl-f / Ctrl-b | Page down / up |
Enter | Select / drill down |
Esc / Backspace | Go back |
Tab / Shift-Tab | Next / previous tab |
/ | Search / filter |
o | Open in browser |
r | Read body in mdr (detail view) |
c | Clone selected repo |
m | Mark notification as read |
t | Theme picker |
? | Help |
q / Ctrl-c | Quit |
Navigation
Home (Repos / Notifications tabs)
→ Select repo → Repo Detail (Overview / Issues / PRs tabs)
→ Select issue/PR → Detail view (body + comments)
Context mode: run ghx inside a git repo to skip the repo list and land directly on that repo’s issues.
Requirements
- Rust 1.70+
- GitHub CLI (
gh) — must be installed and authenticated - mdr (optional) — for full markdown reading experience
Architecture
Ratatui TUI with a synchronous event loop and non-blocking data loading via worker threads and mpsc channels. All GitHub data flows through gh CLI subprocess calls with JSON output — no direct API tokens or REST calls. The UI is a screen stack: each drill-down pushes a new screen, Esc pops back. Fuzzy filtering uses nucleo-matcher. Themes are TOML-based with 9 built-in themes compiled into the binary and user overrides from ~/.config/ghx/themes/.