Skip to main content
Zap is a lightweight content-agent framework where every generative video recipe lives as a self-contained Zap.md file — YAML frontmatter that declares inputs, budget, steps, and provider defaults, paired with human-readable prompt files and a SKILL.md capability description. The CLI (@wzrdtech/zap) and web studio read the same recipe files as coding agents (Codex, Claude Code, Cursor, and others), so a recipe authored by a human works identically when executed autonomously by an agent. Each zap-<slug> skill directory is a portable unit of creative capability that travels with your repo.

Quickstart

Scaffold a project, author your first recipe, and run a zero-cost mock pipeline in under five minutes.

Zap Spec

Full reference for every frontmatter field: inputs, steps, budget, defaults, and output.

Providers

Configure GMI Cloud, fal.ai, or the built-in deterministic mock adapter as your pipeline backend.

CLI Reference

Every command — init, new, validate, lint, run, status, doctor, and more — with flags and examples.

Project & Recipe Structure

A Zap project follows a conventional layout that both humans and coding agents can navigate without configuration:
zap init <dir> scaffolds this layout automatically, including a sample hello-world recipe, npm convenience scripts, and an AGENTS.md with project-level agent instructions.

Inside a Recipe Skill

The Zap.md frontmatter is the single source of truth for the pipeline: step ordering, model selection, provider routing, budget caps, and input schema are all declared there. Prompt files contain the creative instructions passed to each model, with {INPUT_NAME} placeholders substituted at run time.

What Ships

Mock mode is the default — it costs nothing. Every zap run and npm run zap:run command uses the deterministic mock adapter unless you explicitly pass --live. Mock mode fills required inputs with deterministic placeholders, executes the full step graph, writes a local result to .zap/runs/, and returns a mock:// asset URL. No provider keys, no spend, no surprises. Add --live only after provider credentials and a budget cap are in place.