VidCraft is a Claude Code plugin for the professional production of AI-generated videos with HeyGen and Synthesia. It guides you through the full production lifecycle β from concept development to script and storyboard, all the way to publishing with subtitles and thumbnails.
VidCraft does not generate the videos itself β that happens in HeyGen or Synthesia. What VidCraft does: everything before and everything after. Concept, script, storyboard, asset planning, quality gates, platform-optimized formatting, post-generation review, subtitles, promo copy, thumbnails. You walk in with a topic and walk out with a release-ready video.
Who VidCraft is for:
Who VidCraft is not for:
Most AI video workflows look like: copy ChatGPT script β paste into HeyGen β hope. VidCraft replaces this with a pipeline of quality gates that block until the script is actually release-ready.
No script enters generation without running through a 15-point checklist β timing (WPM calculation), readability (Flesch score), hook quality, CTA clarity, AI-language scan, sentence length, scene duration, and a pronunciation advisory (TTS-unfriendly numbers and acronyms). See Quality System.
heygen-engineer and synthesia-engineer are not interchangeable. HeyGen allows one background per scene, Synthesia is slide-based. Pause syntax, character limits, Voice Director presets, Avatar IV Motion Prompts, Synthesia gesture tags β every platform has its own rules, hard-coded into the skills. See Platforms.
doc-analyzer parses PDF/DOCX/MD, extracts code blocks, lists, and headings, suggests video structure, and recommends a video type. A plugin README becomes a 3-episode tutorial series β without you assembling the script by hand. See Document Analysis.
Complete worked example: Workflow Example
| Requirement | Version | Notes |
|---|---|---|
| Python | 3.10+ | Recommended: Python 3.12 |
| Claude Code | 1.0+ | CLI, Desktop, or VS Code Extension |
| pip | 22+ | For venv dependencies |
| HeyGen / Synthesia Account | current | At least one for generation |
| OpenAI Whisper | optional | For subtitle-generator |
| ffmpeg | optional | For audio extraction during subtitling |
git clone https://github.com/markus-michalski/vidcraft.git ~/projekte/vidcraft
~/projekte/vidcraft/claude plugin install ~/projekte/vidcraft
In Claude Code:
/vidcraft:setup
This automatically creates:
~/.vidcraft/venv/~/.vidcraft/config.yaml~/.vidcraft/cache/nano ~/.vidcraft/config.yaml
Most important value: content_root (where your video projects live).
Restart Claude Code. Verify with /vidcraft:session-start.
# ~/.vidcraft/config.yaml
paths:
content_root: "~/video-projects"
video_root: "~/video-projects/videos"
assets_root: "~/video-projects/assets"
overrides: "~/video-projects/overrides"
defaults:
language: ["en", "de"] # single value or list for multi-language
wpm: 140 # words per minute for timing
platform: "heygen" # default platform
heygen:
default_avatar: ""
default_voice: ""
synthesia:
default_avatar: ""
default_voice: ""
brand:
name: "Company Name"
primary_color: "#2563EB"
secondary_color: "#10B981"
tone: ["professional", "friendly"]
| Path | Description |
|---|---|
~/.vidcraft/config.yaml |
User configuration |
~/.vidcraft/cache/state.json |
State cache (automatic) |
~/.vidcraft/venv/ |
Python virtual environment |
{content_root}/projects/ |
Project files (Markdown) |
{content_root}/IDEAS.md |
Video ideas (append-style Markdown) |
{video_root}/projects/ |
Generated videos |
{assets_root}/projects/ |
Screenshots, images |
| Type | WPM | Reason |
|---|---|---|
| tutorial | 120-140 | Slow for complex steps |
| installation-guide | 130-145 | Clear, sequential |
| explainer | 140-150 | Medium to fast |
| marketing-spot | 150-160 | Energetic |
| social-short | 150-170 | Very fast |
1. /vidcraft:new-project "OXID Gallery Tutorial" tutorial
β Directory structure under projects/oxid-gallery-tutorial/
2. /vidcraft:doc-analyzer ~/projekte/oxid-gallery/README.md
β Analysis: 3,500 words, 12 sections
β Recommendation: tutorial series (3 episodes)
3. /vidcraft:project-conceptualizer oxid-gallery-tutorial
β 5-phase concept: audience, tone, episode structure
4. /vidcraft:brief-creator oxid-gallery-tutorial
β Creative brief with goals, audience, tone, constraints
5. /vidcraft:script-writer oxid-gallery-tutorial 01-installation
β Script with narration and visual cues
6. /vidcraft:script-reviewer oxid-gallery-tutorial 01-installation
β 15-point check
7. /vidcraft:storyboard-creator oxid-gallery-tutorial 01-installation
β Scene-by-scene visual direction
8. /vidcraft:screenshot-planner oxid-gallery-tutorial 01-installation
β Define screenshot positions + recordings
9. /vidcraft:asset-collector oxid-gallery-tutorial 01-installation
β Verify asset inventory
10. /vidcraft:pre-generation-check oxid-gallery-tutorial 01-installation
β Quality gates block until everything is ready
11. /vidcraft:heygen-engineer oxid-gallery-tutorial 01-installation
β HeyGen-specific format (scenes, pause markers, avatar, Voice Director)
12. (Manual generation in HeyGen)
13. /vidcraft:video-reviewer oxid-gallery-tutorial 01-installation
β 20-point post-generation review
14. /vidcraft:subtitle-generator oxid-gallery-tutorial 01-installation
β Whisper transcription + translation β SRT
15. /vidcraft:promo-writer oxid-gallery-tutorial 01-installation
β YouTube description + social posts (FB/IG/X/LinkedIn)
16. /vidcraft:thumbnail-director oxid-gallery-tutorial 01-installation
β Thumbnail concept
17. /vidcraft:release-director oxid-gallery-tutorial 01-installation
β Final QA + distribution channels
Complete worked example: Workflow Example
Every project is its own directory under {content_root}/projects/:
oxid-gallery-tutorial/
βββ README.md # Project metadata (YAML frontmatter)
βββ brief.md # Creative brief
βββ concept.md # Concept document
βββ research/ # Audience, sources, doc analyses
β βββ audience.md
β βββ doc-analysis.md
βββ episodes/
β βββ 01-installation/
β β βββ README.md # Episode metadata + status
β β βββ script.md # Scenes with narration + visual cues
β β βββ storyboard.md # Visual direction per scene
β β βββ shot-list.md # Production-ready shot list
β β βββ ASSETS.md # Asset inventory
β β βββ scenes/
β β βββ 01-hook.md
β β βββ 02-step-one.md
β βββ 02-configuration/
βββ assets/ # Screenshots, images, recordings
βββ output/ # Generated videos, SRTs
βββ promo/ # YouTube description, social posts
βββ CLAUDE.md # Project-specific rules (optional)
Not Started β Script Draft β Script Reviewed β Storyboard
β Assets Collected β Ready for Generation β Generated β QA Passed β Final
Outline β Script Written β Visual Defined β Assets Ready β Generated β Approved
raw β explored β developed β ready β promoted (or shelved)
The MCP server vidcraft-mcp provides 36 tools in these categories:
| Category | Tools | Examples |
|---|---|---|
| State Management | 8 | list_projects, find_project, get_project_full, search |
| Content Operations | 9 | create_project_structure, create_episode, create_scene, update_field |
| Document Analysis | 5 | analyze_document, extract_key_points, suggest_video_structure |
| Platform Integration | 5 | validate_platform_limits, heygen_format_script, synthesia_format_script |
| Script Analysis | 3 | analyze_timing, check_readability, check_pronunciation |
| Quality Gates | 2 | run_pre_generation_gates, validate_project_structure |
| Ideas & Meta | 4 | create_video_idea, get_video_ideas, get_plugin_version, validate_structure |
Note: The Ideas tools are vidcraft-specific
create_video_idea/get_video_ideas(renamed fromcreate_idea/get_ideas) to avoid bare-name collisions withstoryforge-mcp.create_ideawhen both plugins are loaded simultaneously.
Important: Skills must never parse project files directly. Every state access goes through MCP tools.
Detailed list with parameters: see plugin repo at servers/vidcraft-server/server.py.
VidCraft registers one hook:
validate_scene.py)Runs after every write/edit on scene files. Checks:
Script Written or higherInside the knowledge/ folder live four reference documents that skills load on demand:
| File | Contents |
|---|---|
ai-language-patterns.md |
AI-typical phrases, filler, hedging β used by voice-checker and script-reviewer |
platform-checklist.md |
HeyGen + Synthesia hard constraints, pause syntax, post-production marker |
script-writing-rules.md |
Platform-independent narration and on-screen-text rules |
status-workflow.md |
Status-to-next-skill matrix for next-step |
These files are the single source of truth. Skills reference them instead of duplicating rules.
Deeper documentation on separate pages:
Symptoms: Skills show errors, no MCP tools available.
Check:
claude plugin list | grep vidcraft
ls ~/.vidcraft/venv/bin/python3
~/.vidcraft/venv/bin/pip list | grep mcp
Solution:
/vidcraft:setup
Symptoms: list_projects shows nothing despite existing projects.
Solution:
/vidcraft:session-start
Rebuild happens automatically from the Markdown files.
Symptoms: analyze_document throws import errors.
Solution:
~/.vidcraft/venv/bin/pip install pdfplumber python-docx
Symptoms: Even though the script looks done, the gate still blocks.
Cause: Status fields in the YAML frontmatter were not updated.
Check:
grep -A1 "status:" ~/video-projects/projects/MY-PROJECT/episodes/01-FOO/README.md
Solution: Set status to Script Reviewed after script-reviewer ran.
Symptoms: One episode gets split into many HeyGen scenes unexpectedly.
Cause: Scenes require multiple backgrounds or avatar switches β HeyGen allows exactly one background and one avatar per scene.
Solution:
analyze_timing shows scene length hot spotsSymptoms: subtitle-generator reports "no video file found".
Cause: Final video was not placed in the output/ directory.
Solution: Manually copy the finalized video to {video_root}/projects/MY-PROJECT/episodes/01-FOO/final.mp4.
Q: Does VidCraft generate the videos automatically?
A: No. VidCraft optimizes the preparation and review process. Generation happens manually in HeyGen or Synthesia. API integration is on the roadmap but not part of v1.x.
Q: Can I use both platforms at the same time?
A: Yes. Each episode can have its own platform. The creative work (script, storyboard, assets) is platform-independent β only heygen-engineer and synthesia-engineer format platform-specifically. So you can render the same script twice without rework.
Q: Which document formats are supported?
A: PDF, DOCX, and Markdown. The doc analyzer extracts structure, code blocks, lists, and headings. For web sources, use the researcher skill.
Q: Can I create custom video types?
A: Yes. Use /vidcraft:video-type-creator [name] to create new type definitions with pacing rules, structure templates, and best practices. Lives under video-types/{name}/README.md.
Q: Do I need a HeyGen/Synthesia account?
A: Yes, for generation. VidCraft itself is open source. Platform subscriptions cost extra (as of 2026: HeyGen from ~$24/month, Synthesia from ~$22/month).
Q: How does the plugin handle AI-language?
A: voice-checker scans narration for typical AI patterns: abstract noun stacks, hedging, generic comparisons. The patterns live versionably in knowledge/ai-language-patterns.md β pull requests welcome.
Q: Does this work in English?
A: Yes. Language is configurable via defaults.language (single or list). Multi-language projects keep separate script variants per language. All skills are language-neutral.
Q: What's the difference between VidCraft and a normal ChatGPT workflow?
A: Pipeline instead of prompt. ChatGPT gives you output, then you start from zero again. VidCraft holds state (project, episode, scene), tracks status, enforces quality gates, and produces platform-specific output. That's the difference between "made one video" and "repeatable production workflow."
Q: Can I use VidCraft commercially?
A: Restricted. License is PolyForm Noncommercial 1.0.0. Private, academic, internal company workflows without external resale β yes. SaaS offerings or commercial republishing β no, not without a separate license deal. Reach out via GitHub Issues.
PolyForm Noncommercial 1.0.0 β GitHub Repository
Built by Markus Michalski