| name | inbox-list-notifications |
| description | Fetch GitHub notifications using the gh CLI |
| tools | ["execute"] |
List GitHub Notifications
Use gh api to fetch all unread GitHub notifications with automatic pagination.
Command
Use the --jq flag (NOT a pipe to jq) to filter output inline:
gh api /notifications --paginate --jq '.[] | {id, reason, unread, updated_at, repo: .repository.full_name, title: .subject.title, type: .subject.type, url: .subject.url}'
This is the ONLY command you should run. Do NOT modify it. Do NOT add anything to it.
Rules
- NEVER pipe to
jq, python, python3, or any other program
- NEVER add
2>/dev/null or any redirects
- NEVER wrap the command in a script
- ALWAYS prepend
GH_PAGER=cat to gh api calls to avoid interactive pagers
- NEVER add other environment variable prefixes
- The
--jq flag handles all JSON filtering — no external tools needed
- The
--paginate flag handles pagination — no manual page loops needed
Filters
- Participating only: Add
--method GET -f participating=true
- Include read: Add
--method GET -f all=true
- Specific repo: Use
gh api /repos/{owner}/{repo}/notifications --paginate --jq '...'
- Since date: Add
-f since=2024-01-01T00:00:00Z
Constructing HTML URLs
The url field is an API URL like https://api.github.com/repos/owner/repo/pulls/123. Convert to a clickable URL:
- For pulls:
https://github.com/{repo}/pull/{number}
- For issues:
https://github.com/{repo}/issues/{number}
Extract the number from the API URL's last path segment.
Priority
Sort notifications by reason priority (highest first):
security_alert (critical)
assign (high)
review_requested (high)
mention (high)
ci_activity (medium)
comment (medium)
team_mention (medium)
state_change (medium)
author (low)
subscribed (low)