@narumitw/pi-github-pr
v0.15.1
Published
Pi extension that shows GitHub pull request review, checks, and comment status.
Maintainers
Readme
🔎 pi-github-pr — GitHub Pull Request Statusline for Pi Agents
@narumitw/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 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 --commentsor 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, polling loop, webhook server, or 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 commentsThe 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:@narumitw/pi-github-prTry without installing permanently:
pi -e npm:@narumitw/pi-github-prTry this package locally from the repository root:
pi -e ./extensions/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:8443The 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 and sets a compact statusline entry.
- On Git branch change, it clears the old PR immediately and refreshes the new current branch.
- After each agent turn, it refreshes that same current branch PR status.
- On session shutdown, it clears the statusline entry.
- If the directory has no GitHub PR, the statusline entry stays empty.
- If
ghis missing or unauthenticated, the statusline shows a short hint such asPR gh missingorPR gh auth.
Known limits
- Requires
gh; there is no direct GitHub API,GITHUB_TOKENfallback, or manualGH_HOSTrequirement. - Only the current branch PR is shown; there is no command or tool for arbitrary PR lookup.
- Comment count uses
gh pr viewcomments 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.
- No continuous polling; refresh happens on session start, branch change, and after agent turns.
📁 Package layout
extensions/pi-github-pr/
├── src/github-pr.ts
├── test/github-pr.test.ts
├── package.json
├── README.md
├── LICENSE
└── tsconfig.json🏷️ Keywords
pi-package, pi-extension, github, pull-request, statusline, gh
📄 License
MIT
