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

@gceico/claude-make-it-rain

v1.0.11

Published

Satirical menu bar app that estimates today's Claude Code spend and makes it rain

Readme

Make It Rain 💸

CI npm

Make It Rain in action

A menu bar app that makes your Claude Code spend impossible to ignore. Every $1 flies a 💵 off the menu bar — and every $100 makes it rain. 💸 Then it adds your day into a shared picture of what everyone is spending, and asks the only question that matters: was it worth building it?

Install

npm install -g @gceico/claude-make-it-rain
claude-make-it-rain

Or run it once without installing:

npx @gceico/claude-make-it-rain

The app detaches from the terminal and lives in your tray/menu bar. Quit it from the tray menu.

Needs Node 22+ (you have it if you run Claude Code) and Claude Code writing session logs to ~/.claude/projects (the default). Runs on macOS, Windows, and Linux — the dollar amount next to the tray icon is macOS-only; elsewhere it lives in the tooltip and menu.

What you get

  • 💸 $12.34 in your tray, turning 🤑 once today crosses $100.
  • A 💵 flies off the tray at every whole dollar. Money stacks burst at $10 and $50, and every $100 plays a ~6-second full-screen money shower. The overlay is click-through and only exists while animating.
  • See your wealth in the tray: today's total broken into 💰/💵/🪙, plus what it bought in plain terms — ≈ 2 burgers 🍔, ≈ 10% of a trip to Greece 🏛️ — and the nudge, was it worth building it?
  • A tray menu with today's total, token counts, animation previews, and the collective-board controls.
  • A daily update check: when a new version ships, an ⬆️ Update item appears in the menu and installs it for you.

Collective spend, not a scoreboard

See what Claude Code costs — together — at aiburn.dev. A ranked "who spent the most" board quietly rewards spending more, which is the opposite of the point. So the board shows the collective curve instead: how much everyone spent today and when the peaks and valleys hit, resetting every day (UTC). Your own total sits beside a tangible equivalence so the number means something.

The collective spend board

Every 10 minutes the app reports two things: a random gamer tag generated on first run (e.g. TurboLlama7392) and today's estimated total. Nothing else leaves your machine; the server keeps only per-tag daily totals plus an aggregate hourly curve, pruned daily. View leaderboard… opens your personal reflection page (aiburn.dev/?tag=<yourTag>) — your spend, your share of the collective, and what it adds up to. Toggle reporting off with Share on daily leaderboard in the tray menu, or reroll your tag with New random tag.

Settings live in config.json under Electron's userData directory (e.g. ~/Library/Application Support/make-it-rain/ on macOS). You can also self-host the backend — a zero-dependency Bun server under server/ (it uses only bun:sqlite and Bun.serve) — and point apiBaseUrl at it:

bun server/index.ts           # http://localhost:8787

The board page itself is an Astro static site in web/ (cd web && bun run build), which the server serves from web/dist.

How it works

The app polls ~/.claude/projects/*/*.jsonl every 3 seconds, reading only newly appended bytes. Each assistant message with a usage block from today is priced with the per-model table in src/lib/pricing.ts (cache reads at 10% of the input rate, cache writes at 1.25×/2×), deduplicated by requestId:messageId, and the total resets at local midnight.

The figure is an estimate from list prices — it won't match your actual bill. Animations render on the primary display.

Development

Built with Bun (≥ 1.3) as the package manager, test runner, and bundler; the sources are TypeScript. (The published CLI still runs under your Node — Electron embeds its own.)

git clone https://github.com/gceico/claude-make-it-rain
cd claude-make-it-rain
bun install
bun start        # build + launch Electron (logs in the terminal)
bun run start:all  # full local stack: leaderboard server + landing page on
                   # http://localhost:8787 + the app reporting to it (isolated
                   # config in .dev/ — your real settings are untouched)
bun run test     # unit tests, no Electron window

Debug hooks for the animations:

MIR_TEST_RAIN=1 bun start                 # $100 rain 1.5s after launch
MIR_TEST_STACK=5 bun start                # burst 5 money stacks
MIR_TEST_SHOT=/tmp/overlay.png bun start  # screenshot the overlay

Architecture notes live in CLAUDE.md and docs/DECISIONS.md.

Releasing (maintainers)

npm version patch
git push --follow-tags
gh release create v1.0.1 --generate-notes

Publishing the GitHub Release triggers .github/workflows/publish.yml, which builds, tests, and publishes to npm with provenance via OIDC Trusted Publishing — there is no npm token to configure. One-time setup: add a Trusted Publisher entry for this repo + workflow on npmjs.com.

Who's behind this

I'm Gabriel. I build things like this for fun and ship the ones that turn out good. Check out One's Skills, my Claude Skills collection, or come say hi at Aibl.to — I run AI workshops and help people turn their expertise into compounded value.

— Gabriel C.