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.