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-speeed

v0.4.0

Published

A pi extension that shows live model speed with a configurable RunCat speed badge.

Readme

pi-speeed

A pi extension that shows assistant output speed with a configurable RunCat speed badge.

Features

  • Live output speed while the assistant is streaming, with bursty-stream guardrails.
  • Footer status for average speed across the current session.
  • RunCat working indicator whose animation speed follows token speed.
  • Custom speed labels, footer prefixes, and working text presets.
  • Interactive settings UI.
  • Aggregate speed stats and optional per-session stats entries.

Install

From npm:

pi install npm:pi-speeed

Try without installing:

pi -e npm:pi-speeed

From GitHub:

pi install git:github.com/somus/pi-speeed

From a local checkout:

git clone https://github.com/somus/pi-speeed.git
pi install ./pi-speeed

After installing or updating, restart pi or run:

/reload

Usage

Open settings:

/pi-speeed

Open settings explicitly:

/pi-speeed settings

View aggregate speed stats:

/pi-speeed stats

Settings are changed only through the /pi-speeed UI. Command arguments do not mutate settings.

Settings

Configurable from /pi-speeed:

  • Enabled on/off
  • RunCat loader on/off
  • Speed badge icon, including none
  • Speed label presets/custom/random
  • Footer status on/off
  • Session-average footer prefix presets/custom/off
  • Working prefix presets/custom/random
  • Render interval
  • RunCat default/min/max frame interval
  • RunCat speed scale
  • Persist session stats on/off

When Label or Working prefix is set to Random, pi-speeed chooses once per agent run and keeps that choice until the run ends.

Advanced token-speed options are intentionally hidden from the settings UI but can be edited in the config file:

  • speedAnimationMs
  • slidingWindowMs
  • minReliableDurationMs
  • maxDisplayTokS
  • useProviderTokens
  • countStrategy

Settings are stored at:

~/.pi/agent/pi-speeed.json

Stats

Aggregate stats are stored at:

~/.pi/agent/pi-speeed-stats.json

Aggregate speed totals exclude error and aborted messages so failed or cancelled streams do not skew speed calculations. Recent entries and stop reason counts still keep all messages.

The footer's live status shows the speed-eligible average for the current session. Aggregate stats are stored separately and include:

  • speed-eligible assistant messages
  • output tokens
  • total duration
  • average tok/s
  • median message tok/s
  • fastest/slowest message tok/s
  • per-model stats
  • recent 200 responses

Use /pi-speeed stats or Show aggregate stats in settings to view a summary.

When Persist session stats is enabled, pi-speeed also appends session custom entries with:

customType: "pi-speeed-stats"

RunCat font

RunCat frames use private-use glyphs from the bundled RunCat font. npm install runs a postinstall script that installs assets/runcat.ttf:

  • macOS: ~/Library/Fonts/runcat.ttf
  • Linux: ~/.local/share/fonts/runcat.ttf

Manual install:

npm run install-font

Restart your terminal or select the RunCat font if glyphs still show as boxes.

Source inspiration: https://github.com/FredySandoval/pi-runcat

Custom footer integration

pi-speeed exposes footer text through pi extension status. In TUI mode this text includes Pi theme color sequences for the speed value and label:

ctx.ui.setStatus("pi-speeed", text);

Custom footer extensions can include it with footerData.getExtensionStatuses().

Package metadata

package.json declares this as a pi package:

{
	"keywords": ["pi-package"],
	"pi": {
		"extensions": ["./src/index.ts"]
	}
}

Development

Install dependencies:

npm install

Run checks:

npm run check
npm run typecheck
npm test

Package dry-run:

npm pack --dry-run

Releases use Release Please and npm trusted publishing. Merge Conventional Commits to main, then merge the Release Please PR to publish with provenance.