The CLI
Everything runs through one command, volito. Run it with npx volito … without installing, or install the package and call it directly.
Commands
volito list # every item (--search words, --category c)
volito info stat # what it is, every prop and part
volito styles # the built-in brand styles
volito moves # every move, ease, idle, hit and mood
volito sheet title-card --mood playful --seed 7 # a new choreography, frames across time in one PNG
volito sheet stat --prop value=72 --prop suffix=% --prop chart=ring
volito still title-card --aspect 9:16 --t 1.5 --out frame.png
volito render banner --prop headline="Doors open at 9" --format webm --out banner.webm
volito check ./my-graphic.js # run it at every aspect, report problems
volito new promo-card # item.json + frame.js from a template
volito api # the whole $ runtime, for writing graphics
volito guide # how items and packs are laid out
volito mcp # an MCP server on stdio, for agentslist, info, styles and moves take --json for machine-readable output. An item is named by its id (lower-third) or its full ref (essentials/lower-third); a path to a .js file or an item folder works anywhere an item does.
Options
| Option | What it does |
|---|---|
--prop name=value | A prop; repeat for more. Lists take "a; b; c". Chart rows take "Label: 42; Other: 17". |
--props <json or file> | Every prop at once. |
--image name=path | A picture for an image prop: a file or a URL. |
--style <name or DESIGN.md> | A built-in style or your brand's DESIGN.md. |
--accent --accent2 --ink --paper #hex · --mode dark|light · --display --text Font:900 | Overrides on the style. |
--aspect 16:9|9:16|1:1|4:5|WxH · --duration s · --fps n · --width px | The frame. |
--bg #hex|transparent | A ground under the graphic. Overlays are transparent by default. |
--words transcript.json · --offset s | Land text on a voice: [{w, s, e}] or Whisper JSON. |
--motion part.setting=value | How a part moves; repeat, * for every part. See Motion. |
--mood m · --seed n · --speed x | A choreography, a new take per seed, faster or slower. |
--beat in=0.4 --beat out=-0.6 | Move the entrance and exit; negative counts from the end. |
--packs <dir> | More packs (also the VOLITO_PACKS environment variable). |
--format mov|webm|mp4|hevc|gif|png | For render; png or svg for still. |
--out path | Where to write. The extension picks the format when --format is not given. |
--json | Machine-readable output from list, info, styles and moves. |
Environment
| Variable | What it does |
|---|---|
VOLITO_FFMPEG | The ffmpeg to encode video with; otherwise the one on PATH. |
VOLITO_PACKS | Extra pack folders, :-separated, added to the built-in packs. |
The older MONARC_MOTION_FFMPEG and MONARC_MOTION_PACKS names are still read.
Exit codes and errors
A finished render prints its format, size, frame rate, length, frame count, file size and time taken. check exits 1 when any aspect reports an error, and 0 when there are only warnings. Any other failure exits 2 with the reason: a wrong item name lists the nearest matches, and a missing ffmpeg says how to install it or point VOLITO_FFMPEG at one.