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

v1.0.5

Published

Why use many token when few do trick. Caveman mode for pi — cuts ~75% output tokens while keeping full technical accuracy.

Downloads

2,017

Readme

🪨 pi-caveman

Why use many token when few do trick.

A pi extension that cuts ~75% of output tokens while keeping full technical accuracy. Based on caveman by Julius Brussee.

🗣️ Normal (69 tokens)

"The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I'd recommend using useMemo to memoize the object."

🪨 Caveman (19 tokens)

"New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."

Install

pi install git:github.com/jonjonrankin/pi-caveman

Usage

Toggle Mode

/caveman              Toggle on (full) / off
/caveman lite         Professional, no fluff
/caveman full         Classic caveman (default)
/caveman ultra        Maximum compression
/caveman wenyan-lite  Semi-classical Chinese
/caveman wenyan       Full 文言文
/caveman wenyan-ultra Extreme 文言文
/caveman micro        Experimental prompt-minimized mode
/caveman off          Disable
/caveman stop         Disable (alias)
/caveman quit         Disable (alias)

Settings

/caveman config       Open settings dialog

The config dialog lets you:

  • Default level — Set a level that activates automatically on every new session (e.g. full to always start in caveman mode)
  • Show status bar — Toggle the animated campfire indicator in the footer

Settings are saved to ~/.pi/agent/caveman.json and persist across all sessions.

Status Bar

When active, a status bar displays caveman level and an animated campfire flickers in the footer using colored braille characters. This can be disabled in the /caveman config menu.

Levels

| Level | Style | Example | | -------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | Lite | No filler. Full sentences. Professional but tight. | "Your component re-renders because you create a new object reference each render." | | Full | Drop articles, fragments OK. Classic caveman. | "New object ref each render. Wrap in useMemo." | | Ultra | Abbreviations, arrows, maximum compression. | "Inline obj prop → new ref → re-render. useMemo." | | 文言文 Lite | Semi-classical Chinese, grammar intact. | "組件頻重繪,以每繪新生對象參照故。" | | 文言文 | Full classical terseness. | "物出新參照,致重繪。useMemo Wrap之。" | | 文言文 Ultra | Extreme classical compression. | "新參照→重繪。useMemo Wrap。" | | Micro (experimental) | Minimal prompt that reduces size of caveman prompt itself. Drops filler, pleasantries, hedging, keeps technical substance. | "Bug in auth middleware. Token expiry check use < not <=. Fix:" |

How It Works

The extension hooks before_agent_start to append caveman communication rules to the system prompt at the selected intensity. Within a session, the active level is stored as a custom session entry and restored on resume. Across sessions, persistent config (~/.pi/agent/caveman.json) provides the default level and status bar preference. Auto-clarity rules tell the model to drop caveman mode for security warnings or irreversible actions.

Credits

Based on caveman by Julius Brussee.

micro mode prompt based on caveman-micro by Kuba Guzik.

License

MIT