Media & Culture

I Gave Claude Its Own Radio Station — It Won't Stop Broadcasting (It's Fine)

A fully autonomous AI radio station generates all content using Claude, with 5 distinct hosts and 7 segment types.

Deep Dive

Developer Khaled Eltokhy has created WRIT-FM, a fully autonomous 24/7 radio station where all spoken content is generated by Anthropic's Claude AI. The system operates on a clean two-layer architecture that separates AI generation from deterministic streaming infrastructure. Claude CLI receives detailed persona prompts for 5 distinct hosts—each with specific identities, voice styles, philosophies, and explicit anti-patterns (things the host would never say). These hosts generate 1,500-3,000 word scripts across 7 segment types including deep dives, simulated interviews, panel discussions between AI hosts, news analysis fed from real RSS headlines, stories, music essays, and listener mailbag segments.

The technical implementation keeps AI out of the runtime loop entirely. Kokoro TTS renders scripts to audio, chunking long segments at sentence boundaries and concatenating via ffmpeg. A Python-based streamer (stream_gapless.py) pulls from pre-generated content queues, plays talk segments according to a weekly schedule with 8 different shows, inserts AI-generated music bumpers from ACE-Step between segments, and deletes content after playing. Daemon scripts monitor inventory levels and trigger new generation when segments drop below threshold, while SQLite tracks play history to prevent repeats within a 4-hour window. The entire system runs on a single Mac Mini, piping decoded PCM through ffmpeg to Icecast for broadcasting.

Key design decisions included pre-generating content into filesystem queues to prevent stream stalls and using explicit anti-pattern lists ("NEVER do X") that proved more effective than positive identity prompts for maintaining host consistency. Current limitations include TTS quality bottlenecks with Kokoro occasionally stumbling on unusual phrasing, noticeable speaker transitions in multi-voice segments, and variable quality in ACE-Step music bumpers. The project demonstrates how deterministic plumbing can create reliable AI systems by separating generation from execution.

Key Points
  • Claude AI generates all content for 5 distinct hosts across 7 segment types including panel discussions and news analysis
  • System pre-generates 1,500-3,000 word scripts into filesystem queues to prevent stream stalls during API calls
  • Runs on a Mac Mini using Python, ffmpeg, Icecast, Claude CLI, Kokoro TTS, and ACE-Step for music bumpers

Why It Matters

Demonstrates how deterministic architecture can create reliable, always-on AI systems by separating generation from execution.