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

backpay

v0.0.3

Published

backpay — your AI usage stats, on your terms. counters never content, preview before consent, 50% back.

Downloads

59

Readme

⏚ BACKPAY

My AI tools logged every dollar of my usage. I was paid $0.

The open-source data union for AI dev tools. Counters never content · every byte previewed before consent · 50% of every contract back to members.

npm license deps node

backpay.me · the film · privacy


Every AI coding tool you run writes usage logs to your own disk — and most of them also ship that telemetry home, where it gets aggregated and sold as market intelligence to investors, competitors, and analysts. You generate the data. You were never offered a cut.

Backpay inverts it. You run a tiny open-source meter that reads those local logs, submits day-level counters only, and the data union sells k-anonymous aggregates — the live index of which AI tools are actually winning. Half of every euro flows back to members, pro-rata by days contributed.

Quick start

npx backpay

That's the whole install. Here is everything it does, in order:

  1. Reads your local usage logs (via ccusage, the 16k-star parser your tools' logs already feed).
  2. Prints the complete payload — every byte that would leave your machine.
  3. Asks. Nothing is sent before you type y. The preview is always free.
  4. Submits your backfill, tells you your member number — the first 100 carry permanent founding weight in the revenue share.
  5. Offers a daily cron tick (~1 second a day). No resident daemon. Nothing runs in the background, ever.

What leaves your machine

One day's payload, in full:

{ "schema_version": 0,
  "panelist": "<random uuid — not your name>",
  "date": "2026-06-12",
  "entries": [ {
      "tool": "claude-code",          // fixed vocabulary
      "model": "claude-opus-4-8",     // fixed vocabulary
      "input_tokens": 18093021,
      "output_tokens": 842117,
      "cache_read_tokens": 114230998,
      "cache_creation_tokens": 1082211,
      "cost_usd_est": 23.91,
      "sessions": 4
  } ] }

What can never leave your machine

| Data | Status | |---|---| | Prompts, completions, code | no field exists — cannot be sent | | File paths, repo / project names | no field exists — cannot be sent | | Your name, email, employer | no field exists — your id is a random UUID | | Machine identifiers, hostnames | no field exists | | Anything finer than the calendar day | no field exists |

Tool and model names are mapped onto a fixed enum — strings from your logs are never copied into payloads. This isn't a privacy promise; it's the shape of the schema. A payload that tried to carry your prompt has nowhere to put it.

The constitution

i. Counters, never content. The schema has no field for prompts, paths or names.

ii. The meter is open source. Every byte previewed before consent. One file, zero dependencies, readable in one coffee.

iii. No one is ever the product alone. No data cell covering fewer than five members is published or sold. Individual rows: never, at any price.

iv. The ledger is public from day zero. Half of every euro, pro-rata by days contributed — or this is just another harvester with better fonts.

v. Paid in money nobody can freeze. Default payout rail: Bitcoin Lightning.

Commands

| Command | What it does | |---|---| | npx backpay | first run: full onboarding (preview → consent → backfill → optional cron) | | npx backpay preview | print exactly what would be sent. sends nothing | | npx backpay submit [--all] | submit today (or all days) | | npx backpay status | your days on record + ledger balance | | npx backpay export <file> | write your payloads to a JSON file | | npx backpay stop | leave. removes the cron line + local config. one command |

Keep your full history

The meter can only read logs still on your disk. Claude Code auto-deletes transcripts older than 30 days by default (cleanupPeriodDays), so without this your days silently vanish before the daily run records them — and deleted days are unrecoverable. Raise it once, per machine (non-destructive — merges into your existing settings):

node -e 'const f=require("os").homedir()+"/.claude/settings.json",fs=require("fs");const j=fs.existsSync(f)?JSON.parse(fs.readFileSync(f,"utf8")):{};j.cleanupPeriodDays=3650;fs.writeFileSync(f,JSON.stringify(j,null,2));console.log("set cleanupPeriodDays=3650 →",f)'

This protects your future days; it can't bring back history already deleted, and it pays nothing for days before you joined.

How you get paid

Buyers (vendors, VCs, funds) license k-anonymous aggregates — the usage-side index that spend-side data like Ramp's can't see. 50% of every contract accrues to members, pro-rata by data-days contributed in the contract period. Your balance is visible via status from day one, before the first contract closes — so you can verify the math while it's still small enough to check by hand. Default payout rail: a Bitcoin Lightning address you control.

FAQ

Isn't this spyware with extra steps? Spyware hides what it takes. The meter prints it and asks. The schema can't hold content, the code is one file you can read, there's no daemon, and leaving is one command.

ccusage already exists. What's new? ccusage is the reader — it shows you your own stats, and we build on it with credit. Backpay is the economics: methodology, k-anonymous aggregation, buyers, and a ledger that pays you. Different layer.

Who actually buys this? The same people who pay for spend-side indexes today. Spend tells you who paid; usage tells you who stayed. That retention layer is currently unclaimed.

50% of zero is zero. Correct — today the ledger reads €0.00 and the homepage says so. The data union exists before the first contract; that's what founding weight is for.

What stops someone running 100 fake members to game the 50%? Nothing at the accrual layer — and that's fine, because the gate is at payout, not accrual. When money actually moves, claiming it binds to a real identity (GitHub OAuth) so one human = one payout; sock-puppets accrue nothing they can cash out. The pool itself is auditable on-chain. None of this is built before the first contract — accrual stays open and honest until then.

What about Cursor? No clean local usage log (token data is buried in binary blobs). CLI agents first; Cursor lands when it can be done counters-only, or not at all.

Why should I trust you? Don't. Read the file. Run preview. The design goal is that trust is structural, not reputational.

Read the code

The entire meter is collect.js — one file, zero dependencies, standard library only. If you can read JavaScript, you can audit your own data pipeline in one coffee. That's not a constraint we suffer; it's the product.

License

MIT. Member №1 is the founder, dogfooding his own meter at backpay.me.