A Claude Code plugin that explains coding-agent plans (or any topic) as a ゆっくり解説-style auto-playing presentation, narrated by ずんだもん × 四国めたん with synthesized voices. The agent writes a dialogue script; VOICEVOX turns it into audio; the browser plays it like a video — pausable, seekable, and editable live while you ask questions in chat.
In Claude Code:
/plugin marketplace add tatat/zunda-presenter
/plugin install zunda-presenter@zunda-presenter
Requirements: macOS, Node.js, Homebrew (for sevenzip). The first /zunda-presenter:setup downloads the VOICEVOX engine (~1.8GB) into ~/.cache/voicevox-engine/.
/zunda-presenter:setup— installs/starts everything (VOICEVOX engine, npm deps, server) and opens the browser.- Ask the agent to "present" a plan or topic — it writes a deck into your project's
.zunda-presenter/<deck-name>/and switches your tab to it. - Each deck has its own URL:
http://localhost:3939/d/<deck-name>(/lists all decks). Each project gets its own server; when 3939 is taken, setup picks the next free port (recorded in<project>/.zunda-presenter/server.json). - Player controls: click / Space = pause·resume, ←/→ = seek by line, C = toggle characters, click the seekbar to jump. Pause anytime and ask questions in chat; answers get spliced into the deck.
- Or ask right in the player: the ?質問 button opens a question box, and a headless agent (
claude -p, read-only access to your project) answers in Metan's voice — synthesized and played on the spot, with each question becoming its own replayable timeline next to the main one (the main script stays untouched). Questions it can't verify are logged to<deck>/questions.logfor the chat agent to pick up.
.claude-plugin/— plugin + marketplace manifestsskills/—setup,presentation,export, andpr-videoskills (symlinked into.claude/skills/for development in this repo)agents/— subagents the presentation skill spawns:outline-checker(pre-dialogue structure gate),naive-reader(blind first-viewer review of the dialogue),reading-auditor(VOICEVOX reading audit), andslide-checker(visual layout check of the rendered slides); symlinked into.claude/agents/server/— express + ws (port 3939 by default,PORTto override; one server per project, discoverable via<project>/.zunda-presenter/server.json): static serving, live reload of decks, playback state/control APIpublic/— player UI (slides, sprites, subtitles, seekbar)deck/— bundled sample deck; per-project decks live at<project>/.zunda-presenter/<deck-name>/(shareddictionary.jsonat the root), selected viaPRESENTER_DECKS_DIR/PRESENTER_DECK_DIRenv varsscripts/synthesize.mjs— VOICEVOX synthesis with content-hash caching (npm run synth)tools/export_sprites.py— composites expression × mouth sprite PNGs from the source PSDs
- VOICEVOX engine — free Japanese TTS engine (runs locally on port 50021)
- Mermaid — text-to-diagram rendering on slides
- Express / ws — server
- psd-tools / Pillow — sprite extraction from PSDs
- Voices: VOICEVOX ずんだもん / 四国めたん. When publishing generated audio, credit per the VOICEVOX terms, e.g.
VOICEVOX:ずんだもん. - Character sprites: 坂本アヒル's free 立ち絵素材 (PSDTool-compatible PSDs) — ずんだもん立ち絵素材 / 四国めたん立ち絵素材. Free to use per the bundled readme.
- Both characters belong to the 東北ずん子・ずんだもんプロジェクト — usage per the official character guideline.