context-attachment-manager
Codex and Claude Code plugin (works in Claude Desktop): choose which past images go to the model with your next message. Unchecked images become placeholders, the conversation goes on, and requests st
A headless pipeline that turns a DEMO_SCRIPT manifest and a running web app into a narrated, captioned MP4. Audio-first, zero-drift, checks its own work, keyless dry-run. CLI and Claude Code plugin.
PluginsTypeScript · ShellGitHub @OrionArchitektonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Narrated, captioned demo videos of web apps from a script, headless. CLI and Claude Code plugin.
Taken from the repository README
Loading the full README.
Read the full README ↗Optional prepared opening scenes and external scene renderers are documented in Optional opening scene. They are off by default, preserve narration and timing, and require no Blender or private scene library.
Turn a DEMO_SCRIPT.md and a running web app into a finished, narrated, captioned MP4, headless and
repeatable. Narration is generated first and becomes the clock for the screen recording and the
captions, so audio, video and captions stay in sync by construction. Length is capped by
maxDurationSec (default 300).
Watch the self-demo on YouTube (one minute): the tool rendered it of a sample app and of its own
script, run and checks, from demos/self/. The video file is also on the
v0.3.0 release.
All three ways need Node 18 or newer and ffmpeg 5.1 or newer plus ffprobe on PATH
(apt install ffmpeg or brew install ffmpeg; check with ffmpeg -version).
Claude Code plugin. Adds a demo-video skill that walks Claude through a video, and a
read-only render-reviewer agent that checks the contact sheet before narration is spent:
/plugin marketplace add OrionArchitekton/agent-demo-video
/plugin install agent-demo-video@agent-demo-video
Then ask Claude for a demo video of your app. The skill runs the CLI through npx.
npx or a global install:
npx -y -p [email protected] playwright install chromium # one time: the browser build this CLI uses
npx -y [email protected] demo.config.json
# or: npm install -g agent-demo-video, then: demo-video demo.config.json
From source:
git clone https://github.com/OrionArchitekton/agent-demo-video.git
cd agent-demo-video
pnpm install
pnpm exec playwright install chromium
From a source checkout, render the bundled smoke demo with silent narration. It needs no API key and no running app:
FAKE_TTS=1 pnpm demo demos/smoke/demo.config.json
Output lands in demos/smoke/out/: final.mp4, captions.srt, contact-sheet.png and
render-report.json.
For your own app:
DEMO_SCRIPT.md: one ### SHOT <id> per shot, with narration and browser actions
(script format).demo.config.json that points at the script and your running app
(config; sample: demo.config.sample.json).FAKE_TTS=1 first and look at contact-sheet.png.### SHOT intro
- target: dashboard
- narration: This is the dashboard. Every active workflow, at a glance.
- action: goto url="/"
- action: highlight selector="#workflows"
- action: wait ms=800
ELEVENLABS_API_KEY. Without a key the run stops rather than shipping a
silent video.voice.provider: "command" runs any program you can call from a
shell, with an optional aligner for word-timed captions (voice).FAKE_TTS=1 renders placeholder narration of estimated length, for drafts.target: live drives a saved browser profile kept outside the repo;
demo-video login <config.json> creates it (authenticated capture)."platform": "shorts" renders 9:16, and brand.hook puts large text on the first
frame (config).voice.aligner is configured, a transcript check compares what the
video says with the script, and Shorts without a hook are flagged (quality checks).brand.motion: true animates the title and end cards with HyperFrames, an
optional add-on (motion cards).final.mp4 against the configured
format, writes a contact-sheet.png with one still per segment (title and end cards included), and records everything in
.demo-video <config.json> [--no-preflight] [--out <new-directory>] [--script <absolute-file>]
[--clips-dir <absolute-directory>] [--render-host <host>]
demo-video login <config.json>
Pin voice.seed in your config and lock your ffmpeg and Chromium versions to get byte-stable
reruns from the same script. The only inputs that change between demo iterations are
DEMO_SCRIPT.md and demo.config.json; everything else is deterministic given the same narration
audio.
MIT
render-report.json