AI Newsroom: Generate professional podcasts, debates, and news briefings from any topic using ElevenLabs.
Your personal AI newsroom. Turns any topic into a professional audio broadcast using ElevenLabs v3 audio tags.
You (Claude) generate the script, then newsroom renders the audio. This is the primary workflow:
newsroom generate "Topic" --script /path/to/script.txt --format <fmt>One line per speaker turn. Tags are interpreted directly by ElevenLabs v3.
IMPORTANT: No TV-isms. This is audio only. Never write:
Jump straight into the content.
ANCHOR: [serious] Tonight's top story: quantum computing just hit a major milestone.
ANCHOR: Researchers at MIT have achieved [excited] a breakthrough in error correction.
HOST: [excited] Alright, AI agents. Let's get into it.
CO-HOST: [laughing] Oh no, not again! [sigh] Just kidding, this is actually fascinating.
HOST: [thoughtful] So the big question is... can they actually replace us?
CO-HOST: [whisper] I hope not.
| Format | Speakers |
|---|---|
news | ANCHOR |
podcast | HOST, CO-HOST |
debate | MODERATOR, SIDE-A, SIDE-B |
narrative | NARRATOR |
# Clawdbot flow: render a pre-written script
newsroom generate "Topic" --script script.txt --format podcast
# Standalone flow: auto-research + auto-script via OpenAI (requires OPENAI_API_KEY)
newsroom generate "Topic" --format podcast
newsroom generate "Topic" --format debate --length long
newsroom generate "Topic" --freshness pd # Only past day results
newsroom generate "Topic" --freshness pw # Only past week results
newsroom generate "Topic" --freshness 2026-01-30to2026-02-02 # Custom date range
newsroom generate "Topic" --dry-run # Script only, no audio
newsroom generate "Topic" --skip-research # Skip Brave Search
# Utilities
newsroom voices # Show voice assignments
newsroom config # Show/init config file
--freshness pd or a custom date range)--freshness pw)When the user asks for recent news within a specific timeframe, use --freshness:
| Value | Meaning |
|---|---|
pd | Past day (24 hours) |
pw | Past week |
pm | Past month |
py | Past year |
YYYY-MM-DDtoYYYY-MM-DD | Custom date range |
Map user intent to the right filter: "last 48 hours" -> pd, "this week" -> pw, etc.
| Format | Style | Default Voices |
|---|---|---|
| news | Professional single anchor | Eric |
| podcast | Two hosts with banter | Eric & Liam |
| debate | Moderator + 2 opposing sides | Eric + Liam & Bella |
| narrative | Cinematic storytelling | Domi |
| Length | Duration | Words |
|---|---|---|
short | ~2 min | ~300 |
medium | ~5 min | ~750 |
long | ~10 min | ~1500 |
Config file: ~/.config/newsroom/config.yaml
Run newsroom config to generate defaults: