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

v0.2.5

Published

The editor frame tells you everything: where you are, the model, a context runway, and whose turn it is. Zero config, fast.

Readme

pi-runway

The editor's frame tells you everything — and nothing you don't need.

An editor frame for pi. The top edge shows where you are and which model you're talking to. The bottom edge is your context: it fills up like a runway. The frame's color and motion tell you whose turn it is. It replaces pi's footer, so you get those rows back for the conversation.

pi-runway

Install

pi install npm:pi-runway

There is nothing to configure.

To get pi's own footer and editor back for a while, run /runway (or /runway off, /runway on). The choice lasts until pi exits.

Reading it

╭─ pi-footer  ⎇ feat/x* ─────────────────────── esc to interrupt ── ◆ Sonnet 4.5 high ─╮
│ make it pop█                                                                          │
╰━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╍╍╍╍────────── 78%  ≈4 turns  $1.20 ─╯

Top edge

| | | |---|---| | pi-footer | Repo name, plus the subdirectory if you're in one (pi-footer/src). Outside git: the folder name. | | ⎇ feat/x | Git branch. Its presence also tells you the folder is a repo. | | * | Uncommitted changes. | | mcp 3 | Status text from other extensions (ctx.ui.setStatus()). | | esc to interrupt | Only while the agent works: the one thing you can do then. | | ◆ Sonnet 4.5 high | The model, followed by the thinking level, both in the level's color (the same color pi gives the editor border). Models that can't think show no level. A provider prefix appears only when the same model is available from more than one provider. A routed virtual model shows as auto → model. |

Bottom edge

| | | |---|---| | ━━━━━━ | Context used. Cool colors while there's room, warmer as it fills. | | ╍╍╍╍ | From 70%: how much the next prompt will probably use. | | 78% | Context used. Dim below 70%, yellow from 70%, red from 90%. | | ≈4 turns | From 70%: prompts left before the window is full, from how much your last three prompts grew it. | | $1.20 | Session cost, pay-per-token only. Hidden on subscriptions and when there is no price. |

The frame itself

| | | |---|---| | Thinking-level color, still | Idle. Your turn. | | A light running along the top | The agent is working — however long it takes. | | Yellow, with ● | An extension is waiting for your answer. | | Red, with ✗ | The last run failed. Stays until your next prompt. |

pi's own retry and compaction messages show as usual.

Design rules

  • Color only for signals. Everything is quiet until something needs you.
  • Your theme's colors. Every color comes from the active pi theme.
  • No Nerd Font needed. Only standard Unicode symbols.
  • Works with every provider. Nothing that only some providers report.
  • Graceful when narrow. Things step aside one at a time; the context reading and the run-state mark always stay.
  • Fast. Nothing is computed while you type. The frame is built from cached strings; session data is read on events (end of a message, end of a run, compaction, model change), and git only after a tool may have touched files.

Development

bun install
bun run link-pi      # symlink the host-provided pi packages for type checking
bun run check        # tsc + bun test
pi -ne -e ./index.ts # try it in isolation