demo-video-plugin
v1.1.0+codex.20260914152844Build narrated, edited project demos with deterministic app state; Playwright or OBS capture; ElevenLabs voiceover; measured timelines; Remotion rendering; and Final Cut Pro export with first-class motionVFX inventory, previews, titles, transitions, and effects.
By Lukas KellersteinLicense: UNLICENSED1 GitHub starsUpdated last week
Directory evidence
- Runtimes
- Codex
- Parsed components
- 10 skill or MCP entries
- Source updated
- Sep 14, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install demo-video-plugin for Codex
codex plugin marketplace add lukaskellerstein/codex-my-marketplace
codex plugin marketplace upgrade codex-my-marketplace
codex plugin add demo-video-plugin@codex-my-marketplacePaste and run these commands in a terminal with Codex. They add and refresh the codex-my-marketplace catalog, then install this plugin.
Compatibility: the page URL and API slug “demo-video-plugin” remain stable.
- Codex:
demo-video-plugin@agent-plugin-marketplace→demo-video-plugin@codex-my-marketplace
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/lukaskellerstein/codex-my-marketplaceClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is plugins/demo-video-plugin/.
Plugin files
├── .codex-plugin/plugin.json├── skills/demo-app-prep/SKILL.md├── skills/demo-assembly/SKILL.md├── skills/demo-capture/SKILL.md├── skills/demo-review/SKILL.md├── skills/demo-scripting/SKILL.md├── skills/demo-setup/SKILL.md├── skills/demo-video/SKILL.md├── skills/demo-voiceover/SKILL.md└── .mcp.json
Included Skills8
Gets a project into a demo-worthy, deterministic state before recording — boots the app, seeds realistic data, bypasses or scripts login, freezes clocks and random values, hides dev-only UI, and makes state resettable between takes. Use before capturing any demo video section, when a demo shows empty states or placeholder data, when takes are not reproducible, or when deciding how to run the app for recording.
Assembles measured clips and narration into a finished demo video — reconciles real durations into a timeline, then renders it with Remotion or exports it as a Final Cut Pro project (FCPXML) for finishing with Apple or motionVFX titles, transitions, and effects. Covers the timeline contract, the bundled timeline-driven Remotion project, visual template selection, camera moves, captions, music ducking, draft/final render presets, and the FCPXML export. Use at the reconcile, render, or editing stage of a demo video, when changing how the finished video looks, or when the user wants to edit or finish a demo in Final Cut Pro.
Records demo video clips by driving a running app — one clip per storyboard section, with human-feeling pointer motion, dwell timing, and per-character typing. Covers who drives the app (the Playwright MCP for web, a launched Electron app, or an already-running app attached over CDP) and what records it (Playwright video, OBS over obs-websocket for crisp native-pixel window capture, or a macOS screen-capture fallback), including pausing OBS through long waits. Use when recording, re-recording, or rehearsing any demo section, when setting up OBS for a demo, when a desktop app's launch must stay its own, or when captured footage looks like an automated test or its text looks soft.
Quality-checks a rendered demo video before it ships — extracts frames, grades each section against its successCriteria, and finds spinners, empty states, clipped text, exposed secrets, audio/video desync, and pacing problems. Use after a draft render, before a final render, or when asked whether a demo video is good enough to ship.
Turns a codebase into a demo narrative that has value — picks which capabilities earn screen time, structures them into beats, sets per-section durations, and writes the voiceover text at a speakable pace. Use at the scripting stage of a demo video, when writing or revising demo/storyboard.json, when the user asks what the demo should show, or when a demo feels like a feature tour instead of a story.
Checks and installs everything the demo-video pipeline needs — ffmpeg, Playwright browsers, bundled Remotion dependencies, uvx, and the ElevenLabs key, plus the optional OBS recorder (websocket reachable, able to pause) and Final Cut Pro finish — and scaffolds demo/ in the target project. Use before the first demo video on a machine, when any pipeline stage reports missing tooling, when MCP video tools are absent from /mcp, when OBS will not connect, or when the user asks to set up, doctor, or install the demo toolchain.
Orchestrates building a narrated demo video of a project — reads the codebase, writes a storyboard, prepares deterministic app state, drives the UI with Playwright to record clips (web and Electron, recorded by Playwright or by OBS), generates ElevenLabs voiceover, reconciles measured durations into a timeline, and renders the final cut with Remotion or exports it as a Final Cut Pro project. Use whenever the user asks for a demo video, screencast, product walkthrough, feature showcase, release video, or narrated recording of an app; also load this before touching anything under demo/ so the pipeline's contracts and stage gates are respected.
Generates demo narration with the ElevenLabs MCP server — one audio file per storyboard section, measured so the editor can cut picture to voice. Covers voice and model selection for product demos, fitting a line to a target duration, pronunciation of product names, optional word-level caption alignment, and music beds. Use at the voiceover stage of a demo video, when regenerating narration, or when changing the narrator.
MCP servers2
- command
- uvx
- args
- elevenlabs-mcp
- env.ELEVENLABS_API_KEY
- ${ELEVENLABS_API_KEY}
- env.ELEVENLABS_MCP_OUTPUT_MODE
- files
- command
- npx
- args
- -y @playwright/mcp@latest --caps=devtools,vision,network,storage,testing --headless --isolated --viewport-size=1600x900 --output-dir=./demo/capture --init-script=${CLAUDE_PLUGIN_ROOT}/assets/cursor-overlay.js
- env.NPM_CONFIG_CACHE
- ${TMPDIR}/codex-demo-playwright-npm-cache
- env.NPM_CONFIG_UPDATE_NOTIFIER
- false
MCP configuration uses runtime-provided plugin path placeholders such as ${PLUGIN_ROOT} or ${CLAUDE_PLUGIN_ROOT}. Review the manifest for the runtime-specific expansion rules.
Plugin manifests1
{
"name": "demo-video-plugin",
"version": "1.1.0+codex.20260914152844",
"description": "Build narrated, edited project demos with deterministic app state; Playwright or OBS capture; ElevenLabs voiceover; measured timelines; Remotion rendering; and Final Cut Pro export with first-class motionVFX inventory, previews, titles, transitions, and effects.",
"author": {
"name": "Lukas Kellerstein",
"url": "https://github.com/lukaskellerstein"
},
"homepage": "https://github.com/lukaskellerstein/codex-my-marketplace",
"repository": "https://github.com/lukaskellerstein/codex-my-marketplace",
"license": "UNLICENSED",
"keywords": [
"codex",
"demo-video",
"screencast",
"storyboard",
"voiceover",
"playwright",
"electron",
"remotion",
"obs",
"obs-websocket",
"final-cut-pro",
"fcpxml",
"motionvfx",
"ffmpeg"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Demo Video Plugin",
"shortDescription": "Create and finish narrated product demo videos.",
"longDescription": "Turns a project repository into a polished demo video through codebase research, narrative scripting, deterministic app preparation, Playwright-driven capture of web, launched Electron, or attached applications, Playwright or OBS recording, ElevenLabs narration, measured timeline reconciliation, Remotion rendering or Final Cut Pro export, first-class motionVFX inventory and preview-driven template selection, and frame-based review.",
"developerName": "Lukas Kellerstein",
"category": "Media",
"capabilities": [
"Read",
"Write",
"Interactive"
],
"defaultPrompt": [
"Create a 90-second narrated demo of this product.",
"Record this running desktop app through OBS and produce a measured edit.",
"Export the reconciled demo timeline as a Final Cut Pro project.",
"Inventory my downloaded motionVFX templates, visually compare a shortlist, and choose a coherent Final Cut Pro finish.",
"Prepare this app for deterministic demo recording.",
"Review this draft demo and identify what to fix."
],
"brandColor": "#EC4899"
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[demo-video-plugin on Agent Plugins Marketplace](https://pluginsmp.com/plugins/demo-video-plugin)