English | 简体中文
Evidence-backed explainer videos for coding agents.
Seqvio gives coding agents a capture-to-explanation path for turning real terminal/browser activity and technical ideas into clear narrated videos. Human-readable EDITORIAL.md and VISUAL-DESIGN.md artifacts make content choices and visual direction reviewable before the executable ExplainerDocument IR binds spoken cues to visual actions with ExplanationBeats.
Current status: The repository supports explicit React/TSX compositions and
ExplainerDocumentwith publicwhiteboard,code,diagram,terminal, andbrowsercompiler paths, plus experimentalinfographicand externally rendered Pythonmanimpaths. Phrase-anchored ExplanationBeats drive logical visual timing, post-TTS semantic time maps, speech/highlight QA, and deterministic local rendering. Terminal and browser pipelines compile real recorded steps through the same IR. Capture CLI contract2.0names the canonical IR artifactexplainer.json.
The current 720p product demo shows the reviewable plan, executable
ExplainerDocument, phrase-level ExplanationBeat, QA, and local rendering
path through a native-module CI diagnosis.
Watch the current narrated demo
— source: seqvio-product-hunt-en.tsx
Localized overview compositions remain available under
examples/compositions/, but their previously
published videos predate the current explanation contract and are no longer the
primary product demo.
Seqvio has two separate pieces:
| Piece | What it is | Install with |
|---|---|---|
| Agent skill | Teaches Cursor and other agents how to author TSX compositions and run the render workflow | npx skills add ... |
| Renderer CLI | Runs seqvio-render, seqvio-audio, and seqvio-qa |
npm install @seqvio/renderer or a local repo build |
Installing the skill alone is not enough to render videos. You also need the CLI (or a local checkout of this repository).
npx skills add makesynt/seqvio --skill seqvio -a cursor -yReplace cursor with your agent if needed (claude-code, codex, etc.). To preview available skills first:
npx skills add makesynt/seqvio --listThis step copies the Seqvio skill into your agent. It does not install npm packages, clone this repo, or render MP4 output by itself.
Pick one path:
Option A — npm package (simplest for most users)
npm install -g @seqvio/renderer
seqvio-render --helpPublic packages: @seqvio/core, @seqvio/whiteboard, @seqvio/scatterbrain,
@seqvio/product-demo, @seqvio/technical, and @seqvio/renderer.
Experimental capture packages: @seqvio/capture, @seqvio/browser-recorder,
and @seqvio/terminal-narrator.
The optional experimental @seqvio/manim-adapter workspace invokes the Python
package manim for externally rendered mathematical animation.
Install optional style/component packages when a composition imports them directly:
npm install @seqvio/product-demo @seqvio/scatterbrainOption B — local repository (best for contributors and example compositions)
git clone https://github.com/makesynt/seqvio.git
cd seqvio
npm ci
npm run build
node packages/renderer/dist/cli.js --helpUse the workspace CLI when you want the bundled examples/compositions/ and monorepo smoke scripts.
For ElevenLabs or other TTS providers, export credentials before synthesis:
export ELEVENLABS_API_KEY=your_keySee .env.example. The CLI reads process environment variables and does not auto-load .env.
After steps 1 and 2, try a prompt like:
Using
/seqvio, first create and review an editorial plan and visual design brief, then compile them into a 4-scene Chinese ExplainerDocument with phrase-anchored visual Beats, run QA, and render the final MP4.
The recommended path reviews EDITORIAL.md and VISUAL-DESIGN.md, compiles an
ExplainerDocument, resolves narration timing, runs seqvio-qa, and renders
the MP4. Hand-authored TSX remains the lower-level path for deliberate visual
control. Experimental terminal/browser adapters can supply observed scenes to
the same IR; they are not required for authored explainers.
Supported agents include Cursor, Claude Code, Codex, Gemini CLI, and other coding agents that support skills.
seqvio-render \
--component path/to/scene.tsx \
--output ./output/demo.mp4 \
--width 1280 --height 720 --fps 30 --quality mediumWhen using a local repo checkout, run the built CLI with node packages/renderer/dist/cli.js. More detail: Manual setup.
The local @seqvio/browser-recorder workspace executes a validated Chromium action plan and records video, cursor/focus metadata, and exact action start times. Its compiler emits a Browser scene, narration cues, capture-backed ExplanationBeats, and an audio manifest through ExplainerDocument:
node packages/browser-recorder/dist/cli.js serve --port 4175
# Or execute a plan directly with one machine-readable result
node packages/browser-recorder/dist/cli.js record --plan plan.json --jobId demo --jsonOpen http://127.0.0.1:4175. The built-in sample runs without an AI provider; configure a planner webhook only when AI-generated action plans are required. See the browser recorder README for the plan contract and stable adapter boundaries.
Requirements: Node.js >=18, Chromium (via Puppeteer), FFmpeg (bundled in @seqvio/renderer). Local repo development uses npm workspaces and package-lock.json. Verify the complete local toolchain with seqvio-doctor or npm run doctor in a repository checkout.
@seqvio/terminal-narrator uses node-pty and xterm-backed snapshots to preserve terminal state and recorded step timing. It compiles each observed step into a Terminal scene plus jointly-authored narration cues and capture-backed ExplanationBeats. --withAudio synthesizes and muxes narration; hard captions are added only when --burnCaptions is also explicit.
@seqvio/manim-adapter is a TypeScript/Node.js
adapter for the external Python package manim; it is not a JavaScript Manim
implementation. It renders equations, graphs, and geometric constructions to
validated media and a content-addressed manifest. ManimClip from
@seqvio/technical then adds that seekable media to the Seqvio timeline, where
named markers can align with phrase-anchored ExplanationBeats.
Python Manim is optional and only required for generating this external media. See the Manim integration guide for setup on Windows, macOS, and Linux, adapter commands, cache behavior, and IR/TSX usage.
- Product and framework intro videos
- Lesson explainers and concept breakdowns
- Process diagrams and onboarding walkthroughs
- Multi-scene narrated videos with captions
- Reusable explainer compositions for automated content pipelines
Start from examples:
| Example | Description |
|---|---|
seqvio-overview-en.tsx |
Narrated English product overview |
seqvio-overview-zh.tsx |
Narrated Chinese product overview |
seqvio-audio-demo.tsx |
Audio and caption metadata |
seqvio-style-manifest-demo.tsx |
Whiteboard style preset manifest demo |
seqvio-product-demo-preview.tsx |
Product walkthrough components demo |
seqvio-scatterbrain.tsx |
Sticky-note / workshop style demo |
loop-engineering-explainer.tsx |
Long-form narrated explainer composition |
technical-explainer.tsx |
Technical explainer with code walkthrough and architecture diagram |
technical-demo.tsx |
Terminal demo and ANSI rendering showcase |
manim-end-to-end-validation.tsx |
Narrated playback of externally rendered graph and proof animation |
packages/whiteboard/examples/ |
Single-scene whiteboard samples |
content or real capture
-> EDITORIAL.md (objective, content choices, explanation structure)
-> VISUAL-DESIGN.md (hierarchy, layout, motion, section treatments)
-> ExplainerDocument (cues + ExplanationBeats + visual targets)
-> TSX + logical source timeline
-> TTS synthesis + phrase-anchor resolution
-> semantic scene timeMap
-> seqvio-qa
-> seqvio-render -> MP4
- Review the human-readable editorial plan and visual design brief.
- Produce or capture an
ExplainerDocumentscene using stable visual and capture-step ids. ItsschemaVersionis an implementation compatibility marker, not part of the product name. - Author
explanation.cuesandexplanation.beatstogether; the compiler emits narration, visual timing, highlights, and scene metadata. - Extract and synthesize audio with
seqvio-audio. Measured audio resolves BeatoutputFrames and semantic scene time maps. - Run
seqvio-qa; unresolved/reversed Beats are errors, while low-confidence whole-cue alignment is reported as a warning. - Render frames and mux narration with
seqvio-render --audioManifest ....
Hand-authored TSX remains supported as the lower-level production surface and may declare meta.audio.narration directly.
See docs/COMPOSITION-AUTHORING.md for the authoring contract.
The skill lives in skills/seqvio/SKILL.md with supporting references:
| Reference | Purpose |
|---|---|
authoring-patterns.md |
TSX composition patterns and timing rules |
audio-workflow.md |
Extract, synthesize, and mux narration |
render-workflow.md |
Build, render, and smoke-test commands |
production-techniques.md |
Voice-first timing, reference-style analysis, and visual QA rules |
planning-workflow.md |
Editorial/visual planning and agent handoff |
Install the skill (see Quick Start):
npx skills add makesynt/seqvio --skill seqvio -a cursor -yThe skill teaches workflow and commands. Install @seqvio/renderer separately when you need to render MP4 output.
Seqvio is the visual language for coding agents that need to explain, not merely animate. It is not trying to be a general-purpose video editor or generic code-to-video engine; its value is the explainer vocabulary and workflow above the render loop. See docs/VISION.md for the full positioning.
- Agent-facing visual vocabulary — concrete primitives for deciding what viewers should see, hear, and understand next
- Explainer-first workflow — scenes, narration, captions, and visual steps in one composition
- Whiteboard-native primitives — handwritten-style text, shapes, images, icons, style presets, and pen/hand timing
- Specialized visual packages — sticky-note workshop scenes with
@seqvio/scatterbrain, product walkthrough scenes with@seqvio/product-demo, and technical explainer scenes with@seqvio/technical - Joint explanation contract — narration phrases, visual actions, and capture evidence are authored as one ExplanationBeat structure
- Executable QA loop — catches unresolved/reversed Beats, speech-rate and highlight pacing, audio/media failures, and visual defects
- Agent-friendly authoring surface — small contracts, explicit frame timing, curated examples
- Local MP4 output — render the finished explanation with Puppeteer + FFmpeg
- React/TSX composition files with
metaduration and fps @seqvio/whiteboardcomponents:WhiteboardScene,DrawText,DrawShape,DrawImage,DrawIcon,Hand, and style presets@seqvio/scatterbrainsticky-note / cork-board components@seqvio/product-democomponents:ProductDemoScene,BrowserFrame,ScreenshotPlaceholder,CursorPath,Callout,ProductTitle@seqvio/technicalcomponents:TechnicalScene,AnnotationTarget,CodeWalkthrough,ArchitectureDiagram,TerminalDemo, plus ANSI/grid utilities and bundled code fonts@seqvio/technicalManimClipfor deterministic seeking and narration-aligned markers in externally rendered mathematical animation- Experimental
@seqvio/manim-adapterfor Python/Manim preflight, deterministic execution, media probing, content-addressed manifests, and cache reuse - Terminal scene support in the composition-document IR (
events/steps/commands) with validation and TSX compilation - Browser scene support with recorded video, cursor/focus/click metadata, exact action clocks, and time-mapped media seeking
ExplanationBeatcues, exact phrase anchors, visual actions, capture evidence, post-TTSoutputFrames, and semanticsceneTimings[].timeMap@seqvio/corescene and transition primitives:VideoComposition,Scene,Transition- ExplainerDocument as the canonical IR, with retained Storyboard IR compatibility for whiteboard-only input
seqvio-renderCLI for TSX-to-MP4 renderingseqvio-audioCLI for audio/caption manifest extraction and TTS synthesisseqvio-qaCLI with baseline/capture profiles, stable audio/temporal/media diagnostics, configurable warning promotion, and key-frame visual checksseqvio-doctorCLI for Node, Chromium, FFmpeg, bundled-font,node-pty, and writable-path diagnostics (--jsonis available for automation)- ElevenLabs, OpenAI, MiniMax, and edge-tts narration providers
Use this section when working from a local repository checkout or when you need narrated renders with bundled examples.
npm install -g @seqvio/rendererThis installs seqvio-render, seqvio-audio, seqvio-generate, seqvio-preview, seqvio-add, seqvio-qa, and seqvio-doctor globally. Dependencies @seqvio/core and @seqvio/whiteboard are pulled in automatically. Install @seqvio/product-demo, @seqvio/scatterbrain, or @seqvio/technical separately when your composition imports those packages outside the monorepo.
git clone https://github.com/makesynt/seqvio.git
cd seqvio
npm ci
npm run buildnode packages/renderer/dist/cli.js \
--component examples/compositions/seqvio-intro.tsx \
--output output/seqvio-intro.mp4 \
--width 1280 --height 720 --fps 30 --quality mediumLocal renders write to output/ (gitignored).
node packages/renderer/dist/audio-cli.js extract \
--component examples/compositions/seqvio-overview-en.tsx \
--out output/seqvio-overview-en.manifest.json
node packages/renderer/dist/audio-cli.js synthesize \
--provider elevenlabs \
--manifest output/seqvio-overview-en.manifest.json \
--outDir output/seqvio-overview-en-audio
node packages/renderer/dist/cli.js \
--component examples/compositions/seqvio-overview-en.tsx \
--output output/seqvio-overview-en.mp4 \
--width 1280 --height 720 --fps 30 --quality medium \
--audioManifest output/seqvio-overview-en-audio/audio-manifest.resolved.jsonVoiceover is muxed automatically from the manifest. Do not add --burnCaptions unless you intentionally want hard-coded subtitles in the frames (short lines + bottom safe area). For YouTube/Bilibili, upload SRT separately instead. See skills/seqvio/references/audio-workflow.md.
| Package | Description |
|---|---|
@seqvio/whiteboard |
Whiteboard drawing components and timing helpers |
@seqvio/core |
Composition container, scenes, transitions, and timeline runtime |
@seqvio/scatterbrain |
Sticky-note / cork-board style components |
@seqvio/product-demo |
Browser frames, cursor paths, screenshot placeholders, callouts, and product walkthrough components |
@seqvio/technical |
Technical explainer runtime: code walkthroughs, architecture diagrams, terminal demos, annotations, and bundled fonts |
@seqvio/terminal-narrator |
Stable node-pty/xterm capture contract → IR/ExplanationBeat → optional narrated MP4 |
@seqvio/browser-recorder |
Stable Chromium action capture with exact action timing → IR/ExplanationBeat |
@seqvio/capture |
Shared experimental capture session and artifact contracts |
@seqvio/manim-adapter |
Experimental adapter that invokes Python Manim and validates/caches the rendered media manifest |
@seqvio/renderer |
TSX bundler plus seqvio-render and seqvio-audio CLIs |
Start at the docs hub: docs/README.md
Recommended reading:
docs/COMPOSITION-AUTHORING.md— authoring contract and API rulesdocs/EXPLANATION-BEAT-TIMING.md— joint narration/visual timing and post-TTS alignmentdocs/CAPTURE-CLI-CONTRACT.md— capture commands, JSON output, exit codes, and artifactsdocs/MANIM-INTEGRATION.md— optional Python Manim setup, adapter rendering, manifests, and timeline integrationdocs/TROUBLESHOOTING.md— renderer, audio, and environment issuesexamples/compositions/README.md— example catalog and conventionsskills/seqvio/SKILL.md— agent production loopskills/seqvio/references/production-techniques.md— narrated explainer production rules and QA checklistdocs/marketing/POSITIONING.md— current product positioning and capability boundarydocs/marketing/FEATURE-STATUS.md— public versus experimental wording
If documentation conflicts with code, treat the code and docs/COMPOSITION-AUTHORING.md as the source of truth.
Full phase ordering and the reasoning behind it: docs/ROADMAP.md. In short:
- Singular capture/IR path - shared dispatcher routing and legacy writer removal are complete; stabilize adapter CLIs around
CaptureSession -> ExplainerDocument. - ExplanationBeat timing - now implemented across all stable scenes, including capture evidence and post-TTS phrase alignment.
- Release QA - baseline/capture profiles now cover visual, pacing, audio, media, semantic Beat failures, and deterministic browser privacy masks; OCR is not a security boundary.
- Packaging and promotion - CLI/artifact contract
2.0and supported-host lifecycle promotion are complete; npm release publication remains an external release action.
Product positioning and scope:
Historical notes:
docs/archive/PRODUCT-PLAN-2026-07.md(archived snapshot)
Contributions are welcome. Please read:
MIT © Seqvio Team