Changelog
Release history for RadioCLI.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.2.0 - 2026-07-08
Added
- Added update checks for npm releases, including a
radiocli updatecommand, a:updatecommand, and a Settings entry that reports the latest available version and copies or runs the right npm or Homebrew update command. - Added lazy loading for long country station lists and search results, so deeper directories continue loading as you scroll instead of stopping at the first page.
- Added mouse wheel scrolling across station, country, map, nearby, explore, search, and library lists.
Changed
- The footer now shows the installed RadioCLI version, and Settings includes the current version beside update status.
- Retuning now keeps the playback footer focused on the station currently buffering, and mpv playback stays in loading until audio has actually started.
0.1.9 - 2026-07-03
Changed
- Nearby station discovery is now enabled by default for new libraries, and the
lshortcut is limited to Overview, Nearby, and Settings so country lists keep normal letter navigation. - Favorite changes from Library now appear in the footer message row instead of displacing the main page status.
- The listening stats activity graph now uses solid truecolor cell backgrounds with tighter rendering on short terminals and fewer split color runs.
Fixed
- Nearby keeps showing the last loaded station list when location lookup is turned off or temporarily unavailable.
- Long country names are truncated to one terminal row so dense country lists do not wrap into nearby entries.
- Pressing
bfrom a country station list now returns to Countries before falling back to Overview.
0.1.8 - 2026-07-02
Changed
- Replaced the classic equalizer receiver style with Ultracode, a centered
color-ripple display that follows the active display color; saved
equalizerpreferences migrate toultracode. - The listening stats activity graph now renders as a calendar-year grid with larger contribution cells and clearer month labels when the terminal has room.
- Muted UI text now uses truecolor neutrals instead of terminal
gray, making secondary labels more readable across dark terminal palettes.
Fixed
- Stale continuous listening sessions are capped before splitting them across days so one long-unclosed playback session cannot dominate listening totals.
- Receiver visualizer pulses now reset when an active Ultracode view opens but keep advancing smoothly during normal playback.
0.1.7 - 2026-06-29
Changed
- Search results can now be navigated with
Up/Downwhile editing the search query; search-history recall remains available withCtrl+Up/Ctrl+Down. - The listening stats activity heatmap now renders day cells as square markers and uses a capped contribution scale so one unusually long listening day does not flatten the rest of the Less/More color range.
0.1.6 - 2026-06-17
Added
- Added VLC (
cvlc/vlc) as a third playback-only backend so installs withoutmpvorffplaystill play audio. - Added a Help screen (
?) listing every keybinding and:command, plus command-name tab completion in the command palette. - Added persisted ICY track history shown on Now Playing (
d) and up/down recall of recent search queries in the search box. - Added opt-in resume of the most recent station on launch.
- Added
Oto open the station homepage andyto copy its stream URL. - Added ASCII-safe display, transparent background (also honoring
NO_COLOR), and reduce-motion settings for terminal and low-power compatibility. - Added a best-effort Radio Browser upvote when favoriting a station.
- Added a
radiocli versioncommand (and--version/-v). - Added
:doctor,:help,:resume,:ascii,:motion, and:backgroundcommand-palette entries.
Changed
- Playback binary detection now probes common install locations (Homebrew,
Scoop, WinGet, Chocolatey, and the VLC app bundle) when a tool is not on
PATH, so GUI-launched terminals still findmpv/ffplay/VLC. - The Radio Browser
User-Agentnow reports the installed package version.
0.1.5 - 2026-05-31
Fixed
- Moved the macOS AirPlay sender bridge to optional npm dependencies so Windows and Linux installs do not fail while compiling an AirPlay-only native module.
0.1.4 - 2026-05-31
Added
- Added a dedicated AirPlay receiver picker and AirPlay Code screen for passcode-protected receivers.
Changed
- Replaced silent AirPlay target cycling with a dedicated receiver picker in Settings, clearer Audio output labels, immediate output switching while a station is playing, and explicit AirPlay receiver selection before tuning.
- AirPlay is now an explicit current-session output instead of a persisted default. Restarting RadioCLI returns to automatic local playback while keeping the last receiver available for the next manual AirPlay switch.
- Bundled the AirPlay sender bridge and updated the Homebrew formula template to install FFmpeg, so macOS users do not need manual AirPlay package setup.
Fixed
- Fixed same-session AirPlay station switching so the worker retunes the active receiver, resets its sender buffer, and keeps the UI in buffering until the new stream is actually ready.
- Fixed AirPlay output failures so
skip broken streamsno longer walks through the library when the receiver is missing, off, local, or unavailable. - Fixed library selection after playing a station that moves to the top of recents.
- Patched the bundled AirPlay sender for modern macOS AirPlay 2 receivers that return digest-protected setup responses or empty first setup bodies.
0.1.3 - 2026-05-30
Added
- Experimental macOS AirPlay playback backend with Bonjour receiver discovery,
Settings target selection,
:airplay-codepasscode entry, worker-based stream forwarding, and active receiver labels in the playback footer.
Changed
ffplayis now treated as a playback-only fallback: the UI labels it asffplay fallback,radiocli doctorreports limited controls, and unsupported pause, mute, volume, and media-key actions explain thatmpvis required.
Security
- AirPlay sender support is worker-isolated and blocks high-risk sender dependency advisories before the backend is advertised.
- Hardened AirPlay discovery and worker messaging with bounded payloads, sanitized receiver data, passcode validation, and worker shutdown on startup timeout.
0.1.2 - 2026-05-30
Fixed
- Ignored Kitty keyboard release events so Ghostty users do not skip multiple tabs from one left/right arrow key press.
- Ignored Kitty release events for raw media-key transport sequences so learned or native media keys do not double-fire on key release.
0.1.1 - 2026-05-30
Initial public release.
Added
- A square braille spinner animates to the left of the station name in the live playback footer while a station is buffering.
- Ink-based terminal UI with overview, now playing, library, explore, search, countries, world map, nearby, stats, and settings screens.
- Radio Browser provider with mirror fallback, durable cache, and tune resolution, plus an experimental, opt-in Radio Garden provider.
mpvplayback controls for readiness checks, ICY metadata polling, volume, pause, and mute, withffplayplayback fallback, sleep timer, tune timeouts, and skip-broken-stream behavior, using Unix sockets on macOS/Linux and named pipes on native Windows.- Receiver-style Now Playing screen with 50 selectable visualizers and zero-signal frames whenever playback is idle, paused, stopped, or not backend-ready.
- Explore map: a braille world map beside the live station list with WASD movement, click-to-place mouse support, and a cached geotagged station atlas ranked by distance.
- Local-first library: recents, favorites, imports, listening activity, settings, learned media keys, and provider cache stored as JSON on your machine.
- Playlist import/export for
.m3u,.pls, and.xspf. - Listening stats with a 52-week local-calendar contribution graph, sessions, streaks, active days, and total hours listened.
radiocli doctorto report local playback readiness and print OS-specific setup guidance.- Published Homebrew tap formula for
brew install ciphore/tap/radiocli. - Documented native Linux and Windows install paths, with
wingetguidance for Node.js,mpv, and optional FFmpeg on Windows. - Documented pnpm and Bun as optional npm-package install clients.
Changed
- Tightened the Now Playing panel below the receiver: collapsed the stream tech/tags, track metadata, and backend/volume rows into two compact lines so more room goes to the visualizer.