CLI
vidlab is the VidLab API from your shell: find a model, price it, run it, wait and save the file, in one command. It is for scripts, CI and people who live in a terminal; your agent can use it too. Node.js 18.17 or newer, no other dependencies.
npx @vidlab/cli models --kind videoInstall it once to drop the npx @vidlab/cli:
npm install -g @vidlab/cliYour key
vidlab login checks a key and saves it in the macOS Keychain or the Linux Secret Service (else a private file under ~/.config/vidlab). VIDLAB_API_KEY, when it is set, always wins. The key is never printed and never passed on a command line.
vidlab loginCommands
vidlab models --kind video --search seedance # find
vidlab model seedance-2.5 # its inputs and every price
vidlab estimate seedance-2.5 --prompt "a red fox" --duration 5 --resolution 720p
vidlab run seedance-2.5 --prompt "a red fox" --duration 5 --max-price 2 --wait --out fox.mp4
vidlab get gen_... --wait # read a job later, download when done
vidlab upload ./photo.png # prints the link; --image ./photo.png does this by itself
vidlab formats # our ad formats: a finished video from a brief
vidlab format run drama-ad --input brief="A tired dad finally sleeps." --max-price 6 --wait --out ad.mp4
vidlab balance
vidlab setup # the VidLab skill for Claude Code and Codex, and a check of your key--max-priceonrunis the request'smax_cost_usd: a route dearer than it is skipped. Onformat runit approves the price up to that amount.runalways sends anIdempotency-Key, so its own retries never pay twice.--jsonon every command prints one JSON document, errors included:{"error": {"code", "message", "status", "hint"}}.- Exit codes:
0done,1API or network error,2usage error,3the generation or format run failed (nothing charged),4still running when--waitran out,5a format run needs answers. --base-url(orVIDLAB_BASE_URL) points it at another address; the default is https://vidlab.ai.
Input
--prompt, --image <link or file> (repeat for several), --duration, --resolution, --aspect-ratio, --video, --audio, --end-image, --text, --voice, --seed, --n, and --param key=value for any field a model lists (vidlab model <id>). A local file is uploaded first and its link sent.