We use anonymous analytics to improve VanillaSky. No personal data is collected. Learn more

    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.
    • Validatevanillasky validate checks 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):

    bash
    npx skills add VanillaSkyAi/skills --skill vanillasky

    Or clone the repo and copy the skill in manually (Claude Code shown):

    bash
    git clone https://github.com/VanillaSkyAi/skills vanillasky-skills
    cp -R vanillasky-skills/vanillasky ~/.claude/skills/vanillasky

    The 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-static and playwright-core).
    • A Chromium-based browser — an installed Chrome, Edge, or Chromium is picked up automatically. Otherwise run npx playwright install chromium, or point PLAYWRIGHT_BROWSERS_PATH at an existing Playwright browsers directory. The CLI never downloads a browser itself.
    • ffmpeg — installed automatically via ffmpeg-static during npm install; falls back to a system ffmpeg on PATH (override with FFMPEG_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:

    bash
    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.mp4

    Optional, 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

    1. vanillasky setup --check — prints the current setup state (config, Pexels key, default orientation, music mood, DESIGN.md) without prompting.
    2. Compose video.json — templates from the catalog, never guessed.
    3. vanillasky validate video.json --format launch — fix every error before rendering.
    4. Inspect before any full render: --frame 1.2 renders one PNG in ~2s; --sheet renders 5 PNGs per scene plus a composited sheet.
    5. vanillasky render video.json — full MP4. Pass --open to open it when done.
    6. Share — vanillasky link video.json prints a zero-install browser-render URL for anyone without local Chrome.

    Next steps