Zornov

DocsReferenceZornov 0.1.2

The command line

Reference for the zornov command: make and open projects, run edits and exports from a terminal, use the AI from a prompt, and serve tools to AI assistants.

Everything the editor window can do, Zornov can also do from a terminal: make a project, edit it, look at it, check it and export it. The window and the terminal share the same projects and tools, so you can start in one and finish in the other.

Run zornov from a terminal

On Mac and Linux the program is zornov. On Windows, zornov.exe is the window program, so in a terminal use zornov-cli (it sits beside it in the install folder) in place of zornov for every command on this page.

To type zornov from any folder, it needs to be on your PATH. See Before you start for where Zornov is installed on each system and how to add it.

Commands at a glance

CommandWhat it does
zornovThe Zornov prompt in this project
zornov new NAMEMake a new project in ./NAME
zornov appOpen the editor window on this project
zornov open DIROpen the editor window on the project in DIR
zornov COMMAND …Run one command and exit, for example zornov check
zornov make "…"Ask the AI to make or change something
zornov help [COMMAND]List every command, or show one command's fields
zornov guide [TOPIC]The full reference, or one topic of it
zornov agent …Call one tool with JSON in and JSON out, for scripts
zornov mcp …Serve Zornov's tools to an AI assistant over MCP
zornov queue list, zornov queue runShow the render queue, or render everything waiting
zornov node …Let other Zornov apps on your network send this computer parts of a render

Running zornov with the path of a project folder, zornov /path/to/my-video, also opens that project in the editor window.

Which project a command uses

A command works on the project in the folder you're in, or the nearest folder above it that holds a project. Add --project DIR (or -p DIR) anywhere on the line to name a different project folder.

Make a project

zornov new my-video
cd my-video

zornov new makes a 1920 × 1080, 30 fps project. Without a name it makes the project in the current folder.

OptionWhat it does
--vertical1080 × 1920
--square1080 × 1080
--size WIDTHxHEIGHTAny size, for example --size 1080x1920
--fps NFrame rate, for example --fps 60

Run one command at a time

Any command runs on its own and exits, which is what scripts want:

zornov card colour=red at=0 duration=2
zornov text "Hello" at=0.5
zornov import ~/Movies/beach.mov
zornov place beach.mov at=2
zornov animate clip=9 property=x keys=[[0,0],[1,500]]
zornov summary
zornov check
zornov export out.mp4
  • Fields are written key=value.
  • Values that read as JSON (numbers, true, [1, 2]) are taken as JSON; anything else is text.
  • The first field can often go without its key: zornov frame 2.5, zornov inspect 9, zornov import a.mp4 b.mp3.
  • Every edit prints what changed, read back from the timeline.
  • --json prints the raw JSON answer. Output that goes to a file or another program is JSON anyway.
  • To run several edits as one step from a file, use zornov edit ops=plan.json, where the file holds a JSON list of operations.
GroupCommands
Looksummary, script, see, listen, inspect CLIP, pick X Y, frame T, check, media, catalogue PANEL [QUERY]
Changeimport, text, card, place, set, animate, trim, split, delete, move, transition, undo, redo and every other edit
Deliverexport [PATH]
Learnguide [TOPIC], help [COMMAND]

Every tool an AI assistant can use is also a command. zornov help lists them all, and zornov help COMMAND shows one command's fields. See What AI assistants can do for an overview.

zornov export renders the file, then runs a quality check on it.

The prompt

Run zornov in a project folder for an interactive prompt. A line that starts with / runs a command; any other line is said to the AI.

/summary
/export out.mp4
cut the pauses and add captions
Prompt commandWhat it does
/help [COMMAND]Every command, or one in detail
/new NAMEMake a new project and switch to it
/appOpen the editor window on this project
/model NAMEWhich model the AI uses: haiku, sonnet or opus
/clearClear the screen
exitLeave the prompt

Ask the AI from a terminal

zornov make "a 10 second intro about the ocean"

zornov ask does the same. Add --model NAME to pick the model.

If the project is open in a Zornov window, the AI works in that window.

Scripts: zornov agent

zornov agent calls one tool and prints one line of JSON, or reads calls from standard input.

zornov agent --headless --project my-video summary
zornov agent --headless --project my-video edit '{"ops": [{"op": "text", "text": "Hi", "at": 1}]}'
echo '{"tool": "frame", "args": {"t": 2.0}}' | zornov agent --headless --project my-video -
OptionWhat it does
--project DIR, -p DIRThe project folder. An empty folder becomes a new project. The project is saved after every change, so separate calls build on each other
--out DIR, -o DIRWhere pictures and renders go
--headlessWork on the project files directly, even if the project is open in a Zornov window
- (as the tool)Read calls from standard input, each {"tool": "…", "args": {…}}

Without --headless, if the project is open in a Zornov window, the call runs in that window and you see it happen.

AI assistants: zornov mcp

zornov mcp serves Zornov's tools over the Model Context Protocol on standard input and output. AI assistants start it for you; see Use Zornov from Claude, Codex and other AI assistants for each setup.

OptionWhat it does
--project DIRThe assistant works in this project. An empty or new folder becomes a new project
--headlessDon't work in an open Zornov window

Without --project, the assistant works in the project open in a Zornov window, or opens or starts one itself.

Render queue and render nodes

zornov queue list            # the render queue, as JSON
zornov queue run             # render everything waiting
zornov node                  # accept parts of renders from other Zornov apps

zornov node prints a pairing token when it starts. The Zornov that sends the work adds the node with that token.

OptionWhat it does
--listen ADDR:PORTWhere to listen (default 0.0.0.0:7878)
--token SECRETThe pairing token to use instead of a generated one
--name NAMEThe name other computers see
--work DIRThe folder for the node's work

Something wrong or missing on this page? Tell us on GitHub.