ghr
ghr is a fast terminal dashboard for GitHub work queues. It focuses on the things you need to scan often: pull requests, issues, notifications, descriptions, and recent comments.

Features
- Pull request, issue, and notification views.
- Snapshot-first startup: cached data is shown immediately, then refreshed in the background.
- Configurable sections, including multi-query sections such as
All Requests. - Fuzzy filtering in every list with
/. - Details pane with descriptions and recent comments.
- Local state under
~/.ghr: config, SQLite snapshot database, and logs. - Uses the GitHub CLI for authentication, API access, and browser opening behavior.
Requirements
- Rust
- GitHub CLI (
gh) - An authenticated GitHub CLI session:
Usage
Install from crates.io:
Keybindings
| Key | Action |
|---|---|
1 / 2 / 3 |
Switch to Pull Requests / Issues / Notification |
4 |
Focus the primary list pane |
Enter or 5 |
Focus the details pane |
Esc |
Return from details to list, or clear search |
h / l |
Move between sections |
j / k |
Move selection in list, or scroll details when details is focused |
/ |
Fuzzy filter the current list |
o |
Open the selected item in the browser |
r |
Refresh from GitHub |
q |
Quit |
Default Sections
Pull Requests:
My Pull Requests: open PRs authored by you.Assigned to Me: open PRs assigned to you.All Requests: recent PRs authored by you, involving you, or reviewed by you, including closed PRs.
Issues:
Assigned to MeMentionedInvolved
Notifications:
UnreadReview RequestedAssignedMentionedAll
Configuration
The config file is created at:
~/.ghr/config.toml
Example:
= ["some-org/archive-*"]
[]
= "pull_requests"
= 50
= 50
= 50
= 120
= true
[[]]
= "My Pull Requests"
= "is:open author:@me archived:false sort:updated-desc"
[[]]
= "All Requests"
= [
"author:@me archived:false sort:updated-desc",
"involves:@me -author:@me archived:false sort:updated-desc",
"reviewed-by:@me -author:@me archived:false sort:updated-desc",
]
Use filters for a single GitHub search query. Use queries when a section should merge several GitHub searches into one deduplicated list.
Local Data
ghr keeps all local files in ~/.ghr:
config.toml: user configurationghr.db: SQLite snapshot cacheghr.log: log file
The snapshot cache is intentionally local and disposable. Delete ~/.ghr/ghr.db if you want to rebuild it from GitHub.
Design Notes
ghr is inspired by tools like ghui and gh-dash, but it is not a strict rewrite. The main goal is a responsive Rust TUI that opens instantly from cached state, then refreshes GitHub data in the background.