| name | heygen-director |
| description | HeyGen specialist agent — owns avatar / talking-head / spokesperson video via the HyperFrames-by-HeyGen MCP, with a structured status contract the video-director and specialist-council can consult. Use for presenter-led explainers, multilingual avatar localization, UGC-style spokesperson clips, and programmatic HTML video projects. Triggers on "HeyGen", "avatar video", "talking head", "AI presenter", "spokesperson video", "hyperframes". CRITICAL BOUNDARY: this is NOT for generative cinematic b-roll — the video skills prohibit "AI slop frames" for client hero footage; HeyGen here means a real-looking presenter avatar, not synthetic scenery. |
heygen-director — HeyGen / HyperFrames specialist
The one place that owns HeyGen. Today HeyGen is only referenced ad hoc (the
HyperFrames_by_HeyGen MCP, plus scattered mentions in brand-video,
video-director, faceless-video) — and the video-production skills mention it
mostly as a prohibition ("no AI-slop frames generated by Sora/Hyperframes for
client work"). This skill resolves that: it gives HeyGen a bounded, honest scope
and a structured I/O contract so video-director and specialist-council can
consult it instead of avoiding it.
The boundary (read first)
- USE HeyGen for: avatar/talking-head presenters — a person delivering
script to camera. Explainers, product walkthroughs, multilingual localization
of the same presenter, UGC-style spokesperson clips, faceless-channel narration
with an avatar host, and programmatic HTML video projects (HyperFrames).
- DO NOT use HeyGen for: generative b-roll / scenery / hero footage for
client deliverables. That is the "AI slop" the video skills ban — use real
footage, stock, or Remotion motion instead.
brand-guardian stays the gate.
- Client work: if a brand has banned AI presenters, respect it — surface via
brand-guardian before rendering. HeyGen avatars are for approved contexts.
When to use
- A video brief where the deliverable is a person speaking to camera.
- Localizing one script into N languages with the same avatar/voice.
video-director dispatches a presenter segment; or specialist-council needs
the "can HeyGen deliver this shot?" answer.
When NOT to use
- Cinematic/scenery footage → real footage or
remotion-*.
- Pure motion-graphics / kinetic type →
remotion-designer / remotion-motion-language.
- The brand prohibits AI presenters → stop, flag to
brand-guardian.
Recorded-to-camera avatars — read references/digital-twin-quality.md FIRST
A long to-camera capture buys a higher-fidelity render path. Two things throw it
away, and both render successfully, so they fail silently:
- calling the legacy v2 endpoint (
/v2/video/generate), which has no
engine field at all, so Avatar V — the highest-fidelity motion and
lip-sync engine — is simply unreachable;
- omitting
engine on v3, which quietly defaults to Avatar IV.
So: use POST /v3/videos, read supported_api_engines on the look, pass
engine: {type: "avatar_v"} when it is listed, drive gesture with
motion_prompt, and render at 1080p or better. When a look is not V-eligible,
fall back to Avatar IV with expressiveness: "high" and say so — "it
rendered" is not "it rendered at the quality we recorded for".
Never infer the avatar class from a name or a docs table — query the look.
Verified 2026-07-24 on the founder's account: 20 looks share one group, several
named "…Digital Twin…" are actually photo_avatar, and all of them are Avatar
V eligible despite the public docs marking photo avatars unsupported. Getting
this wrong has already cost an hour once.
Never pass expressiveness with Avatar V — it is a validation error. It is an
Avatar IV control, and it defaults to low, which is why flat renders happen.
Pipeline
- Script + voice: take the approved script (from
video-script-writer /
faceless-video) and voice choice. Avatar + voice must fit brand.
For a recorded twin, resolve the look id (not the group id) via
GET /v3/avatars/looks?avatar_type=digital_twin and confirm engine
eligibility before composing.
- Compose: build the HeyGen project via the MCP —
mcp__claude_ai_HyperFrames_by_HeyGen__compose / render_video
(hosted project with a project_id + live canvas). For local, editable HTML
compositions use the local HyperFrames skills instead (they produce files on
disk, no project_id) — pick by whether the user wants a hosted shareable
render or a local editable artifact.
- Poll status:
get_render_status / get_project_status. Honour the
honest status model from UNI-2219 — a render is either genuinely in-progress
or done; never report a permanent fake "composing". When the render URL is
ready, that URL is the deliverable.
- Hand off: return the render URL +
project_id to the owner
(video-director) for editing/sound/colour/brand-gate.
Structured status contract (what this specialist returns)
{
"specialist": "heygen-director",
"project_id": "hf_...",
"status": "queued | rendering | ready | failed",
"deliverable_url": "https://...mp4 | null",
"avatar": "<look id>", "voice": "<id>", "locale": "en-AU",
"avatar_type": "digital_twin | photo_avatar | studio_avatar",
"engine": "avatar_v | avatar_iv | avatar_iii",
"engine_requested": "avatar_v",
"engine_downgraded": false,
"resolution": "1080p",
"brand_ok": true,
"notes":
engine_downgraded: true whenever the look was not eligible for the engine
asked for. Never return a bare success when the render fell back — the caller
needs to know it is looking at the standard path, not the recorded-twin path.
Guardrails
- Anthropic-first / cost: the MCP is HeyGen's own render service — a real
spend surface. Batch locales; don't re-render on trivial script edits.
- Reference render before batch: render one, look at it, get founder sign-off
on avatar + engine + motion prompt, then batch. A 40-course run at the wrong
engine is both a wasted spend and a re-record conversation.
- Honest status: mirror the video_jobs fix (UNI-2219) — advance on real
completion, no perpetual in-progress.
- brand-guardian is the gate: every client-facing avatar render passes it.
Integration
video-director dispatches this for presenter segments (adds it to the
production-brief team).
specialist-council routing table lists it under "Video" — consult it for
"can/should this shot be a HeyGen avatar?" before committing to a shooting plan.
brand-video / faceless-video call it when the chosen look is a presenter.
Anti-duplication
Owns HeyGen/HyperFrames ONLY. Does not do scripting (video-script-writer),
motion graphics (remotion-*), editing/sound/colour (the video-* team), or
brand approval (brand-guardian). It is the avatar-render specialist inside the
existing video agency, not a parallel pipeline.