HeyGen avatar and talking-head video: prompt-to-video agent, multi-scene avatar video, status polling, avatar and voice lists. Trigger phrases: heygen, avatar video, talking head video, video agent.
npx skills add https://github.com/Anil-matcha/awesome-muse-connectors --skill heygen
Generate talking-head and avatar videos with HeyGen's self-serve API: one-shot prompt-to-video via the Video Agent, or multi-scene avatar videos assembled from stock or custom avatars and voices. The best self-serve avatar-video path in the catalog; translation/dubbing endpoints also exist. Use when Michael wants presenter-style or explainer videos.
All commands go through bin/heygen.py:
bin/heygen.py auth # verify the API key (free)
bin/heygen.py avatars --limit 25 # list stock avatars (custom avatar IDs come from the app)
bin/heygen.py voices --limit 25 # list voices
bin/heygen.py video-agent --prompt "Explain compounding in 30 seconds" # one-shot prompt-to-video
bin/heygen.py video-generate --json '{"avatar_id": "...", "voice_id": "...", "script": "..."}' # multi-scene
bin/heygen.py video-status --video-id <video_id> # poll until completed
video-agent takes a plain prompt. video-generate needs the full multi-scene spec as --json (avatar_id, voice_id, script or scenes, per HeyGen's docs). Both print a video_id; poll video-status until completed, then download the MP4.
heygen (credential is collected as custom.heygen)credentials.request_api_access); created at app.heygen.com/apiapi.heygen.combin/heygen.py auth (must return "ok": true). The key is sent verbatim as the X-Api-Key header.video-agent and video-generate call. Renders take 2-5 minutes; poll with backoff.bin/heygen.py). Do not print, log, or transmit the key value.🧪 Draft: written from HeyGen's public API docs via the research dossier; not yet live-tested end-to-end.
Take anil-matcha/heygen from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.