Skip to content

Repository files navigation

zunda-presenter

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.

Install

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/.

Usage

  • /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.log for the chat agent to pick up.

Structure

  • .claude-plugin/ — plugin + marketplace manifests
  • skills/setup, presentation, export, and pr-video skills (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), and slide-checker (visual layout check of the rendered slides); symlinked into .claude/agents/
  • server/ — express + ws (port 3939 by default, PORT to override; one server per project, discoverable via <project>/.zunda-presenter/server.json): static serving, live reload of decks, playback state/control API
  • public/ — player UI (slides, sprites, subtitles, seekbar)
  • deck/ — bundled sample deck; per-project decks live at <project>/.zunda-presenter/<deck-name>/ (shared dictionary.json at the root), selected via PRESENTER_DECKS_DIR / PRESENTER_DECK_DIR env vars
  • scripts/synthesize.mjs — VOICEVOX synthesis with content-hash caching (npm run synth)
  • tools/export_sprites.py — composites expression × mouth sprite PNGs from the source PSDs

Software

Voices & character art

About

ずんだもん × 四国めたん narrate your coding-agent plans as auto-playing presentations (Claude Code plugin, VOICEVOX)

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages