faceless-explainer
Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.
Rank
62
Safety
84
Downloads
3.5k
Updated
Oct 9, 2026
Version
1.0.45
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 3.5K downloads reported by the source. Last updated 10/9/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 9, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 9, 2026
- Adoption signal
- 3.5K downloadsadoption · observed Oct 9, 2026
- Latest release
- 1.0.45release · observed Oct 8, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s17fpgb0p797dzkbtbrxw5x1hh89qs64:faceless-explainer- Install using `clawhub skill install s17fpgb0p797dzkbtbrxw5x1hh89qs64:faceless-explainer` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/heygen-com/faceless-explainer before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-faceless-explainer/snapshot"
Documentation
CLAWHUB
154,925 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
--- name: faceless-explainer description: "Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes." --- **Plugin installs:** Before setup or freshness commands, follow [plugin execution rules](../hyperframes/references/plugin-installation.md) when this skill is inside a HyperFrames plugin. Standalone installs keep the update instructions below. > **First, keep this skill fresh — confirm with the user before running:** `npx hyperframes skills update faceless-explainer`. A fast no-op when everything is current; otherwise it refreshes this skill plus the core domain skills it depends on before you rely on them. > **media-use**: Before sourcing audio/images/logos, call `/media-use` to resolve BGM/SFX/images from the HeyGen catalog and brand logos from their official sources. Run `--adopt` first to register existing assets. See `/media-use` skill. When the host app provides its own music or sound-effect tools, use those for music and sound effects. # Faceless Explainer to HyperFrames Use this skill to turn a body of text into an explainer video: pick a design system, plan a teaching story, and build it frame by frame in HyperFrames. **Faceless** means every visual is invented downstream — there is no capture step and no real asset inventory. > **The front door is `/hyperframes`.** You are the orchestrator. Run each step, verify its gate, and only then continue. This skill is for **explaining a topic from text, with no product and no website to capture**. Any other intent, a bare "make a video", or any uncertainty → read `/hyperframes` first — the intent layer owns every route decision, and a fresh creation arriving here without `BRIEF.md` goes through it anyway (Setup's opening rule). You are the orchestrator. Work in `videos/<project>/`. Run steps in order and pass each gate before continuing. User-gated steps are Step 0, Step 3, and Step 6. Read `../hyperframes/references/brief-contract.md` before Step 0 — it defines the gate types and how `BRIEF.md`'s `flow`/`storyboard` derive the mode that governs the Step 3/4/6 gates. Do every step yourself except Step 5, where you dispatch one sub-agent per frame. Do not put design or motion rules here; those live in the frame-worker sub-agent, this skill's local `../hyperframes-animation/rules/` + `../hyperframes-animation/blueprints/`, and `hyperframes-creative`. Workflow: Step 0 setup → `hyperframes.json`; Step 1 brief → `capture/extracted/`; Step 2 design system → `frame.md`; Step 3 storyboard/script → `STORYBOARD.md` and `SCRIPT.md`; Step 3.1 audio → `audio_meta.json`; Step 4 visual design → enriched `STORYBOARD.md`; Step 5 frames → `compositions/frames/NN-*.html` and `ind
_meta.json
{
"ownerId": "kn77d06grj6xqp3dqwkk4bavhn89pegt",
"slug": "faceless-explainer",
"version": "1.0.45",
"publishedAt": 1791491426649
}references/cut-catalog.md
# Cut catalog — within-frame seams (worker-built) > **A worker build-recipe (Step 5) — the sibling of `../../hyperframes-animation/rules/`, not a second motion doc.** These are within-frame cuts the **frame worker builds INSIDE its own composition** (Z-scale + blur + opacity tweens, or per-word x-staggers, all on the frame's own paused GSAP timeline). They are **not** the between-frame transition: story owns that via `transition_in`, which the harness's injector stamps from a **separate registry vocabulary** (`crossfade` / `blur-crossfade` / `push-slide` / `zoom-through` / `squeeze`) — the catalog names here (**cut-the-curve / inverse-zoom / waterfall**) are **not** valid `transition_in` values. Use this catalog when a frame's shot sequence has an internal seam — a within-scene text/element swap, a **Scene-to-Scene** cut (a `Scene` is a time window WITHIN one frame, **not** a frame-to-frame boundary), or a text-to-text line change — and you want it to read as one continuous move instead of a hard slideshow cut. (`zoom-through` lives in both worlds: a whole-frame wrapper transition in the registry, an element-level Z-cut here — same idea, different scope.) Four techniques that create depth and continuity: 1. **Zoom-Through** — within-scene text swaps, Z-axis, moving TOWARD the viewer 2. **Inverse Zoom-Through** — Z-axis swaps moving AWAY from the viewer 3. **Cut the Curve** — between-scene transitions on x/y 4. **Waterfall Cut** — word-by-word cut-the-curve with staggered exits and entries All four are the same underlying principle: **cut at peak velocity, match direction and speed on both sides of the cut.** The differences are axis, scope, and granularity. **Choosing which at a seam:** for an UNFINISHED phrase (building one larger idea across several visually distinct scenes that still approach the same point — multi-line text, a run of consecutive cards) use **cut-the-curve** / **waterfall**. For a STATE CHANGE (turning to a NEW part of the video — most often hook → context, between two distinct chapters) use **zoom-through**, and **inverse zoom-through** for an arrival / payoff beat. Chain these so the frame's internal seams feel like one camera moving through the content. --- ## Blur Logic (applies to all Z-axis variants) Blur sells the speed at the cut, but it must scale with the SUBJECT SIZE: | Subject | Peak blur | Why | | ------------------------------------------------------ | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Text-scale (headline, line, word group) | **10px** | At 20px text smears into illegibility — the eye loses the
references/motion-language.md
# Motion language — the move vocabulary + the motion doctrine + the seek-safe core > The motion layer for **Step 4 (Visual design)**. When you write a frame's **time-coded shot sequence**, you name each scene's move **inline from the vocabulary below** — a named palette of the moves the golden corpus actually uses. Each move carries the **backing rule id** in this skill's local `../../hyperframes-animation/rules/`; cite that id so the move resolves to a real recipe when a **frame worker** implements it in Step 5 (the worker reads the rule body in `../../hyperframes-animation/rules/<id>.md` — it reproduces the move, it does not guess from the name). You name motion by **role / move name**, never by raw GSAP curve, ms, or stagger formula — the worker maps the curve. Between-frame **transitions are not yours**: story names `transition_in`, the harness injects it; that injected transition **is** the frame's exit. For cuts a worker builds INSIDE a frame (within-scene swaps, scene-to-scene seams), see the catalog in `cut-catalog.md`. A good explainer feels like one continuous film — one camera, one motion feel, **smooth and timed to the voiceover** — not a pile of slides that animate once and freeze. In an explainer the development _is_ the teaching: the formula assembling, the diagram gaining a layer, the count-up landing. The doctrine in Part 2 is load-bearing: when in doubt, do what it says. --- # Part 1 — the move vocabulary Reach into this palette when naming a scene's motion. Pick the move that matches the beat, name it in the shot sequence, and cite the rule id after `→`. The blueprints (`../../hyperframes-animation/blueprints/`) name these same moves in their `rule mapping`; you're drawing from one shared palette. Compose 2–4 across a shot's scenes (entrance → sequential reveal → settle), not all at once. ## Kinetic type - **hard-cut / flash word-swap** — a word or line replaces the previous one on an instant cut (no fade/roll); the swap itself is the beat. → `discrete-text-sequence` - **in-place token cycle** — a fixed line holds and only its variable slot changes, token → token → token. → `discrete-text-sequence` - **per-word staggered reveal** — a phrase assembles word-by-word (or chunk-by-chunk), each landing on its own beat. → `dynamic-content-sequencing` - **kinetic beat-slam** — short phrases slam in on a shared percussive beat array, each with a distinct entrance, resolving on a locked finale; the recipe for "punchy / rhythmic" taglines. → `kinetic-beat-slam` ## Typewriter - **type-on with caret** — text types in character-by-character behind a blinking caret. → `discrete-text-sequence` (+ `context-sensitive-cursor` for the caret blink / color) - **backspace-and-retype** — the line types, deletes the last word(s), and retypes a new one (typo-correction, reframe). → `discrete-text-sequence` (+ `context-sensitive-cursor`) ## Count-up / data - **value-scaled counter** — a number counts up and its font size grows with the value,
references/story-design.md
# Story design — faceless explainer video Use this reference in Step 3 to write `STORYBOARD.md` and `SCRIPT.md` for a faceless explainer — a topic, concept, how-to, listicle, or narrative explainer built from text, with **no product, no website, and no captured assets**. This file defines the story: what the video teaches, in what order, and why each frame exists. It does not define layout, visual effects, animation, or final markdown schemas. For exact file syntax, follow `../../hyperframes/references/storyboard-format.md` and `../../hyperframes/references/script-format.md`. ## Read first Read these inputs before writing: 1. `hyperframes.json` — locked brief: angle, length, aspect ratio, language. 2. `frame.md` — tone, mood, design system, and register. 3. `capture/extracted/visible-text.txt` — the article / notes / topic / brief (the source of **information**). 4. `user_script.txt` and `VO_MODE`, when the user pasted a script. There is no `asset-descriptions.md` and no `capture/assets/` to inspect — this is faceless. Every visual is invented downstream (Steps 4-5); your job here is the **narrative**, not a visual asset list. ## Output Create two files: - `STORYBOARD.md` — the teaching plan, one frame per beat. - `SCRIPT.md` — the locked narration, only for spoken frames. Every storyboard frame must include the required fields from the storyboard format reference, plus the narrative metadata below. ## Core rule An article is an information dump. A video is a guided act of understanding. Do not follow paragraph order. Reorder, merge, omit, and compress the source text into a clear teaching sequence. Strip the asides; surface the spine. **The single most common failure is paraphrasing the article in order — do not do that.** The input text is the source of information, not a story template. ## Step 3 method ### 1. Extract the teaching truth From the brief and text, identify: - Audience — who the video is speaking to, and what they already (don't) know. - Gap or stakes — the confusion, question, or "why care" the explanation resolves. - Thesis — the one-line idea the viewer should walk away with. - Spine — the 3-6 ideas (mechanisms / steps / items / beats) that build to the thesis. - Evidence — the concrete numbers, examples, comparisons, or worked cases that ground it. - Landing — the takeaway or the call to think / try / act. Write the storyboard around the thesis, not around the article's sections. ### 2. Match the register to `frame.md` Use `frame.md` as a soft guide — the visual system tunes the **voice**, not the structure: | `frame.md` signal | Story effect | | ------------------------------ | -------------------------------------- | | warm, handmade, notes-like | plain, considered, low-hype; humane | | bold, poster-like, declarative | short punchy beats, confident claims | | friendly, polished, modern | approachable direct address, lighter | | literary, technical-but
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/heygen-com/skills/faceless-explainer",
"sourceUrl": "https://clawhub.ai/heygen-com/skills/faceless-explainer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:54:26.857Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-faceless-explainer/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-faceless-explainer/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T07:54:26.857Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "3.5K downloads",
"href": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceUrl": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T07:54:26.857Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "1.0.45",
"href": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceUrl": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-08T20:30:26.649Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-faceless-explainer/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-heygen-com-faceless-explainer/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 1.0.45",
"description": "Synced from 29b901d (main)",
"href": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceUrl": "https://clawhub.ai/heygen-com/faceless-explainer",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-10-08T20:30:26.649Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
