newsroom
AI Newsroom: Generate professional podcasts, debates, and news briefings from any topic using ElevenLabs.
Best use case
newsroom is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
AI Newsroom: Generate professional podcasts, debates, and news briefings from any topic using ElevenLabs.
Teams using newsroom should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/newsroom/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How newsroom Compares
| Feature / Agent | newsroom | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
AI Newsroom: Generate professional podcasts, debates, and news briefings from any topic using ElevenLabs.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Newsroom
Your personal AI newsroom. Turns any topic into a professional audio broadcast using ElevenLabs v3 audio tags.
## How It Works (Clawdbot Flow)
You (Claude) generate the script, then newsroom renders the audio. This is the primary workflow:
1. **Research** the topic using your own web search
2. **Write a script** in the format below with ElevenLabs v3 audio tags
3. **Save the script** to a temp file
4. **Run** `newsroom generate "Topic" --script /path/to/script.txt --format <fmt>`
### Script Format
One line per speaker turn. Tags are interpreted directly by ElevenLabs v3.
**IMPORTANT: No TV-isms.** This is audio only. Never write:
- "Thanks for watching" / "you're watching X" / "tune in next time"
- "Good evening, I'm X" or any self-introductions with show names
- Sign-offs, visual references, or any television conventions
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.
```
### Speaker Labels by Format
| Format | Speakers |
|--------|----------|
| `news` | ANCHOR |
| `podcast` | HOST, CO-HOST |
| `debate` | MODERATOR, SIDE-A, SIDE-B |
| `narrative` | NARRATOR |
### Available v3 Audio Tags
- **Emotions:** [excited], [sad], [angry], [surprised], [thoughtful], [happy], [annoyed], [appalled]
- **Delivery:** [whisper], [sarcastic], [dramatic], [serious]
- **Non-verbal:** [laughing], [sigh], [clears throat], [short pause], [long pause], [chuckles]
- Tags can appear anywhere: start of line, mid-sentence, between sentences
## CLI Usage
```bash
# 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
```
## Natural Language Examples
- "Create a news briefing about SpaceX Starship"
- "Make a podcast about AI agents vs humans"
- "Generate a short debate on remote work"
- "Write a long narrative about the history of Rome"
- "Last 48 hours in AI news" (use `--freshness pd` or a custom date range)
- "This week's tech news" (use `--freshness pw`)
### Freshness Filter (Brave Search)
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.
## Formats
| 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 Options (standalone mode only)
| Length | Duration | Words |
|--------|----------|-------|
| `short` | ~2 min | ~300 |
| `medium` | ~5 min | ~750 |
| `long` | ~10 min | ~1500 |
## Configuration
Config file: `~/.config/newsroom/config.yaml`
Run `newsroom config` to generate defaults:
```yaml
voices:
anchor: cjVigY5qzO86Huf0OWal # Eric
host: cjVigY5qzO86Huf0OWal # Eric
cohost: TX3LPaxmHKxFdv7VOQHJ # Liam
moderator: cjVigY5qzO86Huf0OWal # Eric
sidea: TX3LPaxmHKxFdv7VOQHJ # Liam
sideb: EXAVITQu4vr4xnSAxGW1 # Bella
narrator: nPczCjz82KWdKScP46A1 # Domi
model: eleven_v3
output_format: mp3_44100_128
openai_model: gpt-5-mini
```
## Under the Hood
1. **Script** - Either provided by clawdbot or auto-generated via OpenAI (standalone)
2. **Parse** - Extract speaker turns, preserve v3 audio tags inline
3. **Audio** - Each segment sent to ElevenLabs v3 with tags intact, plus request stitching for continuity
4. **Mix** - ffmpeg concatenates interleaved segments into final MP3
### Request Stitching
Segments are generated in script order. Each voice tracks its last 3 request IDs, which are passed to subsequent generations for prosody continuity across the conversation.
## Data Layout
```
~/.clawd/skills/newsroom/{topic-slug}/{format}/
script.txt
audio/
000_anchor.mp3
001_anchor.mp3
...
final.mp3
```Related Skills
bgo
Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
voxanne-branding-expert
Strategic branding, business development, and UI/UX design expertise for Voxanne AI. Combines business strategy, visual design principles, and market positioning to create enterprise-grade branding assets and go-to-market strategies. Use when designing logos, creating brand guidelines, developing marketing strategies, or positioning products against competitors like ChatGPT, Anthropic, and Google.
vibe-techdesign
Create a Technical Design Document for your MVP. Use when the user wants to plan architecture, choose tech stack, or says "plan technical design", "choose tech stack", or "how should I build this".
vapor-ui
Vapor UI design system component and icon guide, UI mockup generator, and Figma design converter. Provides component catalog, icon lookup, usage patterns, props documentation, and converts Figma designs to production-ready vapor-ui code. Use when user asks "vapor-ui components", "vapor-ui icons", "아이콘 찾기", "vapor-ui 사용법", "vapor-ui를 사용해서 시안 구현", "convert figma", "figma to code", "implement design from figma", provides a Figma URL, or mentions specific components like "Button", "Input", "Modal".
ux-visualizer
Analyzes source code or requirements to generate high-fidelity screen and state transition diagrams. Specialized in SPA state mapping.
ux-ui-exp
UI/UX design intelligence with Bootstrap 5, Font Awesome, SweetAlert2. Use: /ux-ui-exp {command}
ux-spec-author
Converts UX/design intent into testable design specifications that feed requirements. Use when defining user flows, accessibility, or design constraints.
ux-expert-dialogue
Runs interactive expert review sessions where a senior UX composite persona (Nielsen, Krug, Kahneman, Cialdini, Ilincev) challenges decisions, provides direct critique with data-backed reasoning, and brainstorms alternatives section-by-section. Use when creating a new website/landing page and need expert challenge, want section-by-section review with quantified impact estimates, need an opponent who questions assumptions, brainstorming design alternatives, or preparing for major redesign or launch. Trigger phrases include "expert review", "critique my design", "challenge my assumptions", "section-by-section review". NOT for quick fixes with known solutions (use ux-optimization), implementing proven patterns directly, or when you want agreement rather than challenge.
ux-audit
AI skill for automated design audits. Evaluate interfaces against proven UX principles for visual hierarchy, accessibility, cognitive load, navigation, and more. Based on Making UX Decisions by Tommy Geoco.
understando
Pre-commit quiz that tests your understanding of code changes before allowing commits. Use when committing code through Claude Code to ensure engineers understand what they're committing. Requires hook installation - see repository README for setup.
ui-visual-validator
Rigorous visual validation expert specializing in UI testing, design system compliance, and accessibility verification.