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
| Command | What it does |
|---|---|
genvid list-projects -o json | List your projects |
genvid get-project <id> -o json | Show one project |
genvid get-shot <project-id> <shot-id> -o json | Show a shot |
genvid --help | Full 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
