pi-amp
Retro CLI music player for pi โ YouTube streaming, EQ, and an AI DJ
Package details
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