Turn Codex into a creative engine

Connect agent-media to Claude Code, Cursor, and Claude Desktop — and generate lip-synced UGC videos right from your chat, with captions when you want them.

1

Get your API key

Grab a ma_… key from the dashboard (API Keys), or run agent-media login.
2

Edit ~/.codex/config.toml

Add the agent-media server (paste your ma_… key):
[mcp_servers.agent-media]
command = "npx"
args = ["-y", "-p", "@agentmedia/mcp-server@latest", "agent-media-mcp"]
env = { AGENT_MEDIA_API_KEY = "ma_..." }
3

Generate from chat

Restart Codex, then ask: “Make a UGC video with agent-media.” The make_ugc tool self-describes via tools/list.

Available skills

Each is callable from MCP, the CLI, the skill pack, or the REST API — same skills, one Bearer token.

Make Subtitles

Burn TikTok / Hormozi-style captions onto any vNext video (R2-hosted). Auto-transcribes via Whisper when transcript is omitted. Styles: hormozi (default), tiktok, minimal.

15 credits · ~20sRun →

Make Podcast

Two saved characters recording a podcast in ONE room — the camera cuts to whoever is speaking, and each actor stays in their IDENTICAL seat, desk and mic position across every cut. Provide character_a and character_b (saved char_… ids from list_characters, or https image URLs) and an ordered `script` of A/B dialogue turns (each { speaker: "A" | "B", line: "…" }). The pipeline renders ONE shared two-shot, locks a close-up per actor, animates every turn with native lip-synced Seedance voice (each actor keeps a consistent look AND voice across the whole episode), and hard-cuts the turns together as a 9:16 vertical video. Long turns auto-split into ≤15s takes. Captions are OPT-IN — ask the user first, then set subtitles:true.

~280–1400 credits · 8–30 minRun →

Agent-Media UGC Video

The ONE tool for UGC video. Give a `script` (any length) and optionally a `person` description, an `image` (photo), or a `character` (saved char_… or sheet URL); it returns the finished vertical video. Short script → one clip; long monologue → full multi-take (never trimmed); pass `broll_url` → narrated b-roll overlay. Captions are OPT-IN — ASK the user if they want them (and which style) before generating; set `captions:true` only if they say yes. You never pick a sub-tool.

from ~155 credits · 6–25 minRun →

Prefer raw HTTP?

Every skill is also a REST endpoint, with the same Bearer token. Poll GET /v1/skills/runs/<id> for the result.

curl -X POST \
  https://api.agent-media.ai/v1/skills/make_ugc/run \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "script": "...", "person": "a friendly woman" }'