omp packages

@signalridge/pi-github-pr1.2.6

Pi extension that shows GitHub pull request review, checks, and comment status.

GitHub Actions Published 8 days ago MIT ~585 downloads/mo

Untested on omp

This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.

Did it work for you?

Result

One report per person. A new report replaces your old one.

Reports 0

No reports yet.

Readme

pi-github-pr — GitHub pull request statusline for Pi agents

npm Pi extension License: MIT

@signalridge/pi-github-pr is a passive Pi coding agent extension that shows the current branch GitHub pull request status in Pi's statusline.

It only reads PR metadata for the current branch. It counts comments and reviews, but does not fetch or display comment bodies, review text, or review-thread content.

It is intentionally ambient: no slash command, no custom tool, no widget, and no comment injection.

Features

  • Automatically shows compact PR status in Pi's statusline.
  • Refreshes the current branch PR every minute and after agent turns.
  • Shows PR number, GitHub checks state, review state, and comment/review count.
  • Does not read or expose PR discussion text; use gh pr view --comments or GitHub directly when you need the conversation.
  • Uses GitHub CLI auth and repository resolution; the extension stores no GitHub token.
  • No slash commands, LLM tools, widgets, webhook server, or separate runtime service.

Example statusline text:

PR #123: checks passing, approved, 7 comments
PR #123: checks failing (2), changes requested, 3 comments
PR #123: checks pending (5), commented, 12 comments
PR #123: no checks, draft, no comments

The check wording follows GitHub's Checks terminology. The trailing comment count is the combined comments + reviews count. When rendered by pi-statusline, the github-pr icon comes from pi-statusline icon settings.

Install

pi install npm:@signalridge/pi-github-pr

Try without installing permanently:

pi -e npm:@signalridge/pi-github-pr

Try this package locally from the repository root:

pi -e ./packages/pi-github-pr

Prerequisites

Install and authenticate GitHub CLI yourself:

brew install gh
gh auth login
# For GitHub Enterprise Server (include the port if your URL uses one):
gh auth login --hostname github.example.com:8443

The extension shells out to gh; GitHub Enterprise hosts and credential storage are delegated to gh. It uses the PR URL host (including any port) for follow-up API calls, so no manual GH_HOST is required.

Behavior

The extension runs passively:

  • On session start, it checks the current branch PR in the background, so slow GitHub calls do not delay startup; the compact statusline entry appears when the check completes. The session-start gh request waits for Git HEAD-path discovery (up to its 5-second timeout) so the branch watcher and request can be reconciled without duplicating work; an agent-turn refresh may run during discovery.
  • On Git branch change, it clears the old PR immediately and refreshes the new current branch. An agent-turn refresh for that same HEAD supersedes a pending branch debounce.
  • While the session remains open, it refreshes that same current branch PR every 60 seconds and after each agent turn.
  • On branch change, session replacement, or session shutdown, it cancels outstanding refresh work and ignores stale results.
  • On session shutdown, it clears the statusline entry.
  • If the directory has no GitHub PR, the statusline entry stays empty.
  • If gh is missing or unauthenticated, the statusline shows a short hint such as PR gh missing or PR gh auth.

Known limits

  • Requires gh; there is no direct GitHub API, GITHUB_TOKEN fallback, or manual GH_HOST requirement.
  • Only the current branch PR is shown; there is no command or tool for arbitrary PR lookup.
  • Comment count uses gh pr view comments and reviews, not precise unresolved review-thread counts.
  • It does not read PR comment bodies, review bodies, inline diff comments, or unresolved review-thread text.
  • While a session is open, refresh runs every 60 seconds in addition to session start, branch changes, and agent turns; each refresh invokes gh pr view and one GraphQL count query.

Package layout

packages/pi-github-pr/
├── src/index.ts
├── src/github-pr.ts
├── test/github-pr.test.ts
├── package.json
├── README.md
├── LICENSE
└── tsconfig.json

License

MIT