Command line

Generate from your terminal
One command. Scriptable, pipeable, CI-ready.

Video, images and voice from the command line — by hand, from a script, or by a coding agent that already lives in your shell. Sign in with your browser once; no API key.

Install

$ npm i -g @vidofy/cli

Needs Node 18 or newer. Works on macOS, Linux, Windows and inside a container.

Built for agents that live in a shell

Claude Code Claude Code Codex Codex Cursor Cursor Scripts & CI
Agent install

Or Don't Install It — Ask Your Agent To

Paste this into Claude Code, Codex or Cursor. It installs, signs you in and reports back with your balance.

Send this to your agent
Set up Vidofy so you can generate images, video and voice from here. 1. Install the CLI: run `npm i -g @vidofy/cli`. 2. Sign in: run `vidofy auth login`. It opens a browser — stop there and wait for me to tell you I have finished signing in. 3. Confirm it worked: run `vidofy balance` and show me the number. Then tell me Vidofy is ready.

The browser step is yours — the agent stops and waits for you there, because approving an account is not something it should do on your behalf.

Quickstart

From Nothing to a File in Two Commands

Sign in once per machine. After that every generation is a single command.

Step 1

Install

$ npm i -g @vidofy/cli

Global install from npm. Node 18 or newer.

Step 2

Sign in

$ vidofy auth login

Opens your browser, you approve once, and the token is written to ~/.vidofy/ on this machine. No key to paste.

Step 3

Generate

$ vidofy generate create \ --model flux-schnell-t2i \ --prompt "a red bicycle" \ --aspect_ratio 1:1 \ --wait

Runs it and waits for the file. Drop --wait and it prints an id you can poll later.

Examples

Commands You Can Paste as They Are

Every model below is live in the catalogue right now, and the price next to it is the real cost of that command — both read from the same place the studio reads.

An image from a prompt

Flux Schnell from 1 credit
$ vidofy generate create \ --model flux-schnell-t2i \ --prompt "your prompt" \ --aspect_ratio 1:1 \ --wait

A video from a photo you have

Pixverse V6 from 14 credits
$ vidofy generate create \ --model pixverse-v6-i2v \ --prompt "your prompt" \ --image ./photo.jpg \ --aspect_ratio 1:1 \ --duration 3 \ --resolution 360 \ --wait

Speech from text

Speech 2.8 Turbo from 5 credits
$ vidofy generate create \ --model speech-2-8-turbo-t2s \ --prompt "your prompt" \ --voice_id Wise_Woman \ --wait

Check the price without spending

$ vidofy generate create --model flux-schnell-t2i --prompt "…" --aspect_ratio 1:1 --dry-run

Prints the cost and exits. Nothing is charged and no job starts.

Not sure which model? vidofy models list --mode text-to-image lists what is available with the price of each.

Model catalogue

Every Model, One Command Away

Name any of these after --model. No separate subscription for each, and nothing to enable first — a model added today is reachable from your terminal today.

vidofy models list --mode text-to-video prints the full catalogue for any mode, with the price of each.

Why a terminal

What a Terminal Gives You That a Browser Cannot

Not more models and not a better price — those are the same everywhere. It is where you are standing when you ask.

Your agent is already in the project

It is generating the hero image while looking at the page it goes on — your copy, your palette, the file it has to write. Nothing to describe again in another tab, and nothing to carry back.

Local files go straight in

--image ./photo.jpg reads from your disk. A web assistant needs the file uploaded or hosted somewhere first; a shell already has it, and so does anything the agent has just produced.

It composes with everything else

Pipe the output, loop it over a CSV of prompts, make it a step in a Makefile. A command is a thing other commands can use — a conversation is not.

It runs with nobody watching

A cron job, a CI step, a nightly build. Sign in once on a machine that has a browser, carry the token to the one that does not, and it keeps going without you.

Output

And the File Lands on Your Disk

Not a link to open and save. The path is the last line it prints, so a script can take it straight from there.

$ vidofy generate create --model flux-schnell-t2i --prompt "…" --aspect_ratio 1:1 --wait

Writes the file into the directory you are standing in and prints its full path as the last line.

$ vidofy generate create … --wait --output ./assets/hero.png

Writes it where you say. Give it a directory and it keeps the generated name.

$ vidofy generate get <id>

Without --wait you get an id straight away. Fetch the file whenever it suits you — the job runs either way.

Which is why it fits in a build

HERO=$(vidofy generate create … --wait) puts the path in a variable, and the next step of your script uses it like any other file it produced itself.

CLI or connector

Or Should You Use the Connector Instead?

Same account, same credits, same models. The difference is who is typing.

Use the CLI

  • You are in a terminal, or an agent that runs commands is (Claude Code, Codex).
  • It has to run unattended — a script, a cron job, a CI pipeline.
  • You want the output in a pipe, or as JSON another tool reads.
  • You know which model you want and want to name it yourself.

Use the MCP connector

  • You work in claude.ai or ChatGPT — a web chat has no shell, so the connector is the only way in.
  • You would rather describe the result than pick a model and flags.
  • You want the finished image or video to appear in the conversation.
  • You want the assistant to price it, run it and follow it for you.
See the MCP connector

Nothing stops you using both — they share one account and one balance, and a generation started in either shows up in the same studio history.

Security

Sign In, Don't Paste a Key

vidofy auth login opens your browser. You approve once, and the token is written to ~/.vidofy/ on that machine — never in your shell history, never in a committed config file. Revoke it from your account at any time and that machine stops, while your other machines carry on.

FAQ

Questions, Answered

What people ask before they install it.

Do I need an API key?

No. Run vidofy auth login and it opens your browser, you approve once, and the token is stored in ~/.vidofy/ on that machine. Nothing to copy into a config file and nothing to paste into a script.

How is this different from the MCP connector?

The connector is for a conversation — you ask in words and Claude or ChatGPT chooses the model and the settings. The CLI is for a terminal: you name the model and the flags, and the output is predictable enough to put in a pipeline or a CI job. Same account, same credits, different hands. Web assistants have no shell, so the connector is the only way to reach them; a coding agent already has one, so the CLI is usually the better fit there.

Does it cost the same as the website?

Exactly the same. One account, one balance — a generation started from your terminal costs what the same generation costs in the studio and appears in the same history.

Can I see the price before spending anything?

Yes — add --dry-run to any generate command and it prints the cost and exits without charging you or starting a job.

Can I use it in CI, or on a server with no browser?

Yes. Create a personal token at Studio → Account → MCP Access and put it in the VIDOFY_TOKEN environment variable on the machine with no browser. Create one for the build box rather than reusing the token `vidofy auth login` wrote on your own machine — a token made this way is a separate credential you can revoke on its own, and it is the only kind that environment variable accepts.

Which models can it use?

The whole catalogue — the same models the studio and the connector see. Run vidofy models list --mode text-to-image (or any other mode) to see what is available right now, with the price of each.

Does it work on Windows and Linux?

Yes. It installs from npm, so anywhere Node runs — macOS, Linux, Windows, and inside a container.

Where does the generated file go?

With --wait it is downloaded into the directory you ran the command in, and the full path is printed as the last line — so HERO=$(vidofy generate create … --wait) captures it. Use --output to choose a different path, or drop --wait to get an id now and run vidofy generate get <id> later.

Can I use an image from my own computer?

Yes — --image ./photo.jpg reads straight from your disk, and so does any file your agent has just written. This is the one thing a terminal does that a web assistant cannot: the connector needs the file uploaded or hosted somewhere it can reach first, and a shell already has it.

One install, then it is just a command

npm i -g @vidofy/cli

Create a free account