@narumitw/pi-github-pr

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

Packages

Package details

extension

Install @narumitw/pi-github-pr from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@narumitw/pi-github-pr
Package
@narumitw/pi-github-pr
Version
0.23.0
Published
Jul 20, 2026
Downloads
2,972/mo · 1,264/wk
Author
narumitw
License
MIT
Types
extension
Size
23.4 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./src/github-pr.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

🔎 pi-github-pr — GitHub Pull Request Statusline for Pi Agents

npm Pi extension License: MIT

@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 --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, 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 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:@narumitw/pi-github-pr

Try without installing permanently:

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

Try 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: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 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 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.
  • 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