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

audiomancer

v0.1.1

Published

A terminal music player for YouTube, powered by yt-dlp + mpv

Readme

Audiomancer

A minimal terminal music player. Search YouTube, stream audio only (no video), control playback with your keyboard — no browser, no downloads left on disk.

How it works

  • yt-dlp searches YouTube and resolves a direct audio stream URL (no file is downloaded).
  • mpv plays that stream with --no-video, exposing an IPC socket for control.
  • The CLI talks to mpv over that socket to pause/seek/adjust volume live.

Prerequisites

You need yt-dlp and mpv installed and on your PATH.

# macOS
brew install yt-dlp mpv

# Ubuntu/Debian
sudo apt install mpv
pip install -U yt-dlp   # apt's yt-dlp is often stale; pip stays current

# Windows (scoop)
scoop install yt-dlp mpv

Install

cd audiomancer
npm install
npm link          # makes the `adt` command available globally

(Skip npm link and just run node src/index.js ... if you don't want it global.)

Usage

adt play lofi hip hop radio      # search + play the first match
adt search daft punk              # list matches without playing
adt id dQw4w9WgXcQ                # play a specific video ID or URL

Controls while playing

| Key | Action | |-----------|-----------------| | space | pause / resume | | / | seek ±10s | | + / - | volume up/down | | q | quit |

Notes / next steps

  • Playlist/queue support isn't in here yet — each play call replaces the current track.
  • Volume is currently a fixed jump (80/30) rather than tracked incrementally; wire up get_property volume over the IPC socket if you want true relative steps.
  • This same "resolve stream URL → hand to a player" pattern is what you'd reuse for syncing playback across PairSpace sessions — the stream URL + a shared timestamp is really all clients need to stay in sync.