npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@arvoretech/pi-prs-tracker

v1.7.1

Published

PI extension that keeps open/recently-merged PRs pinned in the chat as a persistent widget

Readme

@arvoretech/pi-prs-tracker

Keeps your open and recently-merged PRs pinned in the chat as a persistent widget — now with CI and production deploy status. PRs are auto-detected from gh pr create calls (and any GitHub PR URL) the agent runs during the session, and their status is refreshed in the background. The current status of every tracked PR is also injected into the AI's context on each LLM call, so the agent always knows whether a PR is merged and how its CI/deploy is doing.

Install

pi install npm:@arvoretech/pi-prs-tracker

Or in .pi/settings.json:

{
  "packages": ["npm:@arvoretech/pi-prs-tracker"]
}

How it works

  • Listens to bash tool executions. When a command contains gh pr create or its output prints a github.com/<owner>/<repo>/pull/<n> URL, the PR is captured automatically.
  • For each tracked PR it runs gh pr view <n> --json ... to read title, state, merge commit and the status check rollup (CI).
  • When a tracked PR becomes MERGED, it looks up the production deploy workflow run triggered by the push for that merge commit (gh run list --commit <sha>) and tracks it through queued → in_progress → success/failure.
  • A widget pinned above the editor lists every tracked PR with:
    • State: [open] / [draft] / [merged] / [closed]
    • CI: CI passed / CI failed / CI running with check counts
    • Deploy: deploy queued / deploying to main / deployed to main / deploy failed
  • The CI and deploy status labels are clickable links (OSC 8 terminal hyperlinks). Cmd/Ctrl-click CI failed to open the failing check's logs (or the PR /checks tab) and Deploy failed/Deployed to main to open the workflow run. Terminals without OSC 8 support just show the plain label.
  • Background polling (every 60s) refreshes CI and deploy statuses. Merged PRs stay for 24h (and are kept longer if a deploy is still in flight); closed PRs drop off immediately.

AI context injection

On every LLM call the extension injects a non-displayed custom message (customType: "prs-tracker-context") with a fresh snapshot of all tracked PRs — state (OPEN/MERGED/CLOSED), CI summary and deploy status. The block is rebuilt each call from the latest background poll and the previous one is filtered out, so the history is never polluted and the agent always sees the current state instead of stale info. This lets the agent answer "is this PR merged / did CI pass / did it deploy?" without re-running gh.

Deploy detection

The production deploy run is matched by the push event on the merge commit, picking a workflow whose name contains deploy but not staging. This matches the Deploy workflow in api-arvore, frontend-arvore-nextjs, etc.

Commands

  • /prs — show usage
  • /prs hide — hide the widget
  • /prs show — re-show the widget
  • /prs refresh — force an immediate status refresh

Git-review integration

If the @arvoretech/pi-git-review extension is loaded and its reviewer server is running this session (i.e. you ran /review at least once), each PR's link in the widget is swapped from the GitHub URL to a local git-review deep link that opens that PR directly in the reviewer UI (…?token=…&mode=prs&pr=<number>).

Discovery is automatic: git-review publishes its { baseUrl, token, port } to a per-process file in the OS temp dir (pi-git-review-<pid>.json) while its server is up and removes it on shutdown. When git-review isn't running, the widget falls back to the plain GitHub PR URL. The canonical GitHub URL is always what's injected into the AI's context — only the clickable widget link changes.

Requirements

  • GitHub CLI (gh) authenticated in the working directory.