You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+46-6Lines changed: 46 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,9 +18,11 @@ Built with [Ink](https://github.com/vadimdemedes/ink),
18
18
- Discover stations through Explore, Search, Countries, or approximate-location Nearby.
19
19
- Listen with a receiver-style Now Playing screen, live metadata, sleep timer, diagnostics, and selectable visualizers.
20
20
- Keep favorites, recents, imports, track history, and listening stats on your machine.
21
+
- Create one-time or recurring radio alarms from the TUI, with native background
22
+
scheduling, station fallback, missed-run grace, snooze, and optional Alarm Guard.
21
23
- Move through the exact station list you tuned from with previous and next controls.
22
24
- Use `mpv` for complete playback control, with `ffplay` and VLC as limited fallbacks.
23
-
- Resize freely: full, compact, and micro layouts preserve navigation and essential controls.
25
+
- Resize freely: full, compact, and micro layouts preserve navigation and essential controls; Explore retains its interactive world map at every usable size.
24
26
25
27
## Quick start
26
28
@@ -35,13 +37,14 @@ macOS, Linux, or Windows with npm:
35
37
36
38
```bash
37
39
npm install -g @ciphore/radiocli
38
-
radiocli doctor
40
+
radiocli setup
39
41
radiocli
40
42
```
41
43
42
44
RadioCLI requires Node.js 22 or newer. The Homebrew formula installs `mpv` and
43
-
FFmpeg; npm installs JavaScript dependencies only, so install `mpv` with your
44
-
system package manager for pause, volume, mute, media keys, and metadata.
45
+
FFmpeg. After an npm install, `radiocli setup` detects the operating system and
46
+
package manager, lets you choose `mpv`, FFmpeg, and VLC, installs the selected
47
+
native tools with branded progress feedback, and verifies playback readiness.
45
48
46
49
See the [installation guide](apps/docs/content/docs/getting-started/install.mdx)
47
50
for Windows, Linux distributions, AirPlay prerequisites, and fallback players.
@@ -100,11 +103,34 @@ radiocli countries
100
103
radiocli import stations.m3u
101
104
radiocli export favorites.m3u
102
105
radiocli add-url <stream-url> [station name]
106
+
radiocli alarm list
107
+
radiocli alarm doctor
103
108
```
104
109
105
110
RadioCLI imports `.m3u`, `.pls`, and `.xspf` playlists. It exports favorites
106
111
and imported streams as `.m3u`.
107
112
113
+
Alarms are experimental beta functionality and live under **Overview**,
114
+
immediately before Settings. Saving an enabled
115
+
alarm registers it with launchd on macOS, a systemd user timer on Linux, or Task
116
+
Scheduler on Windows, so the terminal does not need to remain open. When it
117
+
fires, RadioCLI reopens the saved supported terminal and shows the ringing
118
+
screen. Enter transfers the station into normal interactive playback; Space
119
+
stops it and snoozes for 10 minutes. If a
120
+
RadioCLI TUI is already open, that instance shows the controls instead. The
121
+
computer must still be powered on with a logged-in interactive audio session; wake timing
122
+
depends on hardware and OS power policy. See the [CLI guide](apps/docs/content/docs/getting-started/cli.mdx)
123
+
and [reliability notes](apps/docs/content/docs/reliability.mdx) before relying on
124
+
an alarm for something critical. Use a secondary device as the primary alarm
125
+
for safety-critical, medical, travel, or emergency timing. See the dedicated
126
+
[Alarms guide](apps/docs/content/docs/alarms.mdx) for the full workflow.
127
+
128
+
The **Verify alarm setup** row performs a disposable native-scheduler
129
+
registration, an authenticated terminal/control handshake, sleep-inhibitor and
130
+
system-volume checks, and a short sample from the next configured alarm. It
131
+
cleans up the temporary job and reports hard blockers separately from hardware-
132
+
or policy-dependent wake limitations.
133
+
108
134
See the [CLI guide](apps/docs/content/docs/getting-started/cli.mdx) for all
109
135
arguments and examples.
110
136
@@ -120,14 +146,27 @@ Playback waits for backend readiness, applies tune timeouts, and can skip broken
120
146
streams. Corrupt library and cache files are backed up instead of silently
121
147
overwritten.
122
148
149
+
Scheduled playback retries the primary station once, then tries an optional
150
+
fallback. A missed-run grace window controls catch-up after sleep or logout.
151
+
True fade-in requires `mpv`; `ffplay` and VLC start audibly at the configured
152
+
target volume. Scheduled alarms always use local speakers, never unattended
153
+
AirPlay.
154
+
155
+
On macOS, an npm or source installation is executed by Node, so System Settings
156
+
may identify its background item as `node`. Showing RadioCLI as the providing
157
+
application requires a future signed macOS app bundle with a bundled helper;
158
+
changing a launchd label cannot safely relabel the executable.
159
+
123
160
Read the [reliability notes](apps/docs/content/docs/reliability.mdx) for failure
124
161
handling and troubleshooting.
125
162
126
163
## Privacy
127
164
128
165
RadioCLI does not require an account, proxy audio, or upload your listening
129
-
history. Favorites, recents, imports, settings, track history, and activity stay
130
-
in a local JSON library.
166
+
history. Favorites, recents, imports, settings, alarms, track history, and
167
+
activity stay in a local JSON library. Full JSON library backups include alarm
168
+
definitions, while native scheduler registrations, runtime health, Alarm Guard
169
+
state, and authenticated loopback-control tokens remain machine-local.
131
170
132
171
Nearby contacts `ipapi.co` only when you open that screen, then uses an
133
172
approximate location to sort the local station atlas. Disable the lookup with
0 commit comments