newsroom

AI Newsroom: Generate professional podcasts, debates, and news briefings from any topic using ElevenLabs.

16 stars

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

$curl -o ~/.claude/skills/newsroom/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/data-ai/newsroom/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/newsroom/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How newsroom Compares

Feature / AgentnewsroomStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

10
from diegosouzapw/awesome-omni-skill

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.

Coding & Development

web-design-guidelines

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Analyzes source code or requirements to generate high-fidelity screen and state transition diagrams. Specialized in SPA state mapping.

ux-ui-exp

16
from diegosouzapw/awesome-omni-skill

UI/UX design intelligence with Bootstrap 5, Font Awesome, SweetAlert2. Use: /ux-ui-exp {command}

ux-spec-author

16
from diegosouzapw/awesome-omni-skill

Converts UX/design intent into testable design specifications that feed requirements. Use when defining user flows, accessibility, or design constraints.

ux-expert-dialogue

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Rigorous visual validation expert specializing in UI testing, design system compliance, and accessibility verification.