# Overview (/docs)





RadioCLI is a terminal-first world radio receiver for exploring live public stations,
tuning real streams, and keeping listening history close to the command line.

<img alt="RadioCLI full-screen Now Playing receiver" src="__img0" />

It is built with Ink, React, Radio Browser, and local playback backends. The goal is
not a thin wrapper around a station list; the goal is a polished TUI product with
fast discovery, resilient stream handling, local-first library state, and a codebase
that can grow without turning into terminal spaghetti.

## Start Here [#start-here]

* [Install RadioCLI](./getting-started/install.mdx) for requirements, macOS setup,
  local checkout usage, and migration notes from the old Radio Atlas paths.
* [Use the CLI](./getting-started/cli.mdx) for command-mode search, imports, exports,
  health checks, and direct stream adds.
* [Learn the TUI controls](./getting-started/tui-controls.mdx) for navigation,
  playback, command palette, media keys, and settings.
* [Set up Alarms (Beta)](./alarms.mdx) for scheduled radio, verification,
  platform behavior, ringing controls, and safety limitations.
* [Watch the demo flow](./demo.mdx) for the recommended terminal recording loop.

## Product Surface [#product-surface]

RadioCLI includes:

* a braille Explore world map beside the station list, with click-to-place mouse
  support and WASD movement backed by a cached geotagged station atlas, plus
  country lists, global search, a station-density country map, and nearby
  discovery
* `mpv` playback first for full controls, with `ffplay` playback-only fallback
  when available
* a receiver-style Now Playing screen with selectable displays, stream
  diagnostics, cleaned ICY metadata, `mpv`-backed volume, pause, mute, sleep
  timer, favorite state, station skipping, and zero-signal graphics whenever
  playback is inactive
* previous/next queues based on the exact station list you tuned from
* recents, favorites, imports, provider cache, playback settings, learned media keys,
  and listening stats stored locally
* one-time and recurring scheduled radio from an Alarms workspace under
  Overview, backed by the native per-user scheduler on supported platforms
* `.m3u`, `.pls`, and `.xspf` playlist import plus `.m3u` export

## Engineering Surface [#engineering-surface]

The project is intentionally small, but it is built like production software:

* provider adapters instead of UI-coupled fetch calls
* a cached geotagged station atlas for distance-first Explore and Nearby results
* schemas at API and persistence boundaries
* stale-cache fallback for directory outages
* corrupt store/cache backups instead of silent overwrite
* backend readiness checks before playback is reported active
* deterministic tests for parsing, storage, layout, visualizers, and UI helpers
* live smoke checks for provider data and playback before releases

Read deeper in [Architecture](./architecture.mdx), [Reliability](./reliability.mdx),
and [Privacy and Security](./privacy-security.mdx).
