VanillaSky documentation
VanillaSky is an open-source agent skill for making finished social videos — MP4, vertical 9:16 or landscape 16:9 — from a prompt. Your agent composes a VideoConfig JSON from curated scene templates; the MIT-licensed vanillasky CLI validates and renders it locally with a headless Chrome. Deterministic: same config, same MP4. No cloud, no credits, no account.
How it works
A video is a JSON file: an ordered list of scenes, each referencing a scene template by camelCase id with variables. The agent composes the JSON — you never write animation code on the default path, the templates carry the motion. The CLI renders the config deterministically on your machine, so re-rendering the same file always produces the same video.
- Compose — the skill guides your agent through brief intake, template selection from the live catalog, and the anti-boring composition rules.
- Validate —
vanillasky validatechecks structure, template ids, per-template variable schemas, and format slot-contract rules before any render. - Render — single frames and contact sheets in seconds for inspection, then a full MP4 render via local Chrome and ffmpeg.
Install the skill
With the skills CLI (works across 75+ agents):
npx skills add VanillaSkyAi/skills --skill vanillaskyOr clone the repo and copy the skill in manually (Claude Code shown):
git clone https://github.com/VanillaSkyAi/skills vanillasky-skills
cp -R vanillasky-skills/vanillasky ~/.claude/skills/vanillaskyThe skill uses the live template catalog at vanillasky.ai/llms-components.txt when online; the repo's registry/ directory is the equivalent offline snapshot. See Templates & the registry.
Requirements
- Node 18+ — the CLI is plain Node with two dependencies (
ffmpeg-staticandplaywright-core). - A Chromium-based browser — an installed Chrome, Edge, or Chromium is picked up automatically. Otherwise run
npx playwright install chromium, or pointPLAYWRIGHT_BROWSERS_PATHat an existing Playwright browsers directory. The CLI never downloads a browser itself. - ffmpeg — installed automatically via
ffmpeg-staticduringnpm install; falls back to a systemffmpegon PATH (override withFFMPEG_PATH). Only needed for full renders, sheet compositing, and audio muxing.
Your first render
From a checkout of the skills repo, three commands — the bundled example works fully offline:
npm install --prefix cli # installs ffmpeg-static + playwright-core
node cli/bin/vanillasky.mjs validate examples/launch-demo.json
node cli/bin/vanillasky.mjs render examples/launch-demo.json --out launch-demo.mp4Optional, for a global vanillasky command: npm install -g ./cli. Swap in examples/launch-demo-landscape.json for a 1920x1080 landscape render — the config's orientation field decides, portrait when omitted.
The workflow
vanillasky setup --check— prints the current setup state (config, Pexels key, default orientation, music mood, DESIGN.md) without prompting.- Compose
video.json— templates from the catalog, never guessed. vanillasky validate video.json --format launch— fix every error before rendering.- Inspect before any full render:
--frame 1.2renders one PNG in ~2s;--sheetrenders 5 PNGs per scene plus a composited sheet. vanillasky render video.json— full MP4. Pass--opento open it when done.- Share —
vanillasky link video.jsonprints a zero-install browser-render URL for anyone without local Chrome.