GitHub CLI extension to list your owned PRs and issues across repositories unlike gh pr list and gh issue list, which are repo-scoped.
Key features:
-
List your pull requests across all repositories grouped by what to do next:
- Needs action — non-draft PRs where reviewers requested changes
- Ready to merge — non-draft PRs that are approved
- Requested your review (including teams)
- Waiting for review or checks — non-draft PRs not yet approved and without changes requested
- Drafts — your open draft PRs
- You have participated in mentioned or commented (including teams)
The state-based tabs (Needs action, Ready to merge, Waiting, Drafts) cover PRs you authored or are assigned to.
-
List your issues across all repositories grouped into:
- Created by you
- Assigned to you
- You have participated in mentioned or commented (including teams)
-
Displays CI status and review decision for each PR (see Symbol legend)
-
Shows latest activity (who commented, reviewed, or pushed and when)
-
Includes draft PR indication
-
Fetches results for all teams you belong to, merged and deduplicated with your personal results
-
Team slugs are cached for 6 hours to avoid repeated API calls
-
Filter results to a single GitHub organization with
--org
gh extension install snrsw/gh-owngh own [command] [flags]| Command | Description |
|---|---|
gh own |
List your pull requests (default) |
gh own pr |
List your pull requests |
gh own issue |
List your issues |
| Flag | Description |
|---|---|
--org <name> |
Filter results to a single GitHub organization |
--demo |
Use built-in demo data without calling the GitHub API (useful for screenshots and recordings) |
--debug |
Enable debug logging to stderr (includes timing instrumentation) |
# List your pull requests (default behavior)
gh own
# Explicitly list pull requests
gh own pr
# List your issues
gh own issue
# Filter to a specific organization
gh own --org my-org
# Enable debug logging
gh own --debug
| Key | Action |
|---|---|
tab / shift+tab |
Switch between tabs |
enter |
Open selected item in browser |
r |
Refresh data |
/ |
Filter items in current tab |
ctrl+c |
Quit |
| Symbol | Meaning |
|---|---|
✓ |
CI passed |
✗ |
CI failed |
● |
CI pending |
- |
No CI status |
| Symbol | Meaning |
|---|---|
✔ |
Approved |
⊘ |
Changes requested |
◇ |
Review required |
You can customize the search queries used for each tab by creating a config file at $XDG_CONFIG_HOME/gh-own/config.yaml (defaults to ~/.config/gh-own/config.yaml).
Use the {user} placeholder to reference the authenticated GitHub username.
pr:
queries:
readyToMerge: "is:pr is:open draft:false review:approved {owner} label:team-a"
review_requested: "is:pr is:open review-requested:{user} label:urgent"
issue:
queries:
participated: "is:issue is:open involves:{user}"Any query you specify overrides the default for that tab. Tabs you don't specify keep their defaults. If no config file exists, the extension behaves exactly as before.
The four state-based PR tabs (Drafts, Needs action, Ready to merge, Waiting) use the {owner} placeholder, which expands to both author:{user} and assignee:{user} — because GitHub search cannot match author: or assignee: in a single query. The two searches merge into one tab, so a single {owner} query covers both the PRs you authored and the ones assigned to you.
Migration note: the
prcommand previously hadcreatedandassignedtabs. They have been replaced by the four state-based tabs above. If your config still overridescreatedorassignedunderpr.queries, those keys now render as extra custom tabs rather than replacing a default — rename them to the new keys to restore the intended behavior.
You can add custom tabs by defining queries with non-default keys. Custom tabs appear after the default tabs, sorted alphabetically. The key name is used as the tab title (hyphens become spaces, each word capitalized).
pr:
queries:
needs-triage: "is:pr is:open label:needs-triage"
team-review: "is:pr is:open team-review-requested:my-org/my-team"
issue:
queries:
bugs: "is:issue is:open label:bug"This adds tabs named "Needs Triage", "Team Review", and "Bugs" respectively.
The built-in defaults are equivalent to the following config:
pr:
queries:
drafts: "is:pr is:open draft:true {owner}"
needsAction: "is:pr is:open draft:false review:changes-requested {owner}"
readyToMerge: "is:pr is:open draft:false review:approved {owner}"
waiting: "is:pr is:open draft:false -review:approved -review:changes-requested {owner}"
review_requested: "is:pr is:open review-requested:{user}"
participated: "is:pr is:open involves:{user} -author:{user} -assignee:{user} -review-requested:{user}"
issue:
queries:
created: "is:issue is:open author:{user}"
assigned: "is:issue is:open assignee:{user}"
participated: "is:issue is:open involves:{user} -author:{user} -assignee:{user}"| Command | Keys |
|---|---|
pr |
drafts, needsAction, readyToMerge, waiting, review_requested, participated |
issue |
created, assigned, participated |
- GitHub CLI installed and authenticated
