ListenerSharp 1.0.5
dotnet tool install --global ListenerSharp --version 1.0.5
dotnet new tool-manifest
dotnet tool install --local ListenerSharp --version 1.0.5
#tool dotnet:?package=ListenerSharp&version=1.0.5
nuke :add-package ListenerSharp --version 1.0.5
LISTENER — Punk Audio Machine
A cross-platform CLI music player with an old-school cassette deck aesthetic. Built with .NET 8 + Spectre.Console + LibVLCSharp.
╔══════════════════════════════════════════════════════════════════════════════╗
║ ╔═══════╗ · ★ · * · ★ · * · ★ · * · ✦ · ╔═══════╗ ║
║ ║▐▌▐▌▐▌▐║ ██ ██████ ███████████ ████████ ██ ██ ████████ ║▌▐▌▐▌▐▌║ ║
║ ║▌▐▌▐▌▐▌║ ██ ██ ██ ██ ██ ██ ████████ ██ ██ ║▐▌▐▌▐▌▐║ ║
║ ║▐▌▐▌▐▌▐║ ██ ██████ ██ ██████ ██ ██ ██ ██████ ║▌▐▌▐▌▐▌║ ║
║ ║▌▐▌▐▌▐▌║ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ║▐▌▐▌▐▌▐║ ║
║ ╠═══════╣ · ✦ · * · ★ · * · ✦ · * · ★ · * ╠═══════╣ ║
║ ║ ╭───╮ ║ ╭───╮══════════════════════════════════════╭───╮ ║ ╭───╮ ║ ║
║ ║ │ ● │ ║ │─●─│══════════════╪═══════════════════════│─●─│ ║ │ ● │ ║ ║
║ ║ ╰───╯ ║ ╰───╯══════════════════════════════════════╰───╯ ║ ╰───╯ ║ ║
║ ║ ─── ║ ▶ VOL ████████████▒▒▒▒▒▒▒▒ 080% ║ ─── ║ ║
║ ╚═══════╝ ╚═══════╝ ║
╠══════════ QUEUE ════════════════════════════════════════════════════════════╣
║ 01 ▶ ANARCHY IN THE UK.MP3 ║
║ 02 white riot.flac ║
╠══════════ NOW PLAYING ══════════════════════════════════════════════════════╣
║ ▶ ANARCHY IN THE UK.MP3 ║
║ 01:14 ████████████░░░░░░░░░░░░░░░░░░░░░░░░ 02:48 ║
╠═════════════════════════════════════════════════════════════════════════════╣
║ [SPACE] PLAY/PAUSE [N] NEXT [B] PREV [←] -10s [→] +10s [↑/↓] VOL ║
╚═════════════════════════════════════════════════════════════════════════════╝
Features
- Punk aesthetics — Fat block-letter title, retro cassette deck UI, cosmic starfield header
- Animated tape reels — Left reel spins clockwise, right counter-clockwise; tape scrolls in real-time
- Twin speaker cabinets — Old-school woofer grille + tweeter on each side
- Live progress + timer — Elapsed time, progress bar, remaining time, all updated every 200 ms
- Volume control — Keyboard-driven ↑/↓, displayed as a live bar
- Seek — Jump ±10 seconds with ←/→
- Cross-platform — Windows, macOS, Linux (requires system VLC on Linux)
Supported formats
.mp3 .aac .flac .wav .ogg .m4a .opus .wma
Installation
Option 1 — dotnet global tool (needs .NET 8 SDK/runtime)
dotnet tool install -g ListenerSharp
Then from anywhere:
listen /path/to/music
Option 2 — Self-contained binary (no .NET required)
Download the archive for your platform from the latest release, extract it, and run the listen executable directly.
Option 3 — Build from source
git clone https://github.com/jacshuo/cli-audio-player.git
cd cli-audio-player
dotnet build ListenerSharp.csproj -c Release
dotnet run --project ListenerSharp.csproj -- /path/to/music
Linux prerequisite
LibVLC native libraries are not bundled on Linux. Install them via your package manager before running listen:
| Distro | Command |
|---|---|
| Debian / Ubuntu | sudo apt install vlc libvlc-dev |
| Fedora / RHEL | sudo dnf install vlc-devel |
| Arch | sudo pacman -S vlc |
| openSUSE | sudo zypper install vlc-devel |
Usage
listen <path>
| Argument | Description |
|---|---|
<path> |
Directory containing audio files or a single audio file path |
Files in a directory are sorted alphabetically and played in order.
Key bindings
| Key | Action |
|---|---|
Space / P |
Play / Pause |
N |
Next track |
B |
Previous track (restart if > 3 s in) |
← |
Seek –10 seconds |
→ |
Seek +10 seconds |
↑ |
Volume +5 |
↓ |
Volume –5 |
Q / Esc |
Quit |
Publishing a release
Create a version tag and push it — GitHub Actions will build all platform binaries and publish to NuGet automatically:
git tag v1.0.0
git push origin v1.0.0
For NuGet publishing, add your API key as a repository secret named NUGET_API_KEY (Settings → Secrets and variables → Actions).
Tech stack
| Library | Use |
|---|---|
| Spectre.Console | Terminal UI — panels, markup, live rendering, grid |
| LibVLCSharp | Cross-platform audio decoding & playback |
| VideoLAN.LibVLC.Windows | Native VLC binaries — Windows |
| VideoLAN.LibVLC.Mac | Native VLC binaries — macOS |
License
MIT © 2026 listener-sharp contributors
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.5 | 90 | 2/27/2026 |