How Radio Stations and Favorites Work in cliamp
Updated
cliamp treats internet radio as a first-class source: you can browse roughly 58,000 stations by country or genre, press f to favorite the highlighted station, and your favorites persist locally by station URL and name — including region details — across restarts. On Linux and macOS, favorite changes are also shared between running cliamp instances through a file lock, so two terminals won't overwrite each other's edits.
Browsing and playing radio
Radio is one of the providers cliamp ships with, alongside streaming services, self-hosted libraries, local files, and podcasts. The site's own example shows the direct route:
cliamp --provider radio
You can also pass a station playlist URL directly:
cliamp https://radio.cliamp.stream/lofi/stream.pls
Inside the app, the Catalog is where you browse stations by country or genre, and search results are another place stations appear. Once you pick a station and press play, it joins the same playback pipeline as everything else — playlist, 10-band EQ, visualizers, and synced lyrics — so radio isn't a separate mode with its own controls.
Favoriting a station
The action is a single key: press f while a station is selected in the Catalog, in search results, or in the playback playlist after browsing countries or genres. The page evidence describes this as "radio favorites follow the station," which matters for a live stream: what gets saved is the station itself, not whatever song happens to be playing at that moment.
A few behaviors worth knowing before you rely on it:
- Saved by URL and name. Favorites live locally under Radio → Favorites, keyed by the station URL and labeled with the station name. Region and other station details are retained after a restart.
- M3U/PLS wrappers keep the original station URL after playback resolution, so favoriting a wrapped stream doesn't save a temporary resolved link.
- Toggling is non-destructive. Turning a favorite on or off preserves your selected station and any catalog pages you've already loaded, including while a page is still loading.
- Favoriting doesn't trigger extra work. It won't fetch more catalog stations or interrupt a station load in progress.
The star badge and what it counts
The header's star badge counts all starred rows, including rows currently offscreen — so the number reflects your full set of favorites, not just what's visible in the current view. It uses the same meaning as the row markers next to individual stations.
One layout detail: radio favorites don't reserve a star column in playlists that contain no favorited stations, so a playlist with no favorites won't show an empty column.
Multiple instances and sync behavior
On Linux and macOS, favorite mutations preserve other cliamp instances' changes through a shared file lock. In practice, if you have cliamp open in two terminals and star a station in one, the other instance's write won't clobber it.
If you're scripting against cliamp rather than using the TUI, note the documented constraint: IPC clients use the stable URL-based favorite IDs returned by provider.playlists; positional favorite IDs are not supported. Build your integration around the URL ID, not the row position.
Practical checklist
| Task | How |
|---|---|
| Start in radio mode | cliamp --provider radio |
| Play a specific station file | cliamp <station .pls/.m3u URL> |
| Browse stations | Catalog, by country or genre |
| Favorite / unfavorite | Press f on the selected station |
| Find saved favorites | Radio → Favorites |
| Confirm total favorites | Star badge in the header |
If a station won't play, the likely gap is a missing optional dependency rather than a favorites problem: the install notes list ffmpeg for AAC, ALAC, Opus, and WMA, and yt-dlp for sources like YouTube, SoundCloud, Mixcloud, Bandcamp, Bilibili, and NetEase. Install cliamp itself with the one-line script (curl -fsSL https://cliamp.stream/install.sh | sh), Homebrew, AUR, Nix, or go install; Windows builds are in Releases.