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

rpmdeck

v1.0.2

Published

rpmdeck — A PUI (Pickup User Interface) for your terminal. Spin records, play music.

Downloads

394

Readme

💿 rpmdeck

PUI — Pickup User Interface A terminal music player with a spinning ASCII vinyl record. Zero dependencies.

╔══════════════════════════════════════════════════════════════════════════════╗
║           💿  r p m d e c k   PUI — Pickup User Interface             ║
╠═════════════════════════════════════╦══════════════════════════════════════╣
║           ███████████               ║  ▶  NOW PLAYING                      ║
║       ██▓▓▒░▒▒▒░▒▒▒░▒▓▓██           ║  ─────────────────────────────────  ║
║     █▓▓▒▒░▒▒▒▒▒░▒▒▒░▒▒▒▒▓▓█         ║  ♪  Bohemian Rhapsody              ║
║   █▓░▒▒▒▒▒░▒▒▒▒░▒▒▒▒▒▒▒▒▒▒░▓█       ║  ◎  Queen                          ║
║  █▓▒▒▒▒▒▒▒▒░▒▒▒▒░▒▒▒░▒▒▒▒▒▒▒▓█      ║  ◈  A Night at the Opera           ║
║ █▓▒▒▒▒▒▒▒▒░▒▒▒▒░▒▒▒░▒▒▒▒▒▒▒░▒▓█     ║                                    ║
║█▓░░░░▒▒▒░░▒░▒◉◉◈◈◈▒░▒▒░▒▒▒▒▒▒░▓█    ║  ████████████░░░░░░░░░░░░░░        ║
║█▓▒▒▒▒▒▒▒▒▒▒◒◓◓◉◈◈◇◇◆▒▒▒▒▒▒▒▒▒▒▓█    ║  2:15 ─────────────────── 5:55    ║
║█▓░░░░░░░░░░◒◒◒○·○◉◉◉░░░░░░░░░░▓█    ║                                    ║
║█▓▒▒▒▒▒▒▒▒▒▒◑◐◐◆◆◇◈◈◉▒▒▒▒▒▒▒▒▒▒▓█    ║  🔊 ████████░░  80%                ║
║█▓░▒▒▒▒▒▒░▒▒░▒◆◆◆◇◇▒░▒░░▒▒▒░░░░▓█    ║                                    ║
║ █▓▒░▒▒▒▒▒▒▒░▒▒▒░▒▒▒▒░▒▒▒▒▒▒▒▒▓█     ║  Queue: [1/3]                      ║
╠═════════════════════════════════════╩══════════════════════════════════════╣
║     [SPACE] Play/Pause  ·  [←/→] Seek ±5s  ·  [↑/↓] Volume  ·  [Q] Quit  ║
╚══════════════════════════════════════════════════════════════════════════════╝

Features

  • 🎵 Plays MP3, FLAC, OGG, AAC, WAV and more (via mpv)
  • 💿 Spinning ASCII vinyl record animation (16 frames, 10 FPS)
  • 📋 Reads ID3 metadata — artist, title, album
  • 📊 Live progress bar + timestamps
  • 🔊 In-player volume control
  • 📁 Queue support — play entire folders
  • ⌨️ Full keyboard control
  • 🎨 Beautiful ANSI color UI with box-drawing
  • 📦 Zero npm dependencies

Install

npm install -g rpmdeck

# or run without installing
npx rpmdeck song.mp3

Requirement

rpmdeck uses mpv as its audio backend.

# Ubuntu / Debian
sudo apt install mpv

# macOS (Homebrew)
brew install mpv

# Arch Linux
sudo pacman -S mpv

# Windows (Scoop)
scoop install mpv

Usage

# Single file
rpmdeck song.mp3

# Queue (plays in order)
rpmdeck track1.mp3 track2.flac track3.ogg

# Play all mp3s in a folder
rpmdeck ~/Music/*.mp3

# Help
rpmdeck --help

Controls

| Key | Action | |-----|--------| | Space | Play / Pause | | ← → | Seek ±5 seconds | | ↑ ↓ | Volume up / down | | N | Next track | | P | Previous track | | Q / Ctrl+C | Quit |

Why PUI?

TUI = Terminal User Interface. GUI = Graphical User Interface. PUI = Pickup User Interface — because the needle drops and the music plays.

How It Works

  • The vinyl animation is generated mathematically — 16 frames computed by rendering concentric ring patterns with sinusoidal groove textures and a rotating label.
  • Audio is handled via mpv's IPC socket (--input-ipc-server), giving full playback control without any native bindings.
  • The TUI is rendered using raw ANSI escape codes and Unicode box-drawing characters — no curses, no deps.

License

MIT © 2026 Yahya Efe Kurucay