pi-amp

Retro CLI music player for pi โ€” YouTube streaming, EQ, and an AI DJ

Package details

extension

Install pi-amp from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-amp
Package
pi-amp
Version
0.1.0
Published
Mar 1, 2026
Downloads
18/mo ยท 8/wk
Author
migsterrrrr
License
MIT
Types
extension
Size
1.7 MB
Dependencies
0 dependencies ยท 2 peers
Pi manifest JSON
{
  "extensions": [
    "./extensions"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

pi-amp ๐ŸŽต

Retro CLI music player extension for pi. YouTube search + streaming, EQ, queue, and an LLM that can DJ for you.

Install

pi install git:github.com/migsterrrrr/pi-amp

System dependencies

You need these installed on your system:

sudo apt install mpv socat
pip install yt-dlp   # don't use apt โ€” it's outdated
Tool What it does Link
mpv Audio playback sudo apt install mpv
yt-dlp YouTube search + stream extraction pip install yt-dlp
socat mpv IPC control sudo apt install socat
PipeWire For EQ (optional, default on modern Linux) Already installed on Ubuntu 22.04+, Fedora, Arch

The extension checks for missing deps at startup and tells you what to install.

Usage

Slash commands

Command What it does
/play <query> Search YouTube and stream
/play (no args) Toggle pause
/pause Toggle pause
/stop Stop playback and clear queue
/np Show now-playing
/vol <0-100> Set volume
/queue <query> Add song to queue
/queue (no args) Show the queue
/skip Skip to next song
/eq <preset> EQ preset: flat, bass, live, vocal, off
/eq 60:+4 150:+2 ... Custom EQ bands

AI DJ

The extension registers LLM tools โ€” the AI can play music, queue songs, and adjust EQ on its own:

  • "play something chill" โ†’ play_music
  • "queue up 5 similar songs" โ†’ queue_music
  • "make it sound warmer" โ†’ set_eq

Status bar

Now-playing appears in pi's status bar: โ–ถ Song Name 1:23/4:17 [+3]

The [+3] shows how many songs are queued. When a song finishes, the next one starts automatically.

How it works

yt-dlp "ytsearch:<query>"  โ†’  finds YouTube URL
mpv --no-video <url>       โ†’  streams audio
socat โ†’ IPC socket         โ†’  play/pause/vol/position
PipeWire filter-chain      โ†’  EQ (optional)
System audio output        โ†’  speakers, Bluetooth, etc.

Platform

Linux only for now. Audio playback works on any Linux with PulseAudio or PipeWire (i.e. basically all of them). The /eq command requires PipeWire specifically โ€” it writes a filter-chain config. PipeWire is the default audio stack on Ubuntu 22.04+, Fedora 34+, and Arch. If you're on an older distro with PulseAudio only, everything works except EQ.

Want to help?

macOS and Windows support would be great โ€” PRs welcome. The main thing to figure out:

  • macOS: CoreAudio EQ instead of PipeWire filter-chain. Playback (mpv/yt-dlp) should work as-is.
  • Windows: Audio routing. mpv/yt-dlp work on Windows but EQ would need a different approach.

Other ideas: Spotify integration, playlist persistence, retro Winamp ASCII widget, better queue management. Open an issue or just send a PR.

License

MIT