Skip to content
v0.1.4MIT

Yuya’s Explainer Skills: portable HTML explanations, slides, quizzes, narrated videos and courses.

Yuya’s Explainer Skills (YES)

SkillOutput
explainScrollable explanation with examples and sources
slidesResponsive slide deck with progressive reveals
quizMultiple-choice comprehension checks with feedback
videoNarrated HTML player with synchronized captions
zundamon-videoJapanese dialogue with Zundamon and Metan
courseLessons combining video, slides, and quizzes

The default output is one self-contained HTML file. Builders can optionally separate embedded media into an HTML + assets bundle. Publication is always a separate task.

See YES in action

Zundamon and Metan explain YES in a widescreen video

Watch or download the full introduction (MP4) — 5:13, Japanese dialogue, 1280 × 720 with audio and captions. Made with yes:zundamon-video: standing characters, expressions, and lip sync come from the actual generated HTML player. The MP4 captures the complete lesson.

Source and reproduction steps. Audio: VOICEVOX:ずんだもん / VOICEVOX:四国めたん. Artwork: 坂本アヒル. The demo's voice and artwork retain their own terms; they are not covered by YES's MIT license.

Installation

Claude Code

/plugin marketplace add yuya-takeyama/agent-plugins
/plugin install yes@yuya-plugins

Use /yes:explain, /yes:slides, /yes:quiz, /yes:video, /yes:zundamon-video, or /yes:course. Plugin metadata provides the namespace; individual skills retain short names.

Codex

codex plugin marketplace add yuya-takeyama/agent-plugins

Open the plugin browser (/plugins in CLI, or Plugins in the desktop app), select the yuya-plugins source and install yes. Start a new session and select the YES skill from the skills/mention picker. Codex uses the same skill sources and the yes plugin namespace.

Other agents

Agent Plugins-compatible hosts can load plugins/yes/plugin.json and its skills/ directory. Follow the host's plugin installation instructions. For Agent Skills-only hosts, retain the whole plugin directory so relative script dependencies resolve, and configure discovery of its skills. Copying only one skill folder is not supported. Standalone hosts may not add the yes namespace; check for conflicting names. Compatibility beyond Claude Code and Codex is format-level until listed as tested in compatibility.

Requirements

  • Python 3.11+ and uv for builders; Node 22+ for development tests.
  • Docker installed and running for speech synthesis. CPU mode works on Linux amd64 and arm64; macOS uses a Linux Docker VM (e.g. Docker Desktop).
  • Google Chrome for screenshots, or Playwright Chromium with YES_BROWSER_CHANNEL='' after installing its browser runtime.
  • First-time package/image downloads require network access. Generated single HTML files use system fonts and embedded media and work offline.

Recommended places to share

We recommend Claude Artifacts when working in Claude, or ChatGPT Sites when working in ChatGPT/Codex with Sites available. Give the agent the generated HTML and ask it to prepare a shareable page, preserve the media and credits, and preview it before sharing. YES creates the files; hosting is a separate step and may need adaptation for the destination.

  • Claude Artifacts: ask Claude to publish the single HTML as an artifact, then select its audience in Share. In Claude Code, artifacts are single pages with a 16 MiB rendered-page limit; adjacent assets and relative file links do not work, so use YES's single-file output rather than its bundle. Availability and external sharing depend on your account and organization. See Claude Code artifacts and sharing options.
  • ChatGPT Sites: in Work on ChatGPT web, or Work/Codex in the desktop app, ask to build a website from the HTML (or mention @Sites). Review the preview, then choose the audience and publish. Public access requires Anyone on the internet to be available and selected. Sites is in public beta; availability and publishing permissions depend on the plan, rollout, and workspace settings. See Creating and using ChatGPT Sites.

Checked against official documentation on 2026-10-07. Test playback, interactions, and access as an intended viewer after publishing. Do not assume a sharing link is anonymous access: Anthropic's general sharing guide and Claude Code documentation currently differ on sign-in requirements. Hosting these examples on either service is not part of the repository's automated tests.

Local speech command

From the repository root (or adjust the plugin path after installation):

plugins/yes/bin/yes-speak 'こんにちはなのだ。' -o narration.wav
plugins/yes/bin/yes-speak --list-speakers
plugins/yes/bin/yes-speak --list-speakers --json
plugins/yes/bin/yes-speak --text '説明するわ。' --speaker 四国めたん/ノーマル -o metan.wav
plugins/yes/bin/yes-speak --start
plugins/yes/bin/yes-speak --stop

The wrapper starts voicevox/voicevox_engine:cpu-ubuntu24.04-0.25.2 using docker run, bound only to a dynamically assigned localhost port. It reuses the named yes-voicevox-0-25-2 container across sentences and restarts it after a stop. The container is left running for subsequent builds; --stop stops only this managed container. No host directories or Docker socket are mounted into it. The first download is large. An occupied name belonging to another container is an error, not permission to remove that container. Existing output files require --force to replace. Docker initialization can take time; --startup-timeout controls the engine readiness wait after Docker starts.

--stdin accepts piped text. --speed accepts 0.5–2.0. Output is validated 24000 Hz mono 16-bit WAV. Preserve the printed VOICEVOX credit when distributing audio and follow the selected character's terms. Each WAV is accompanied by <filename>.license.txt containing its credit, terms links, and reuse conditions. --force applies to both files. Keep the companion with the WAV and display the credit in the listening context; audio-only delivery may need a spoken credit. The command saves files and does not automatically launch an audio player.

YES supports only ずんだもん and 四国めたん, including their talk styles. --list-speakers lists only these two voices with their credits and terms URL. Other voices are rejected by name and style ID. Both supported voices share the SSS voice terms; character and artwork rights remain separate. See voice and artwork conditions.

Examples

uv run plugins/yes/skills/quiz/build.py build plugins/yes/skills/quiz/example/quiz.json
uv run plugins/yes/skills/video/build.py build plugins/yes/skills/video/example
uv run plugins/yes/skills/video/build.py build plugins/yes/skills/zundamon-video/example --format bundle
uv run plugins/yes/skills/video/build.py shoot plugins/yes/skills/video/example

Single output: out/video.html or out/quiz.html. Bundle output: out/video-bundle/index.html with relative assets/. Serve bundles using any static HTTP server. Do not upload just index.html without its assets. Build intermediates, transcript, and captions remain beside the delivered file. --max-bytes 16777216 enforces a 16 MiB HTML limit when a destination needs it.

The video format is an HTML player, not an MP4. Progress storage is best-effort localStorage with in-memory fallback. No Stash connection, API key, or cloud speech account is required. zundamon-video uses both standing characters, expressions, and lip sync by default; voice-only dialogue is an explicit option. The first dialogue build downloads the character sources into a local cache. For character artwork terms see third-party notices.