cliamp ships with the Radio Browser directory: about 58,000 internet radio stations across 241 countries. Press R in the player to open it.
A list that long is only useful if you can cut it down. Browse it by location, filter the directory's genres and tags, or search for a station by name.
cliamp opens on the cliamp radio view: the channels cliamp runs on radio.cliamp.stream, and nothing else. The Radio Browser directory stays in the Radio provider.
── cliamp radio ───────────────────
Omarchy · 33 tracks
Chiptunes · 108 tracks
Amiga · 68 tracks
Lofi · live
Synthwave · live
- A channel that shows a track count opens as a playlist of its songs. Each song is a file, so you can seek, skip with
>and<, and let the next song start without a gap. - A channel marked
livehas no song library. It plays the live stream. - Channels with songs come first, so the cursor starts on a playlist.
Ctrl+Rreloads the channel list and its track counts.- Each channel shows who else is listening:
● 3 listening now, or○ quiet right nowwhen nobody is. Your own listening adds one to the channel you play. The counts come from the same statistics the website renders, refresh every few minutes, and stay hidden when offline. Ropens the Radio provider. To come back,Tabto Source (SRC) and choose "cliamp radio" withLeftandRight.
cliamp loads the channel list from https://radio.cliamp.stream/stations. The view is the default provider, cliamp. With auto_play = true, cliamp starts the live channel streams instead, so the music starts without a keypress. The daemon also starts with the live streams.
| Do this | To get |
|---|---|
R, then Enter on "Browse all countries" |
The country list, your own regions first |
/ in the country list |
Filter it: type japan, europe, oslo |
Enter on "Browse genres & tags" |
The complete tag list, most-used first |
/ in the tag list |
Filter it: type jazz, rock, news, 80s |
f on a country |
Pin it, so it gets its own row in the radio pane |
Enter on a country row |
That country's stations as a playlist |
Enter on "Use my location" |
Offers to work out your country, once, and only if you say yes |
── Countries ──────────────────────
Browse all countries
Norway (near you)
★ Germany
★ Japan
── Genres & Tags ──────────────────
Browse genres & tags
── Stations ───────────────────────
cliamp radio
── Favorites ──────────────────────
★ Radio Paradise [320k] · United States
── Catalog ────────────────────────
MANGORADIO [128k] · Germany
Dance Wave! [128k] · Hungary
"Norway (near you)" appears only once you have said yes to using your location. Starred rows are places you pinned. Selecting any of them loads that country's or region's stations as a playlist, so > and < scan between stations of one place.
"Browse all countries" opens the country list. Each row shows the country, its station count, and its region:
☆ Innlandet (16) — Norway
☆ Oslo (11) — Norway
☆ United States Of America (7975) — Americas
★ Germany (6235) — Europe
☆ Japan (215) — Asia
Regions of your own country come first, grouped under its name. Only about 44% of stations record a region at all, so cliamp fetches them for your home country only, where they are worth the request.
/ filters the list on both the name and the region, so asia narrows to Asian countries and oslo finds one Norwegian region.
Pick a country and choose how to order its stations:
| Order | Sorts by |
|---|---|
| Most Voted | Directory votes, all-time |
| Most Listened | Total clicks |
| Trending | Recent click growth |
| By Name | Station name, A to Z |
| Random | Nothing; a different set each time |
The result replaces your playlist with up to 200 stations from that place.
"Browse genres & tags" opens Radio Browser's complete community-maintained tag index, ordered by the number of stations carrying each tag:
pop (5723)
rock (2983)
classical (1525)
jazz (1134)
electronic (928)
Press / and type to filter the list. Select a tag, choose the same vote,
listener, trend, name, or random order offered by the country browser, and
cliamp replaces the playlist with up to 200 matching stations. Tag matching is
exact: selecting rock does not imply classic rock, although a station that
carries both tags appears in both results.
The tags are supplied by the directory's contributors, not a controlled genre
taxonomy. They include genres, formats, eras, languages, and descriptors such
as news, talk, or public radio. Some are inconsistent or unusually
specific; cliamp exposes the index as submitted, removes empty and case-only
duplicates, and shows station counts so useful filters are easy to recognize.
Press f on a directory station in the Catalog, search results, or the playback
playlist to toggle its Radio favorite. This includes stations loaded from
countries, regions, genres, and tags. The action follows the highlighted station,
not necessarily the one playing, and still works after switching providers.
Favorites appear under Radio → Favorites and show the ♥ marker in the
playback playlist. The marker uses the same column as track favorites, so a
toggle does not move the titles. They are saved
locally in ~/.config/cliamp/radio_favorites.toml,
deduplicated by station URL. The saved name is the station name, not the current
song, and station details including the region are retained after restart.
M3U/PLS wrapper stations keep their original station URL when resolved
to a playback stream. Toggling a favorite keeps the provider highlight on the
same surviving station, and completed catalog pages remain visible even when
favorites change during loading. Favoriting does not fetch more catalog stations
or interrupt an in-progress station load. Press f again to remove a favorite.
On Linux and macOS, favorite mutations use the latest file contents under a shared file lock, preserving changes made by other cliamp instances. The action follows the marker displayed in this instance: an unmarked station is favorited, and a marked station is unfavorited. If another instance already made that change, it is not reversed. Already-open players pick up other instances' changes on their next favorite mutation or restart, not through live refresh. On Windows, use only one writer per config directory.
For IPC clients, favorite IDs are stable f:<station URL> values returned by
provider.playlists. Use those IDs for subsequent operations; positional
f:<index> IDs are not supported. Existing favorites files remain readable.
In a saved local playlist, f toggles the track favorite instead, as it does for
any other track. The footer distinguishes Favorite station from Favorite
track. A station favorite does not change a remote provider account. See
playlists.md for track favorites.
f on a country or region pins it. Pinned places get their own row in the radio pane under "Countries", so the places you listen to are one keypress from anywhere. They are stored in ~/.config/cliamp/radio_countries.toml:
[[country]]
code = "DE"
name = "Germany"
[[country]]
code = "NO"
name = "Oslo, Norway"
state = "Oslo"On Linux and macOS, a pin or unpin uses the latest file contents under a shared
file lock, so it keeps the pins of other cliamp instances. As with favorites,
the action follows the marker in this instance. If cliamp cannot read the file,
f shows an error and does not change the file.
Until you ask for it, cliamp does not work out where you are. A fresh install shows one row instead:
── Countries ──────────────────────
Browse all countries
Use my location
Selecting it asks:
Use your country to suggest nearby radio? cliamp would read it from your system timezone. Nothing is sent to a location service.
Answer with y or n. Either answer is remembered, so you are asked once and
the row goes away. Saying yes writes your country to [radio] country and adds
a "near you" row for it; saying no writes country = "none" and changes
nothing else.
Nothing else in cliamp reads your location, and no other feature is gated on this. The country browser, pinning, and the catalog all work the same whether you say yes or no; a yes only saves you finding your own country in a list of 241.
Only after you say yes, and never over the network:
- The system timezone:
TZ, then the/etc/localtimesymlink, then/etc/timezone. - The locale:
LC_ALL, thenLC_MESSAGES, thenLANG.
The timezone is checked before the locale on purpose. A desktop left on
en_US.UTF-8 while sitting in Europe/Oslo is the common case, not the
exception, and the timezone is the setting people keep accurate.
There is no geo-IP lookup. That would be more precise and would also mean telling a third party where you live every launch, which is not a trade this feature is worth.
Skip the question entirely with an ISO 3166-1 alpha-2 code:
[radio]
country = "NO"Or turn it off for good:
[radio]
country = "none"To be asked again, delete the country line.
The directory records coordinates for stations, and it would be reasonable to expect a radius search. cliamp does not offer one, because the data does not support it:
| Field | Coverage (1000 top stations) |
|---|---|
countrycode |
98.7% |
state |
44.4% |
geo_lat / geo_long |
11.9% |
A 200 km radius search would silently hide about 88% of the catalog. The API also ignores distance ordering, so what came back would not even be sorted by how close it is. Country is the axis the data actually supports, so that is the one cliamp uses.
Stations you add yourself live in ~/.config/cliamp/radios.toml and appear under "Stations" alongside the built-in cliamp radio. See configuration.md.
Unlike directory entries, these are not filtered to http and https. That file is yours, and it carries the same trust as anything else you type.
| Key | Action |
|---|---|
R |
Open the radio provider |
/ |
Search station names through the directory (Enter runs it, Esc clears) |
f |
Favorite the selected station, or pin the selected country |
N |
Open the country browser |
Ctrl+R |
Refresh: re-fetch the country list and the catalog |
See keybindings.md for the rest.
For live radio, cliamp shows the current track from inline ICY metadata (StreamTitle). See streaming.md for the stations that publish now-playing data through an API instead.
Run an internet radio station with cliamp-server. Point it at a directory of audio files to start broadcasting. It supports multiple stations, live metadata, and on-the-fly transcoding.