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

waitroll

v0.1.0

Published

Get paid to use AI — WaitRoll shares 50% of ad revenue with you.

Downloads

7

Readme

waitroll — get paid while Claude Code thinks

A sponsored status line for the Claude Code terminal. Advertisers bid for one tasteful line while the model is thinking; up to 50% of the ad revenue goes to you, the developer whose terminal showed it. Zero dependencies — pure Node built-ins.

Install

npx waitroll install && npx waitroll login
  • install wires the status line into ~/.claude/settings.json (your existing settings are backed up first and every other key is preserved) and never opens a browser.
  • login opens your browser to sign in with Google and links this terminal to your account. Ads — and earnings — only start after you sign in.

Restart Claude Code and the sponsored line appears at the bottom of your session, rotating through the live auction pool.

Commands

| Command | What it does | |---|---| | npx waitroll install | Wire the status line into Claude Code (no auth, no browser). | | npx waitroll login | Sign in with Google; links this terminal to your account. | | npx waitroll status | Show install + sign-in state. | | npx waitroll logout | Sign out — ads and earnings stop. | | npx waitroll uninstall | Restore Claude Code settings, remove WaitRoll files. |

The two surfaces

  • Status line — re-rendered live by Claude Code; the clickable surface (an OSC 8 terminal hyperlink). Rotates with the auction pool.
  • Spinner verb — the ad line replaces the "thinking…" verb via the spinnerVerbs key (Claude Code ≥ 2.1.143; read at session start). Rewritten only when the rotating ad changes.

How earning works

One impression = 5 seconds of a live Claude Code session showing the ad. Each credited impression pays you up to 50% of the advertiser's per-impression bid; the server enforces idempotency, cooldowns, and velocity caps, so the numbers in your dashboard are the billable truth. You earn on views — clicks are free to make and never charged to you. Balances and payouts live at the WaitRoll portal.

Safety properties (the settings.json edits)

  • Minimal-edit — replaces only its own keys; ordering and formatting of everything else survive. Refuses to touch a file that doesn't parse.
  • Backup + exact restoresettings.json.waitroll-backup before the first edit; uninstall restores it.
  • Atomic writes — temp file + rename; Claude Code never sees a half-written file.
  • Version-gatedspinnerVerbs is only written when claude --version reports ≥ 2.1.143 (fails closed otherwise).
  • Control-char stripping — ad text and URLs are stripped of C0/C1 control characters before reaching the terminal (no escape-sequence injection).
  • Sign-in required — without credentials the client fetches nothing, reports nothing, and just shows a sign-in nudge.

Files

| Path | Purpose | |---|---| | ~/.waitroll/waitroll-statusline.mjs | The installed renderer (Claude Code runs this). | | ~/.waitroll/config.json | Per-install device id (+ optional apiBase/portalBase overrides). | | ~/.waitroll/credentials.json | CLI token from login (0600). Deleted on logout. | | ~/.waitroll/cli-ad.json | The cached rotation pool. |

License

Proprietary — see LICENSE. You're welcome to install and use it; copying, modifying, or redistributing it requires written permission.