대체: Winamp
cliamp - Terminal music player inspired by winamp
A retro terminal music player inspired by Winamp. Play local files, streams, podcasts, YouTube, YouTube Music, SoundCloud, Mixcloud, Bilibili, Spotify, NetEase Cloud Music, Yandex Music, Xiaoyuzhou (小宇宙), Navidrome, Lyrion, Plex, Jellyfin, and Audiobookshelf. Use the spectrum visualizer, parametric EQ, and playlist manager.
cliamp uses Bubbletea, Lip Gloss, Beep, and go-librespot.
https://github.com/user-attachments/assets/fbc33d20-e3ac-4a62-a991-8a2f0243c8ea
Install
curl -fsSL https://raw.githubusercontent.com/bjarneo/cliamp/HEAD/install.sh | sh
Homebrew
brew install bjarneo/cliamp/cliamp
The formula installs all required runtime libraries.
Arch Linux (AUR)
yay -S cliamp
Nix
nix run github:bjarneo/cliamp
For a declarative NixOS configuration, add github:bjarneo/cliamp as a flake
input. Install its default package:
inputs.cliamp.url = "github:bjarneo/cliamp";
environment.systemPackages = [
inputs.cliamp.packages.${pkgs.stdenv.hostPlatform.system}.default
];
Go
go install github.com/bjarneo/cliamp@latest
Install ALSA development headers before you build on Linux. See Building from source.
Pre-built binaries
Download from GitHub Releases.
macOS: Pre-built binaries link dynamically to FLAC, Vorbis, Ogg, and mpg123 from Homebrew. If you download from Releases or use
install.sh, install these libraries first. Otherwise, you can see errors such asLibrary not loaded: /opt/homebrew/opt/libvorbis/lib/libvorbisenc.2.dylib:brew install flac libvorbis libogg mpg123
brew install bjarneo/cliamp/cliampinstalls these libraries.Linux: Pre-built binaries link FLAC, Vorbis, Ogg, and mpg123 statically. No extra codec packages are required. You can still need an ALSA bridge for your sound server. See Troubleshooting.
Windows: Download and extract
cliamp-windows-amd64.zipfrom Releases. It includes the codec DLLs that Spotify requires. IfHOMEis not set, cliamp stores its config under%APPDATA%\cliamp.
Optional runtime dependencies for all platforms and install methods:
- ffmpeg for AAC, ALAC, Opus, and WMA playback
- yt-dlp for YouTube, YouTube Music, SoundCloud, Mixcloud, Bandcamp, Bilibili, and NetEase Cloud Music
On macOS, run brew install ffmpeg yt-dlp. On Linux, use your distribution package manager.
On Windows, install ffmpeg and yt-dlp with your package manager. Keep both on PATH.
Build from source
git clone https://github.com/bjarneo/cliamp.git && cd cliamp && go build -o cliamp .
Quick Start
cliamp ~/Music # play a directory
cliamp *.mp3 *.flac # play files
cliamp https://example.com/stream # play a URL
Press Ctrl+K to see all keybindings.
Configure remote providers such as Navidrome, Lyrion, Plex, Jellyfin, Audiobookshelf, Spotify, Mixcloud, YouTube Music, and NetEase Cloud Music with the interactive wizard:
cliamp setup
The wizard guides you through each provider. It writes the required block to your config file (~/.config/cliamp/config.toml, or %APPDATA%\cliamp\config.toml on Windows when HOME is unset). It validates supported server connections during setup. It checks optional Mixcloud browser-session or OAuth credentials when you use them. See docs/cli.md for details.
See the Mixcloud provider guide for discovery, account, creator/show, genre search, local genre favorites, authentication, signed-in playback, resume, seeking, and limitations.
Radio
Press R in the player to browse about 58,000 online radio stations in the Radio Browser directory.
Cut that down by location or genre: N browses by country, Browse genres &
tags opens the directory's complete tag index, and / filters either list.
f pins the countries you listen to, and Enter on a country or tag loads its
stations as a playlist. cliamp does not work out where you are unless you pick
"Use my location" and accept; it then reads your country from the system
timezone, never from a geo-IP service. See docs/radio.md.
Add your own stations to ~/.config/cliamp/radios.toml (or %APPDATA%\cliamp\radios.toml on Windows when HOME is unset). See docs/configuration.md.
To host a radio station, use cliamp-server.
Building from source
Prerequisites:
- Go 1.25.5 or later
- ALSA development headers (Linux only, required by the audio backend)
Linux (Debian/Ubuntu):
sudo apt install libasound2-dev libflac-dev libvorbis-dev libogg-dev libmpg123-dev
Linux (Fedora):
sudo dnf install alsa-lib-devel flac-devel libvorbis-devel libogg-devel mpg123-devel
Linux (Arch):
sudo pacman -S alsa-lib flac libvorbis libogg mpg123
macOS: brew install flac libvorbis libogg mpg123 pkg-config
Windows: The core player needs no extra SDKs. It uses pure-Go audio decoding. ffmpeg.exe and yt-dlp.exe remain optional runtime dependencies for the same formats and providers as other platforms.
Spotify support uses go-librespot. It needs CGO and a MinGW toolchain:
- Install MSYS2.
- Open the MSYS2 MinGW64 terminal, not the standard MSYS2 terminal. Install the toolchain and codec libraries:
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-pkg-config \ mingw-w64-x86_64-libogg mingw-w64-x86_64-libvorbis \ mingw-w64-x86_64-flac mingw-w64-x86_64-mpg123 - In that MinGW64 terminal, build with CGO enabled. This keeps
gccandpkg-configonPATH:
Some MSYS2CGO_ENABLED=1 go build -o cliamp.exe .liboggbuilds providelibogg-0.dllwithoutogg_stream_iovecinin its export table. The staticlibogg.ahas this symbol. If linking fails withundefined reference to 'ogg_stream_iovecin', use static linking for this library only:CGO_LDFLAGS="-Wl,-Bstatic -logg -Wl,-Bdynamic" CGO_ENABLED=1 go build -o cliamp.exe . cliamp.exelinks dynamically to codec and MinGW runtime DLLs. KeepC:\msys64\mingw64\binonPATHat runtime, or copy each/mingw64/bin/*.dllthatldd cliamp.exeshows next tocliamp.exe.
Clone and build:
git clone https://github.com/bjarneo/cliamp.git
cd cliamp
make && make install
Or without Make: go build -o cliamp .
make install places the binary in ~/.local/bin/.
Optional runtime dependencies:
- ffmpeg for AAC, ALAC, Opus, and WMA playback
- yt-dlp for YouTube, SoundCloud, Mixcloud, Bandcamp, Bilibili, and NetEase Cloud Music
Docs
Full documentation is hosted at whiterose.org.contextowl.co/docs/cliamp.
Troubleshooting
No audio output
cliamp reports audio output unavailable when it cannot open an output
device. On Linux systems that use PipeWire or PulseAudio, the cliamp ALSA
backend needs a bridge package to route audio through the sound server:
- PipeWire:
pipewire-alsa - PulseAudio:
pulseaudio-alsa(libasound2-pluginson Debian/Ubuntu)
Install the package for your system:
# PipeWire (Arch)
sudo pacman -S pipewire-alsa
# PulseAudio (Arch)
sudo pacman -S pulseaudio-alsa
# Debian/Ubuntu (PipeWire)
sudo apt install pipewire-alsa
# Debian/Ubuntu (PulseAudio, including WSL2)
sudo apt install libasound2-plugins
On WSL2 see WSL2 setup for the extra ALSA routing step.
Author
Disclaimer
Use this software at your own risk. The authors are not responsible for damage or issues that result from its use.