Genvid
Documentation

Command-Line Interface

genvid is the command-line interface for the Genvid AI Production System. Drive your projects, scenes, shots, assets, media, provenance, and analytics straight from a terminal — every read and CRUD operation the platform exposes, with the same account and permissions you use in the web app.

Install

The recommended way is Homebrew:

brew tap genvid-holdings/genvid
brew install genvid

Or in a single step, without tapping first:

brew install genvid-holdings/genvid/genvid

First run

Any command that talks to the API opens your browser to sign in with your Genvid account. Approve once, and the CLI caches your session (refreshing automatically) so you won't be asked again:

genvid list-projects -o json

Help and version are always available offline, with no sign-in — the command set is built into the binary:

genvid --help
genvid --version

Common commands

CommandWhat it does
genvid list-projects -o jsonList your projects
genvid get-project <id> -o jsonShow one project
genvid get-shot <project-id> <shot-id> -o jsonShow a shot
genvid --helpFull command list

Every command accepts -o json for scripting and --help for its own flags.

Bind media you generated locally

If your own agent or tool generated an image on your machine — OpenAI Codex's built-in image generation, a local ComfyUI, anything that writes a file to disk — the CLI binds that file to a shot or asset losslessly and Genvid signs its provenance. The CLI doesn't run the model; it uploads the bytes the model produced.

This is the one job the MCP Server's ingest_generated_media tool can't do: the MCP server is remote, so it can't read your disk, and inlining a full-resolution image as base64 corrupts it. The CLI runs on your machine, so it streams the file as a multipart upload, byte for byte:

genvid import-generated-media <project-id> -c multipart \
  'rendered_output: @/path/to/image.png, model_provider: openai,
   model_name: codex-built-in-imagegen, render_type: T2I,
   link_type: shot_firstframe, shot_id: <shot-id>, params: {}'

The @ prefix uploads the file itself. Point link_type at the slot you're filling — a shot slot (shot_firstframe / shot_keyframe / shot_lastframe / shot_video) or an asset image slot (cast_member_image / location_image / prop_image / …) — and pass shot_id or asset_id to match.

If your generator returns a hosted URL instead of a local file (most cloud providers), you don't need the CLI for this — the MCP ingest_generated_media tool takes the URL directly.

Uninstall

brew uninstall genvid
brew untap genvid-holdings/genvid