Claude Code can run multiple agents in parallel, each working on a different part of your codebase. Keeping track of what's happening across all of them usually means watching terminal output or parsing Slack messages. Radio Agent gives you a different option: audio. A voice tells you when agents finish tasks, hit errors, or get stuck, spoken over ambient music and streamed to any device on your network.
This guide walks through the full setup. Five minutes, no cloud services, everything runs on your machine.
What you'll need
- A machine with Docker installed (macOS, Linux, or Windows with WSL)
- Claude Code (the CLI tool)
- About 5 minutes
Radio Agent runs as three Docker containers (Icecast for streaming, Liquidsoap for audio mixing, and a Python brain for the webhook API and TTS). The install script handles all of this.
Step 1: Install Radio Agent
InstallationRun the one-liner:
curl -sSL https://radioagent.live/install.sh | bash
This clones the repo, builds the containers, starts the services, and waits for Icecast to report healthy. When it finishes, you'll see URLs for your dashboard and stream.
Open the dashboard URL (usually http://your-ip:8001) in a browser. You should see the Radio Agent interface with a Connect button. Click it. Music should start playing.
If you prefer to inspect before running: git clone https://github.com/nmelo/radioagent.git && cd radioagent && docker compose up -d
Step 2: Install the agent skills
Claude Code skillsRadio Agent ships two Claude Code skills that let your agents send voice announcements:
- Setup skill: one-time configuration that connects your Claude Code instance to your Radio Agent
- DJ skill: rewrites robotic agent messages into natural, creative radio-style announcements
Install them:
git clone https://github.com/nmelo/radioagent.git /tmp/radioagent-skills
cp -r /tmp/radioagent-skills/skills/setup ~/.claude/skills/radioagent-setup
cp -r /tmp/radioagent-skills/skills/dj ~/.claude/skills/dj
rm -rf /tmp/radioagent-skills
Step 3: Connect Claude Code to your Radio Agent
ConfigurationIn any Claude Code session, run:
/radioagent-setup
The setup skill will ask for your Radio Agent host and port (the IP and port from step 1). It verifies the connection, saves the configuration, and sends a test announcement. You should hear "Radio Agent connected" spoken over the music.
Step 4: Send your first real announcement
TestingYou can test the webhook directly:
curl -s -X POST http://your-host:8001/announce \
-H 'Content-Type: application/json' \
-d '{"detail": "Auth refactor complete", "kind": "agent.completed", "agent": "eng1"}'
You should hear a resolved chord tone followed by a voice saying something like "Auth refactor complete." The kind field controls the tone and voice: agent.completed gets a warm resolution, agent.failed gets a tense tone and a different voice.
Step 5: Use the DJ skill for better announcements
Creative voiceWithout the DJ skill, announcements sound like templates: "Completed: auth refactor." Functional, but flat.
With the DJ skill, your agents rewrite the text before announcing. The same event becomes: "Auth refactor landed. Single commit, tests pass. Solid work." Natural, conversational, and much easier to listen to over a full session.
The DJ skill activates automatically when you use /dj before announcing, or you can configure your agents to always use it. The skill follows strict personality rules: measured pace, dry humor, no exclamation points, no filler phrases. It sounds like a calm tech lead narrating the session.
What you'll hear during a session
Once everything is connected, a typical multi-agent coding session sounds like this:
- Ambient music plays continuously in the background
- When an agent starts a task: a rising chime (no voice, just a subtle tone)
- When an agent finishes: the music dips, a voice says what shipped, the music comes back
- When something fails: a different, male voice announces the failure with a dissonant tone
- When an agent gets stuck: a pulsing tone and a patient voice explaining what's happening
The tone differences (rising chime for start, resolved chord for completion, dissonance for failure) become subconscious after about thirty minutes. You stop actively listening and just know whether the session is healthy or something needs attention.
Customization
Adjust voice volume
If voice announcements are too loud or too quiet relative to the music, use the five-level voice volume control on the dashboard (in the Voice channel row). Level 4 is the default. Level 1 is barely audible; level 5 is full volume.
Mute selectively
The dashboard has independent toggles for each channel. Need silence for a call? Mute everything. Want music but no voice? Mute voice, keep music. The controls are in the Channels panel.
Add your own music
Radio Agent ships with four CC0 ambient tracks. To add your own, drop .mp3, .ogg, or .flac files into your music directory (shown in the dashboard's now-playing info tooltip). Radio Agent picks them up automatically.
Listening from other devices
The stream is standard HTTP MP3 served by Icecast. Any audio player on your network can connect:
- Phone/tablet: Open
http://your-host:8000/streamin a browser or VLC - Smart speaker: Use any app that plays HTTP audio streams
- Another computer: Open the dashboard URL and click Connect
The stream is LAN-only by default. If you want to listen from outside your network, you'd need to set up port forwarding or a reverse proxy, but for most setups the local network is the right boundary.
Radio Agent is open source and runs entirely on your machine. No data leaves your network, no API keys required, no cloud account needed. Source on GitHub.