oma-video

Generate narrated short-form, explainer, and demo videos via a key-optional provider router and Remotion rendering.

1.3k|146|Updated Jan 30, 2026
One-click install
npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-video
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: oma-video
Source: https://github.com/first-fluke/oh-my-agent/tree/main/.agents/skills/oma-video
Command: npx skills add https://github.com/first-fluke/oh-my-agent --skill oma-video

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, @strudel/web, and includes references (resource) components.

What problem does it solve?

Turning a topic, README, or screen recording into a finished narrated video normally requires stitching together scripting, TTS, image generation, captions, and a renderer by hand. This Skill orchestrates that entire pipeline through a single CLI with deterministic, reproducible run directories and key-free fallback providers.

Core Features & Use Cases

  • Three generation modes: shorts/reels (9:16) from a topic, explainers (16:9) from README/code/data, and demos from screen-capture files or supervised headed-browser web capture of any URL.
  • Key-optional 3-tier router: every capability (voice, visuals, captions, compositor) has a real provider path and a key-free fallback, so paid providers like Pexels or Pixelle activate only when their API keys exist.
  • Deterministic asset bus: each run produces script.json, timing.json, render-spec.json, captions, the rendered mp4, and a manifest with sha256 hashes and cost breakdown, enabling byte-stable re-renders via oma video render.
  • Use Case: Ask for a 30-second vertical short about a product feature; the Skill writes the script, synthesizes narration, generates visuals, builds TikTok-style captions, authors a Remotion composition, and renders the finished mp4 into a reproducible run directory.

Quick Start

Ask the agent to make a 30-second vertical short about your chosen topic with TikTok captions, and it will run oma video generate to produce the narrated mp4 in a run directory.

Frequently Asked Questions about oma-video

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate a short-form video from a text topic?

Run oma video generate with your brief and --mode shorts to produce a 9:16 vertical clip. The pipeline writes a script, synthesizes narration, generates stills with Ken Burns motion, builds captions, and renders the mp4 via Remotion into a run directory.

How to create an explainer video from a README or code?

Use --mode explainer with a brief pointing at the README, code, or data file. The Skill combines slide frames, generated diagrams, and code frames with narration, rendering a 16:9 or 9:16 explainer video deterministically from render-spec.json.

Does video generation work without API keys?

Yes, the router is key-optional with key-free defaults for every capability: local voice synthesis, oma-image stills, key-free captions, and Remotion rendering. Paid providers like Pexels or Pixelle activate only when their environment keys are present, otherwise the chain falls back automatically.

Can I record a web app demo automatically?

The demo mode supports --source web with a --url, which opens a headed Chromium browser and records while a human drives the on-screen flow. It performs no credential automation, masks URLs in logs, and falls back to a guided protocol when no interactive terminal exists.

Why did my video render with fallback providers?

Fallbacks occur when a preferred provider is unavailable, such as a missing Pexels key or an unreachable Voicebox MCP server. Every fallback is recorded in the manifest's warnings array, and the run still completes with the key-free alternative.

What are the limits on video length and scenes?

Videos are capped at 180 seconds duration and 40 scenes per run. Outputs must stay inside the project directory unless --allow-external-out is set, and estimated costs above the $0.20 guardrail require confirmation before proceeding.