Thanks to visit codestin.com
Credit goes to www.cliamp.stream

~/audio/cliamp

cliamp

A full music player that lives in your terminal. No browser tab required.

Playlists, a 10-band equalizer, 31 visualizers, synced lyrics, podcasts, remote control, and Lua plugins. Stream from Spotify, Qobuz, Tidal, YouTube Music, Plex, Jellyfin, Emby, Navidrome, Lyrion, Yandex Music — plus podcast feeds and about 58,000 internet radio stations.

Linux · macOS · Windows MIT licensed Go 1.26
$ cliamp --provider radioplays live in your browser
tty1 C L I A M P
Lofi
pick a station below and press play
00:00 ■ stopped live stream
EQ [Rock]
SRC [Radio] 1/14
▸─ Playlist[Shuffle: Off][Repeat: All]
$ cliamp https://radio.cliamp.stream/lofi/stream.plsspace · < >

Install

One line. Click any command to copy it.

then just run cliampcliamp setup walks you through streaming services and media servers. Optional: ffmpeg for AAC, ALAC, Opus and WMA, yt-dlp for YouTube, SoundCloud, Mixcloud, Bandcamp, Bilibili and NetEase. Windows builds are in Releases.

Every source, one interface

Streaming services, self-hosted libraries, local files, podcasts, and radio — all through the same playlist, EQ, visualizer, and lyrics pipeline.

What's inside

10-BAND EQ

Parametric equalizer with 14 presets — Rock, Jazz, Classical, Bass Boost, Vocal, Podcast and more — or dial in your own curve. The Custom preset survives restarts.

VISUALIZERS

31 built-in modes rendered in the terminal from live FFT data: spectrum bars, scope, wave, matrix, flame, and a true-stereo LED peak meter. v cycles, V goes full screen.

SYNCED LYRICS

Embedded LRC first, then LRCLIB and NetEase. Time-aligned lines scroll with playback, and live radio refreshes on every ICY track change. Press y.

PLAYLISTS & QUEUE

TOML playlists with live [[dir]] folder sources, M3U/M3U8/PLS import and export, cross-playlist favorites, a play-next queue you edit while the music keeps playing, and undo.

REMOTE CONTROL

Newline-delimited JSON over a local Unix socket, with full state snapshots and push events for scripts, status bars, and GUIs. Media keys via MPRIS on Linux and Now Playing on macOS. Run --daemon for headless playback.

THEMES

22 built-in color schemes that pass contrast checks — catppuccin, dracula, gruvbox, nord, tokyo-night, winamp and more — or drop a TOML file in ~/.config/cliamp/themes. Press t.

PODCASTS

Apple's top charts and 19 genre categories, or any RSS feed. Browse episodes, subscribe locally with f, and skip in 30-second jumps. No account or API key.

GAPLESS & STREAMS

Preloads the next track for seamless transitions. Plays URLs, HLS (.m3u8) and internet radio with jitter buffering and live ICY metadata, and cliamp:// links from a browser or chat.

cliamp radio

Fourteen channels we run ourselves — always on, no account. Play any of them in the player above, or pipe the URL straight into cliamp or any player of your choice.

read the radio docs ↗

Who's listening right now

Live connections to the cliamp radio channels, by country. Drag the globe to spin it, or hover a country for its count.

LISTENERS
COUNTRIES

$ cliamp radio --stats --globe● live
TOP COUNTRIESLISTENERS
busiest channel
all-time high
sessions
hours streamed
LISTENING HOURS · LAST 31 DAYS

Keyboard first

Everything is one keystroke away — no mouse, no menus. Vim-style j/k movement, Tab cycles the controls, and ? or Ctrl+K shows the full keymap for the screen you are on. All keybindings ↗

Extend it with Lua

Hook playback events, add commands and key bindings, scrobble, post to a status bar, or draw a visualizer — plugins drop into ~/.config/cliamp/plugins/ and run in sandboxed Lua 5.1 VMs. A crashing plugin never takes the player down.

plugins/now-playing.lua
-- write the current track for Waybar, Polybar, tmux…
local p = plugin.register({
    name = "now-playing",
    type = "hook",
})

p:on("track.change", function(track)
    cliamp.fs.write("/tmp/cliamp-now-playing",
        track.artist .. " - " .. track.title)
end)
track.change · playback.state · queue.change
Ten events to subscribe to: track changes, scrobbles, seeks, volume, EQ, shuffle and repeat, queue edits, start and quit.
p:bind("ctrl+n", fn) · p:command("name", fn)
Register your own key bindings and shell-invokable commands.
cliamp.http · cliamp.fs · cliamp.store · cliamp.timer
Talk to any API, write files for status bars, persist state and schedule work — inside a sandbox with declared permissions.
type = "visualizer" → p:render(bands, frame, rows, cols)
Draw your own visualizer from the live spectrum bands. Plugin API reference ↗
COMMUNITY PLUGINScliamp plugins install user/cliamp-plugin-name

Close the tab. Play the music.

star on github