Skip to content
AI & Agents
Skill

/VideoEssay

Turns content plus a stance into a video essay narrated by the DA, any post, idea or feature plus a length into a short DA-narrated explainer video, or the author's own audio reading of their blog post (a recording or their voice clone) into a finished video of that post, with

From plugin
danielmiessler-lifeos
20k97 skills13 agents34 commands

Claude Code

$ npx -y skills add danielmiessler/lifeos --skill VideoEssay --agent claude-code

SKILL.md

VideoEssay.SKILL.md
metadata:
  short-description: "Create DA-narrated video essays from content and a stance, with argument, visuals, narration, rendering, and review. Use Video for recorded footage."
name: VideoEssay
version: 1.3.0
evals:
  deterministic:
    - command: "bun skills/VideoEssay/Tools/DesignAudit.ts --check style-doc"
      falsifier: "a number or colour exported from Tools/Theme.ts is missing from References/Style.md, so the design system and its documentation have drifted"
    - command: "bun skills/VideoEssay/Tools/DesignAudit.ts --run smoke --if-present --check fonts,layout,legibility,sync"
      falsifier: "on a machine that keeps a run named `smoke` in its runs root, a composed frame carries a fallback font, an off-centre or undersized insert, text outside title-safe or behind the badge, colliding labels, an empty frame, sub-floor type, or a build that runs ahead of its word; with no such run it prints `skipped:` and exits 0"
  manual:
    reason: "argument quality and rendered essay coherence require a reviewer to assess the completed artifact"
    falsifier: "the reviewed essay misstates its source or stance, has unsupported claims, or the rendered video lacks its approved narration or visual beats"
description: Turns content plus a stance into a video essay narrated by the DA, any post, idea or feature plus a length into a short DA-narrated explainer video, or the author's own audio reading of their blog post (a recording or their voice clone) into a finished video of that post, with scripted visuals rendered on HyperFrames, presence layer, rendered and read back. USE WHEN video essay, explainer video, short video about this post, N-minute video of my blog post, make a video about this, respond to this video, argue against this in a video, debate this, video response, DA video, narrated video, turn this essay into a video, react to this interview, make a video from my audio, I recorded myself reading the post, turn this post into a video, video from my voice clone, audio to video. NOT FOR the user's camera footage or clips (Video), audio-only podcast cuts (Video), one-off animation (HyperFrames).

VideoEssay

**Contents:** Ideal State · Intent Routing · Tools · Data & Config · Quality loop · Gotchas · Examples

The DA's own video format, in two modes, each a fully automated production that proves itself before the user sees it. Essay mode argues first, then renders. Voice mode (`run.json` `mode: "voice"`) turns the author's post, read by their recording, their voice clone or the DA reading their exact words (`run.json` `narrator` `recorded` | `clone` | `da`), into a video of the real post page scrolling with the spoken sentence highlighted, inserts directed from what the post argues (`LIFEOS/TOOLS/VideoMeaning`: MeaningMap, Direction, a two-vendor plan review), and the reader's portrait in the corner badge (the author's, or the DA's on a DA-read run).

Ideal State

  • An essay run argues before it renders: a linted, steelmanned `Essay.md` with verbatim, correctly attributed quotes reaches the user at the checkpoint (unless the ask skips it), and only then becomes `Script.json` and a render.
  • A voice run narrates only the author's own words, its page reads like the live post, and every page highlight and insert is timed to the paragraph being spoken.
  • Every render reads itself back before anyone sees it: `Out/verify.json` all green, and the frames and the `Out/review/` studio pass read.
  • The mp4 and thumbnail reach `~/Downloads/<slug>/` only through `Deliver.ts`, after a passing ArtDirection critique and Proof receipt on those exact bytes.
  • Every run stops in review state; nothing uploads from this skill. Publishing is the user's separate call through `Video`.

Intent Routing

| Intent | Trigger | File | |----------|---------|------| | **Argue** | "write the argument", "essay first", "what's our take on this", the first step of every new run | `Intents/Argue.md` | | **Script** | "script it", "turn the essay into beats", "plan the visuals" | `Intents/Script.md` | | **Produce** | "produce it", "render the essay", "make the video from the script", re-renders after an edit | `Intents/Produce.md` | | **Full** | "respond to this video", "video essay on this", "argue X in a video", raw content plus a stance to argue | `Intents/Full.md` | | **Voice** | "make a video from my audio", "I recorded the post", "use my clone to read the post", a post plus a recording | `Intents/Voice.md` | | **Explainer** | "make an explainer video", "a short video about this post / idea / feature", "a 2-minute video of my latest post", any source plus a length with no stance to argue | `Intents/Explainer.md` |

`Full` is `Argue` → review checkpoint → `Script` → `Produce`. The checkpoint after the essay is the default: text is cheap to change and a render is not. The user skips it by saying so in the ask ("straight through", "no review, just make it"). `Voice` has no essay and no DA-written narration; its narration rule, stages and inserts are in `Intents/Voice.md`. `Explainer` writes an `Essay.md` with `kind: explainer` (narration only, no opposing quotes) at the length asked for, then runs `Script` and `Produce` straight through; its optional YouTube leg (thumbnail on the post's header image, full description, private upload) runs through `Video`, never this skill.

| File | Read when | |------|-----------| | `References/ScriptSchema.md` | writing or linting `Script.json` | | `References/Style.md` | composing frames, the thumbnail, or running DesignAudit (the house design system) | | `References/Tools.md` | running or debugging one stage tool directly, choosing a flag, or finding a run's files | | `Setup.md` | first run on a machine, any tool stops naming Setup.md, or a Config.json field's meaning or default |

Tools

`Tools/Run.ts` drives every run; the other stage tools, the run layout and the composition files are in `References/Tools.md`.

| Tool | Contract | |------|----------| | `Tools

Read more
@danielmiessler
Ships withdanielmiessler-lifeos

⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.

20k97 skills13 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
19.7k
Star history of danielmiessler/lifeos on GitHub, a chart by star-history.com

Other skills on danielmiessler-lifeos.

More skills from other plugins.

Questions about VideoEssay.

Which coding agents can use VideoEssay?
VideoEssay installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.