inbox-list-notifications

Fetch GitHub notifications using the gh CLI

npx skills add https://github.com/microsoft/vscode-team-kit --skill inbox-list-notifications

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):

  1. security_alert (critical)
  2. assign (high)
  3. review_requested (high)
  4. mention (high)
  5. ci_activity (medium)
  6. comment (medium)
  7. team_mention (medium)
  8. state_change (medium)
  9. author (low)
  10. subscribed (low)