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

@thinkscape/pi-status

v0.3.6

Published

Configurable, auto-updating terminal title and Ghostty native progress bar for pi coding agent.

Readme

@thinkscape/pi-status

A pi extension that shows a configurable status bar in the terminal tab title while pi is working, then restores the title when the turn finishes. Also supports Ghostty's native OSC 9;4 progress bar. Compatible with all libghostty-based terminals like cmux, muxy, etc.

Demo

Install

pi install @thinkscape/pi-status

Or test it for one run:

pi -e @thinkscape/pi-status

Screenshots

Main menu (/pi-status)

Main menu

Component picker (/pi-status components)

Component picker

Commands

Typing /pi-status with no arguments opens an interactive menu with these actions:

  • Status: enabled/disabled — toggle pi-status on/off inline (press Enter/Space)
  • Ghostty support: enabled/disabled — toggle Ghostty OSC 9;4 native progress bar
  • Change components — open the component picker
  • Change separator — change the separator character
  • Reset to defaults — restore the default config
  • Close — exit the menu

You can also invoke subcommands directly:

/pi-status                open interactive menu
/pi-status status         open interactive menu
/pi-status on             enable pi-status for this session
/pi-status off            disable pi-status for this session
/pi-status ghostty on     enable Ghostty progress bar
/pi-status ghostty off    disable Ghostty progress bar
/pi-status components     open TUI to toggle & reorder status components
/pi-status separator      change the separator character between elements
/pi-status reset          restore default pi-status configuration

components TUI

Opens an interactive picker with a live preview of the current title at the top. You can:

  • Toggle components on/off with Space
  • Reorder components with Ctrl+↑ / Ctrl+↓
  • Navigate the list with /
  • Exit with Enter or Escape

The order in the list determines the display order in the tab title. Changes are saved immediately.

Available components

| Component ID | Description | Default | |-----------------|---------------------------------------|---------| | spinner | Progress spinner (⠋ ⠙ ⠹ ...) | on | | pi_symbol | π symbol | on | | session | Session name | on | | cwd | Working directory basename | on | | model | Current model (e.g., claude-sonnet-4-5) | off | | thinking | Thinking level (e.g., high) | off | | tokens | Context token usage | off | | turn | Current turn number | off | | git_branch | Current git branch name | off | | tools_count | Number of active tools | off | | current_tool | Currently executing tool name | off |

separator

Prompts for a new separator string (max 5 characters). The separator is placed between each enabled component.

Default: " - "

reset

Restores all pi-status configuration to the defaults shown above.

ghostty

Enables or disables Ghostty's native OSC 9;4 progress bar. When enabled:

  • Indeterminate pulse while the agent is working (OSC 9;4;3), refreshed every second like pi's built-in terminal progress
  • Green completion flash at 100% when the agent finishes (OSC 9;4;1;100)
  • Clears on interaction (OSC 9;4;0) when you press a key, focus the terminal, start another agent turn, disable Ghostty support, or shut down pi

Works in Ghostty 1.2+ and any libghostty-based terminals. Enabled by default. The extension enables terminal focus reporting while Ghostty support is on and disables it on shutdown/reload.

Configuration

Settings are stored in pi's settings files under the piStatus key:

  • ~/.pi/agent/settings.json (global)
  • .pi/settings.json (project-local, overrides global)

Example with custom separator and additional components:

{
  "piStatus": {
    "separator": " | ",
    "ghosttySupport": true,
    "components": [
      { "id": "spinner", "enabled": true },
      { "id": "pi_symbol", "enabled": true },
      { "id": "model", "enabled": true },
      { "id": "session", "enabled": true },
      { "id": "cwd", "enabled": true },
      { "id": "thinking", "enabled": true },
      { "id": "git_branch", "enabled": true },
      { "id": "tokens", "enabled": false },
      { "id": "turn", "enabled": false },
      { "id": "tools_count", "enabled": false },
      { "id": "current_tool", "enabled": false }
    ]
  }
}

This would produce: ⠋ | π | claude-sonnet-4-5 | my-session | my-project | high | feat/config

Environment

Disable the extension by default:

PI_STATUS_DISABLED=1 pi

Accepted truthy values are 1, true, yes, and on.

Development

bun install
bun run check

Releasing

# Bump version only (patch/minor/major)
bun run version:patch

# Full release: check → bump → commit → tag
bun run release:patch

# Then push the tag to trigger GitHub Actions auto-publish:
git push origin main --tags

CI runs on every PR (bun run check + dry-run pack). Tag pushes trigger the publish workflow to npm.