Cliamp supports two kinds of playlists: M3U files loaded from the command line and local TOML playlists managed from within the app.
Load any .m3u or .m3u8 file, local or remote:
cliamp ~/radio-stations.m3u
cliamp http://radio.example.com/streams.m3u
cliamp ~/music.m3u https://example.com/live.m3u # mix local + remoteThe parser extracts titles and durations from #EXTINF lines:
#EXTM3U
#EXTINF:180,Radio Station 1
http://station-1.com/stream
#EXTINF:-1,Radio Station 2
http://station-2.com/stream/hdEntries without #EXTINF still work. The filename or URL is used as the title instead.
Paths in a local M3U file are resolved relative to the M3U file's directory:
#EXTINF:240,My Song
../Music/song.mp3
#EXTINF:-1,Live Stream
http://example.com/liveIf radio.m3u is in ~/playlists/, then ../Music/song.mp3 resolves to ~/Music/song.mp3.
- UTF-8 BOM (common in Windows-created files)
\r\nline endings- Missing
#EXTM3Uheader - Mixed local and remote entries in the same file
- Other
#directives (silently skipped)
Create and manage your own playlists stored as .toml files in ~/.config/cliamp/playlists/.
Each playlist is a separate .toml file. The filename (minus extension) becomes the playlist name.
# ~/.config/cliamp/playlists/radio-stations.toml
[[track]]
path = "http://station-1.com/stream"
title = "Radio Station 1"
[[track]]
path = "http://station-2.com/stream/hd"
title = "Radio Station 2"
artist = "Radio Network"
[[track]]
path = "/home/user/Music/song.mp3"
title = "My Song"
artist = "My Artist"Each [[track]] section supports:
| Key | Required | Description |
|---|---|---|
path |
Yes | File path or HTTP URL |
title |
Yes | Display title |
artist |
No | Artist name |
HTTP/HTTPS paths are automatically treated as streams.
You can save podcast RSS feed URLs in a playlist. Add feed = true to mark a track as a feed. When played, the feed is resolved into individual episodes instead of being streamed directly.
# ~/.config/cliamp/playlists/podcasts.toml
[[track]]
path = "https://feeds.simplecast.com/54nAGcIl"
title = "The Daily"
feed = true
[[track]]
path = "https://lexfridman.com/feed/podcast/"
title = "Lex Fridman Podcast"
feed = trueEach [[track]] with feed = true supports:
| Key | Required | Description |
|---|---|---|
path |
Yes | RSS/Atom feed URL |
title |
Yes | Display name for the feed |
feed |
Yes | Must be true to enable feed resolution |
When you select a feed entry, cliamp fetches the RSS feed, extracts all episodes with audio enclosures, and loads them into the playlist. Episode titles and durations (from <itunes:duration>) are preserved.
URLs with .xml, .rss, or .atom extensions are also auto-detected as feeds without needing feed = true.
Running cliamp without arguments connects to the built-in radio channel. If Navidrome is configured, it opens the provider browser instead.
To browse your local playlists, press Esc or b during playback to open the provider browser. Navigate with Up/Down (or j/k) and press Enter to load a playlist. Tracks replace the current playlist and playback starts immediately. Press Tab to jump back to the now-playing playlist without reloading.
If Navidrome is also configured, both sources appear in the same list with provider labels (e.g., [Navidrome] Jazz, [Local Playlists] favorites).
You can start with CLI files and browse playlists later:
cliamp song.mp3 # starts playing, Esc opens browserPress p from any view to open the playlist manager:
- Browse: see all playlists with track counts
- Open: press
Enteror→to view tracks inside a playlist - Add track: press
ato add the currently playing track - Delete playlist: press
dthenyto confirm deletion - Remove track: open a playlist, highlight a track, press
dto remove it - Play all: press
Enteron the track list to load all tracks into the player - New playlist: select "+ New Playlist...", type a name, and press Enter
The directory ~/.config/cliamp/playlists/ is created automatically on first use. Removing the last track from a playlist auto-deletes the file.
Create the directory and add a .toml file:
mkdir -p ~/.config/cliamp/playlists# ~/.config/cliamp/playlists/favorites.toml
[[track]]
path = "/home/user/Music/song.mp3"
title = "Great Song"
artist = "Good Artist"
[[track]]
path = "https://radio.example.com/stream"
title = "My Radio"Playlist browser (provider view):
| Key | Action |
|---|---|
Up Down / j k |
Navigate playlists |
Enter |
Load selected playlist |
Tab |
Switch to now-playing playlist |
Esc b |
Open browser (from playlist view) |
Playlist manager (p key):
| Key | Action |
|---|---|
p |
Open/close playlist manager |
Up Down / j k |
Navigate |
Enter / → |
Open playlist / Play all tracks |
a |
Add currently playing track |
d |
Delete playlist (confirms) / Remove track |
Esc / ← |
Close / Go back |