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

vibing-supply

v0.1.4

Published

Track what you listen to while you code — a local play-history daemon any agent can read. Works with any macOS music app, best with Spotify.

Readme

vibing-supply

Keeps a local record of what you listen to while you code, for any coding agent to read.

A background daemon picks up whatever's playing in any macOS music app (Spotify, Apple Music, QQ Music, NetEase, browser tabs that use the Media Session API) — title, artist, album, genre — and builds a running play history: what you skipped, what you had on repeat, the albums you sat with. The live state lands in ~/.cache/music/now-playing.txt; the history in ~/.cache/music/play_history.md. Both are plain files on disk, so any agent that can read a file can use them — Claude Code is one integration, not a requirement.

Everything stays on your machine. Over time the history reads as taste: habits, favorites, and the mood you've been in lately from how your listening has drifted. It works with any app, and it's best with Spotify — connecting it adds finer signals (liked songs, top tracks/artists over time) plus playback control on Premium.

Ships with a Claude Code skill: a UserPromptSubmit hook that refreshes the snapshot each turn (it never injects into the prompt — the agent reads on demand) and a live 🎧 statusline.

Install

npx vibing-supply install

Or directly from GitHub:

npx github:Yukioa2z/vibes install

The installer:

  1. Verifies dependencies: nowplaying-cli, jq, curl, python3 (all on Homebrew)
  2. Appends a UserPromptSubmit hook to ~/.claude/settings.json (existing hooks are preserved)
  3. Adds a music statusline option at ~/.claude/statuslines/music.sh that composes with your existing base vibe
  4. Installs a launchd KeepAlive daemon at ~/Library/LaunchAgents/supply.music.poll.plist that polls every 2s
  5. Symlinks slash commands (currently /vibe) from skills/music/commands/*.md into ~/.claude/commands/
  6. Adds a pointer to ~/.claude/CLAUDE.md for both the now-playing snapshot and the play history so they're discoverable from any cwd

After install, the hook is active in any new Claude Code session — it refreshes the snapshot file every turn but does not inject anything into the prompt.

To make 🎧 your default statusline, edit ~/.claude/statusline-command.sh and change the fallback from pomodoro to music.

Uninstall

npx vibing-supply uninstall

Removes the hook, statusline option, daemon, slash command symlinks, and CLAUDE.md pointer. Leaves ~/.cache/music/play_history.md intact.

Slash commands

| Command | Effect | |---|---| | /vibe claude | Opens Claude FM — a 24/7 live coding stream — in your default browser |

More to come. Drop new *.md files into skills/music/commands/ and re-run install; they'll be symlinked into ~/.claude/commands/.

What gets written each turn

The hook does NOT inject anything into your prompt. On every UserPromptSubmit it regenerates ~/.cache/music/now-playing.txt with a block like:

<now-playing>
"Holocene" — Bon Iver · Indie / Folk
Context: playlist (spotify:playlist:...) · shuffle
Drift: Live Love love · Your Eyes · Hela Nokto · Billboard(skip) · ...
</now-playing>

Claude reads it on demand — when you ask "what am I listening to", when matching tone to your music makes sense, or when the task is open-ended enough that vibe context might help. For transactional/debugging work, it stays unread.

Songs listened to for ≥ 30 seconds are appended to the persistent play history at ~/.cache/music/play_history.md. Ads are filtered. Cover art for the current track is at /tmp/music-cover.jpg.

Capability tiers

| Tier | Setup | What works | |---|---|---| | 0 (default) | npx vibing-supply install | nowplaying-cli sensor: title/artist/album, cover, iTunes genre, skip/repeat detection, on-demand <now-playing> snapshot file, statusline | | 1 (Spotify Free) | + register your own Spotify app + run setup | tier 0 + Liked detection, recently-played backfill, top tracks/artists, finer Spotify genres, live shuffle/repeat/context | | 2 (Spotify Premium) | tier 1 with a Premium account | tier 1 + playback control (play/pause/skip/save/queue/transfer/etc.) |

Run bash skills/music/bin/music-capabilities.sh to see what tier this install is on.

Optional: Spotify (tiers 1 & 2)

vibing-supply does not ship a Spotify app — you bring your own. Free, takes a minute:

  1. Register an app at https://developer.spotify.com/dashboard
    • Redirect URI: http://127.0.0.1:8888/callback (must be loopback IP, not localhost)
    • APIs used: check Web API
  2. Copy the Client ID, then:
npx vibing-supply spotify-setup <client_id>           # one-time OAuth
bash skills/music/bin/music-history-sync.sh all       # seed Taste/Backfill/Liked cache
bash skills/music/bin/music-capabilities.sh           # confirm what unlocked

Tokens land at ~/.config/music/spotify.json (gitignored).

Free accounts → tier 1. Premium → tier 2 (control commands work). Free + control attempt → 403 PREMIUM_REQUIRED (Spotify rule, not a vibing-supply limit).

Requirements

  • macOS (uses nowplaying-cli + MediaRemote framework)
  • Node ≥ 14
  • nowplaying-cli (brew install nowplaying-cli)
  • jq, curl, python3 (system / Homebrew)

How it works

See skills/music/SKILL.md for architecture details.

License

MIT