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

claude-year-in-review

v0.1.0

Published

🎁 Your Claude Code usage, Spotify-Wrapped style. 100% local, zero dependencies.

Readme

🎁 Claude Code Wrapped

Your Claude Code usage, Spotify-Wrapped style. One command, zero dependencies, 100% local.

Ever wondered how many tokens you've burned with Claude Code? Which tools it hammers the most? How much money prompt caching quietly saved you? Whether you're a πŸ¦‰ Night Owl or a 🚒 Serial Shipper?

Claude Code Wrapped reads the transcripts Claude Code already stores on your machine (~/.claude/projects) and turns them into a gorgeous, animated, shareable report.

report preview

✨ What you get

  • Total tokens β€” input, output, cache writes and cache reads, with an animated hero counter
  • πŸ’Έ Estimated cost & cache savings β€” see what caching actually saved you
  • πŸ€– Model breakdown β€” Fable vs Opus vs Sonnet vs Haiku
  • πŸ› οΈ Favorite tools β€” Bash? Edit? WebSearch? Ranked with charts
  • πŸ“ Top projects β€” where your tokens actually went
  • πŸ” Most edited files & top shell commands β€” the fingerprint of your workflow
  • πŸ—“οΈ Activity heatmap β€” 7Γ—24 grid of when you really code
  • πŸ”₯ Streaks & session records β€” longest streak, longest focused session
  • πŸ† Badges β€” Night Owl, Cache Master, Agent Orchestrator, Marathoner…
  • πŸ“Έ Share card β€” export a 1080Γ—1350 PNG ready for social media

πŸš€ Quick start

npx claude-code-wrapped

That's it. Your report opens in the browser and a summary prints in the terminal.

No Claude Code data yet? Try the demo:

npx claude-code-wrapped --demo

πŸ”’ Privacy

Nothing ever leaves your machine. No telemetry, no network calls, no analytics. The report is a single self-contained HTML file generated locally β€” read the source, it's one file.

βš™οΈ Options

| Flag | Description | |------|-------------| | --demo | Generate a report with sample data | | --since 2026-01-01 | Only include activity since a date | | --dir <path> | Custom transcripts dir (default ~/.claude/projects) | | --out <file> | Output HTML path (default ./claude-wrapped.html) | | --json | Dump raw stats as JSON (pipe it anywhere) | | --no-open | Don't auto-open the browser |

πŸ’° A note on costs

Costs are estimates computed at Anthropic API list prices (cache writes at 1.25Γ—, cache reads at 0.1Γ— input price). If you're on a subscription plan your real cost differs β€” think of it as "what this usage would cost on the API", which is exactly what makes the cache-savings number fun.

Prices live in a single table at the top of bin/claude-wrapped.js β€” tweak them if they drift.

🧠 How it works

Claude Code stores every session as JSONL under ~/.claude/projects/<project>/<session>.jsonl. Each assistant message carries usage (tokens by type) and model; tool calls carry their name and input. This CLI streams every line, aggregates ~20 metrics, and renders them into a self-contained HTML report β€” no build step, no dependencies, works offline.

🀝 Contributing

Issues and PRs welcome. Good first ideas:

  • More badges (streak tiers, language detection from file extensions)
  • --compare between two time ranges
  • Team mode: merge multiple exports into one report

πŸ“„ License

MIT