Changelog
Release history for RadioCLI.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
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.