{"id":"3fad24b4-184c-417e-9071-100d7ac49022","slug":"drama-cc","kind":"mcp","name":"drama-cc","summary":"One Claude Code slash command. Forty-second AI soap opera. Same characters, every episode.","owner":"KeWang0622","repoUrl":"https://github.com/KeWang0622/drama-cc","license":"MIT","licenseTier":"permissive","trust":"community","stars":4,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-05-13T09:07:38.000Z","addedAt":"2026-10-14T05:50:31.138Z","logoUrl":"https://avatars.githubusercontent.com/u/30745273?u=bcc98dc640954ec893858280ac339912be1ad10b&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","design-media"],"tags":["ai-content","ai-video","anthropomorphic","claude-code","pika","short-drama","soap-opera","video-generation"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-17T10:22:55.885Z","sample":false,"url":"https://conduits.dev/tools/drama-cc","language":"Shell","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# drama-cc\n\n> One Claude Code slash command. Forty-second AI soap opera. Same characters, every episode.\n\n![drama-cc hero](assets/hero.png)\n\n## Demo\n\n[▶ Watch the 40-second demo](https://github.com/KeWang0622/drama-cc/raw/main/assets/ball-romance-ep01.mp4) — episode 1 of `ball-romance`: basketball and soccer ball get married, have a tennis-ball baby, soccer ball cheats with a bowling ball, basketball picks up the hoop.\n\n40 seconds. 9:16 vertical. 720p. Captions perfectly synced. Generated end-to-end by one `/drama` invocation, ~15 minutes, ~$4.\n\n## Install\n\n```bash\ngit clone https://github.com/KeWang0622/drama-cc.git\ncd drama-cc\nbash scripts/dev.sh install\n```\n\nThis copies `skills/drama/SKILL.md` into `~/.claude/skills/drama/`. Claude Code picks it up on next launch.\n\nThen make sure [Pika MCP](https://www.pika.me/mcp) is connected (`/mcp` in Claude Code → authenticate Pika).\n\n## Example\n\n```bash\n# In Claude Code:\n/drama a coffee mug and a tea kettle fall in love, betray, divorce\n\n# Or continue an existing series with the same characters:\n/drama ball-romance next\n\n# Or list your series:\n/drama list\n```\n\nA 40-second captioned vertical video shows up at `~/drama-series/<slug>/episode-NN/FINAL.md`. See `examples/ball-romance/` in this repo for what a finished series looks like — including the `series.json` that locks the characters across episodes.\n\n## Why this matters\n\nEvery other AI short-drama tool — Jellyfish, Huobao, story-flicks — manages character consistency *within one drama*. None of them persist your characters across runs. Episode 2 reinvents the wheel and your basketball gets a different bow.\n\n`drama-cc` writes characters to disk as a series. The same orange basketball with the same pink bow shows up in episode 1, episode 2, episode 7. Pika MCP's reference-image and identity primitives make this work from a single Markdown skill file — no web app, no Electron workspace, no database.\n\nIt also handles the unsexy parts: Whisper can't distinguish 他/她 in spoken Chinese (homophones), so auto-captions get pronouns wrong half the time and ruin the punchline. The skill always transcribes-then-corrects-then-manual-captions. You don't have to know this.\n\n## How it works\n\n```\n   premise               ┌────── narration MP3 ────┐\n      │                  │                          │\n      ▼                  ▼                          ▼\n  ┌────────┐    ┌───────────────┐    ┌──────────────────┐\n  │ Plan   │───▶│ Phase 2: char │───▶│ Phase 3: audio   │\n  │ beats  │    │ ref images    │    │ (narration +BGM) │\n  └────────┘    │ (or reuse)    │    └──────────────────┘\n                └───────────────┘             │\n                        │                     │\n                        ▼                     │\n                ┌───────────────┐             │\n                │ Phase 4: 7    │             │\n                │ scene images  │             │\n                │ (parallel)    │             │\n                └───────────────┘             │\n                        │                     │\n                        ▼                     │\n                ┌───────────────┐             │\n                │ Phase 5: 7    │             │\n                │ seedance i2v  │             │\n                │ (parallel)    │             │\n                └───────────────┘             │\n                        │                     │\n                        ▼                     ▼\n                ┌────────────────────────────────┐\n                │ concat → mix narration → mix    │\n                │ BGM → transcribe → manual caps │\n                └────────────────────────────────┘\n                                │\n                                ▼\n                          40-second MP4\n```\n\nStage details, anti-patterns, voice/caption cheat sheet, and the full prompt patterns we tested live in [`skills/drama/SKILL.md`](skills/drama/SKILL.md). The skill includes everything Claude Code needs to run the pipeline.\n\n## Pika MCP setup\n\nPika is the video runtime. Without it, the skill can't generate. Connect at https://www.pika.me/mcp — typical cost per episode is ~$3-5 (mostly the seedance video calls).\n\nThe skill uses these Pika primitives: `generate_image` (characters + scene composites), `generate_video` with `seedance` provider (image-to-video animation), `generate_speech`, `generate_music`, `transcribe_audio`, `edit_concat`, `edit_audio_mix`, `add_captions`.\n\n## Languages\n\nChinese (default — captions use Noto CJK, voice defaults to `Calm_Woman`) and English (Inter font, default minimax-tts voice). The skill auto-detects from the premise — any CJK character triggers Chinese mode.\n\n## Roadmap\n\n- [ ] `/drama list --json` for scripting\n- [ ] Multi-character series (4+ characters with `create_kling_element` slots)\n- [ ] Optional Sora / Veo3 backends behind the same `/drama` interface\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\nThe `ball-romance` example was the first thing built with this skill; the cliffhanger from episode 1 (basketball mid-swing with the backboard) is intentionally unresolved. `/drama ball-romance next` is the natural next test.\n"}