A multi-agent system that researches trending topics in AI, Tech, and Startups, writes short-form video scripts (30s, 60s, 2min reels), and iteratively edits them for clarity, conversational tone, and viral hooks.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Research Agent │────▶│ Scriptwriter Agent│────▶│ Editor Agent │
│ │ │ │ │ │
│ • Topic discovery│ │ • 30s scripts │ │ • Clarity pass │
│ • Deep research │ │ • 60s scripts │ │ • Tone tuning │
│ • Data & stats │ │ • 2min scripts │ │ • Hook optimizer │
└─────────────────┘ └──────────────────┘ └─────────────────┘
| Agent | Purpose |
|---|---|
| Research Agent | Discovers trending topics and produces detailed research briefs with stats, narratives, and surprising angles |
| Scriptwriter Agent | Converts research into multiple script lengths with hooks, visual cues, and captions |
| Editor Agent | Iterates each script through multiple passes, scoring hook power (1-10), clarity (1-10), and conversational tone (1-10) until approved or max passes reached |
# Clone and install
pip install -r requirements.txt
# Configure your LLM provider
cp .env.example .env
# Edit .env with your API keypython main.py run --category ai --count 3python main.py run --topics "GPT-5 rumors, AI agents replacing SaaS, YC W25 batch trends"python main.py single "OpenAI's new reasoning model"python main.py discover --category startups --count 5| Flag | Default | Description |
|---|---|---|
--category |
all |
ai, tech, startups, or all |
--count |
3 |
Number of topics to discover |
--topics |
— | Comma-separated topics (skips discovery) |
--variations |
3 |
Script variations per topic |
--edit-passes |
2 |
Max editing iterations per script |
--output |
output/ |
Output directory |
Each run creates a timestamped directory:
output/
└── 20250101_143022/
├── research/ # Research briefs per topic
├── scripts_draft/ # Raw scripts from Scriptwriter
├── scripts_final/ # Polished scripts from Editor
│ └── 1_topic_name/
│ ├── 30s.md
│ ├── 60s.md
│ └── 2min.md
└── summary.json # Structured run metadata
Set LLM_PROVIDER in .env:
openai— GPT-4o, GPT-4-turbo, etc.anthropic— Claude Sonnet, Claude Opus, etc.