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

pi-login-manager

v0.1.1

Published

Single pi extension that registers and logs the user into third-party vendors (Command Code, R4 Coder). One adapter per vendor; credentials live in pi's auth.json.

Readme

pi-login-manager

A Pi extension that registers third-party model vendors and manages their logins — one adapter per vendor, credentials stored by pi itself in ~/.pi/agent/auth.json.

Vendors

| Provider id | Auth paths | Notes | |---|---|---| | commandcode | Browser OAuth (localhost callback) or paste API key | Static model catalog registered instantly, upgraded to the live catalog in the background | | r4coder | Paste API key (r4.codes dashboard login is not automatable — Cloudflare Turnstile) | Static 10-model catalog, compat.sendSessionAffinityHeaders preserved |

Install

pi install npm:pi-login-manager

Or try it without installing:

pi -e npm:pi-login-manager

Usage

After installing, pi loads the extension on session start and both providers are registered automatically. Then:

/login commandcode   # browser OAuth, or paste a key
/login r4coder       # paste the coder_* key from the r4.codes dashboard

Credentials are stored by pi in ~/.pi/agent/auth.json — the same place pi's native logins live. No plaintext keys in models.json, no scraping.

Credential expiry

When a stored credential is expired or near expiry, the extension says which vendor expired and how to re-login, instead of leaving you with a raw 401.

Legacy models.json migration

If your ~/.pi/agent/models.json still defines r4coder with a plaintext apiKey, the extension warns on session start (models.json entries shadow registered providers). Delete that entry — after one /login r4coder the key lives in auth.json and models.json can go.

Requirements

  • Pi coding agent
  • Node 22+ (pi's bundled runtime)

What this is not

  • No usage/billing surface (see docs/adr/); use a usage extension for that
  • No dashboard scraping; R4 login is intentionally paste-key only

License

MIT