← Back to Skills Marketplace
art-ps

Agent Radio

by Artem Pisarev · GitHub ↗ · v0.1.1 · MIT-0
cross-platform ✓ Security Clean
195
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install agent-radio
Description
Control internet radio playback with stream/ station search, favorites, volume, pause/resume, stop, next, and show current playback using mpv or ffplay.
README (SKILL.md)

Agent Radio Skill

Internet radio player for OpenClaw with station search, favorites, volume control, and playback management.

When to Use

Use when user wants to:

  • Play an internet radio stream by URL
  • Search for stations by name from the live Radio Browser directory
  • Play a random built-in station when no target is provided
  • Manage favorite stations (add, remove, list)
  • Control volume, pause/resume, stop, skip to next
  • Check what is currently playing
  • Have a persistent radio experience across sessions

Tools

This skill provides the following CLI commands in scripts/:

play \x3Curl|station_name> [volume]

Play a stream by URL or by name from favorites or the built-in list.

If no target is provided, the skill chooses a random station from stations.json. Optional volume is 0-100 and defaults to the saved setting.

Examples:

  • play https://stream.zeno.fm/0r0xa792kwzuv
  • play BBC Radio 1
  • play "Jazz 24 (KNKX)" 60

stop

Stop playback immediately.

pause

Pause or resume the current playback process.

next

Skip to the next favorite station in a cycle.

volume [level]

Show the current volume or set a new default volume from 0-100.

Examples:

  • volume
  • volume 75

now

Show the current station URL, volume, PID, and playback status.

favorite add \x3Cname> \x3Curl>

Add a station to favorites.

favorite remove \x3Cname>

Remove a station from favorites.

list

List all favorite and built-in stations.

find \x3Cquery> [number]

Search the Radio Browser directory. When number is provided, play that result immediately.

Examples:

  • find jazz
  • find "lofi hip hop" 1

Configuration

Preferences are stored in: {baseDir}/preferences.json

{
  "last_station": "",
  "volume": 80,
  "favorites": [
    {"name": "BBC Radio 1", "url": "http://..."},
    {"name": "Jazz 24 (KNKX)", "url": "https://..."}
  ],
  "audio_device": "auto",
  "current_pid": null,
  "paused": false
}

Audio device auto-detection:

  • macOS: coreaudio/BuiltInSpeakerDevice
  • Linux: alsa/default
  • Windows: directsound/default

Override locations when needed:

  • AGENT_RADIO_BASE_DIR
  • AGENT_RADIO_PREF_FILE
  • AGENT_RADIO_STATIONS_FILE

Implementation Notes

  • Primary player: mpv --no-video --audio-device=\x3Cdevice> --volume=\x3Cvol> --cache=yes \x3Curl>
  • Fallback player: ffplay -nodisp -autoexit \x3Curl>
  • Playback runs in the background and stores PID plus paused state in preferences.
  • On play, any existing playback is stopped before starting the next stream.
  • Station lookup is case-insensitive across favorites and built-in stations.
  • next cycles favorite URLs instead of depending on station-name matching.

Error Handling

  • If both mpv and ffplay are missing, return install guidance.
  • If dependencies like jq or curl are missing, fail early with a clear message.
  • If a stored PID is stale, clear it automatically.
  • If station search returns no matches, explain how to retry with another query or a direct URL.

Examples for Users

/radio play https://stream.zeno.fm/0r0xa792kwzuv
/radio play "BBC Radio 1"
/radio volume 70
/radio now
/radio find jazz
/radio find "lofi hip hop" 1
/radio favorite add "Lounge Jazz" https://jazz.stream
/radio list
/radio next
/radio stop

Future Enhancements

  • Built-in station directory with genres and countries
  • Recording streams to file
  • Equalizer presets
  • Web interface control

Usage Guidance
This skill is internally consistent with its stated purpose, but check these points before installing: 1) The script needs jq and curl at runtime (and mpv or ffplay) — ensure those are present or available via your package manager. 2) The skill persists a preferences.json and can be pointed (via AGENT_RADIO_BASE_DIR / AGENT_RADIO_PREF_FILE) at a different directory — if you change those, avoid system or sensitive directories. 3) The skill will spawn background mpv/ffplay processes that connect to remote stream URLs (including ones returned by the Radio Browser lookup); consider network/privacy policies if you run untrusted streams. 4) If you want extra assurance, inspect scripts/radio.sh locally and run it manually in a safe environment before allowing autonomous agent invocation.
Capability Analysis
Type: OpenClaw Skill Name: agent-radio Version: 0.1.1 The agent-radio skill is a legitimate utility for playing internet radio streams using mpv or ffplay. It features station searching via the Radio Browser API (radio-browser.info), favorites management, and persistent volume/playback settings stored in a local JSON file. The shell script (scripts/radio.sh) is well-structured, using jq for safe JSON parsing and implementing proper validation for URLs and volume levels to prevent common injection attacks.
Capability Assessment
Purpose & Capability
Name/description match the shipped code: scripts/radio.sh implements station search, play/stop/pause/next, favorites, and persistent preferences. The built-in stations and Radio Browser lookup align with the stated purpose.
Instruction Scope
Runtime instructions and the script stay within the radio player domain (reading/writing a preferences file, calling mpv/ffplay, and querying the Radio Browser API). The skill persists state to a preferences.json and accepts environment-variable overrides for base/prefs/stations paths (documented), which is expected for this kind of tool.
Install Mechanism
The registry lists no install spec (instruction-only), and SKILL.md provides optional brew install hints for mpv/ffmpeg. Nothing in the package pulls arbitrary code from unknown URLs or performs disk installs; installation guidance is limited to common package managers.
Credentials
The script requires jq and curl at runtime (and mpv or ffplay). SKILL.md/metadata declare mpv/ffplay (and brew formulas) but do not declare jq/curl as required binaries — a minor mismatch. No credentials or external secret access are requested.
Persistence & Privilege
always is false, the skill only writes its own preferences file and does not modify other skills or system-wide agent settings. It does spawn background player processes (mpv/ffplay) which is expected.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install agent-radio
  3. After installation, invoke the skill by name or use /agent-radio
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.1
Version 1.1.1 - Updated version number in SKILL.md from 1.1.0 to 1.1.1. - No functional or documentation changes beyond version bump.
v0.1.0
agent-radio 1.1.0 adds flexible internet radio playback, search, and favorites management with persistent settings. - Play streams by URL or station name, with automatic fallback to built-in/random stations. - Search the Radio Browser directory and play results instantly. - Add, remove, list, and cycle through favorite stations. - Full playback controls: volume, pause/resume, stop, next, and status query. - Audio output auto-detection, mpv player primary with ffplay fallback. - All settings and playback state persist between sessions for continuity.
Metadata
Slug agent-radio
Version 0.1.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Agent Radio?

Control internet radio playback with stream/ station search, favorites, volume, pause/resume, stop, next, and show current playback using mpv or ffplay. It is an AI Agent Skill for Claude Code / OpenClaw, with 195 downloads so far.

How do I install Agent Radio?

Run "/install agent-radio" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Agent Radio free?

Yes, Agent Radio is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Agent Radio support?

Agent Radio is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Agent Radio?

It is built and maintained by Artem Pisarev (@art-ps); the current version is v0.1.1.

💬 Comments