Get started with gflow-cli

From install to your first AI-generated image in about 5 minutes. Or hand the whole thing to your AI assistant.

Before you begin
gflow-cli is unofficial, alpha, and reverse-engineered. It drives a headed browser on your own Google Flow session. It requires a Google AI Ultra or Pro subscription with Flow access, and every generation bills your account. Not affiliated with Google.

Prerequisites

Python 3.11+ (uv installs a managed Python) Google AI Ultra or Pro subscription Google Chrome installed Display for one-time browser login
Install

One command puts gflow on your PATH. Then install the browser engine it needs (~150 MB).

Install the CLI:

Terminal
$ uv tool install gflow-cli

Install Chromium (one-time, required by the browser transport):

Terminal
$ uv tool run --from gflow-cli playwright install chromium

Verify the installation:

Terminal
$ gflow --version
Output
gflow, version 0.41.0
Authenticate

A one-time login opens a real Chrome window. Sign in with your Google account, close the window when the Flow editor loads — gflow verifies automatically.

The --browser chrome flag is mandatory — Google rejects Playwright's bundled Chromium.

Terminal
$ gflow auth login --browser chrome
What happens
A Chrome window opens at the Flow sign-in page.
Sign in with your Google account (2FA included).
Keep going until the Flow editor loads.
CLOSE THE BROWSER — gflow verifies automatically.
Session saved.
Profile dir: ~/.local/share/gflow-cli/profile_default
Renamed profile from default to your-name (derived from Google account).

On first run, the profile is created as default then auto-renamed to your email's local-part (e.g. your.name@gmail.comyour-name). Single-account users never have to think about profiles. To use a custom name, pass --profile myname.

Generate

The shortest happy path — one command, real output. Images are free; only Veo video costs credits.

Generate a text-to-image with the --tool creative-director flag, which expands your prompt with Google's 5-component formula before any credits are spent.

Terminal
$ gflow image t2i "a lighthouse in a storm, moody, cinematic" --tool creative-director
Output
Flow project created: project/abc123
Generating images…
out/images/2026-07-20/8f3a1b2c_1.png

Files are saved to the output directory automatically — by default ./out/images/. Route outputs to S3, MinIO, or GCS with external storage.

Turn that still into an 8-second Veo clip. This step costs 1 Veo credit.

Terminal
$ gflow video i2v out/images/2026-07-20/8f3a1b2c_1.png "slow cinematic push-in" --aspect 9:16
Output
Generating video… (~60-90s)
out/videos/2026-07-20/9e4d7f2a.mp4

Video outputs land in ./out/videos/.

Success!
🎬
Your first generation is ready
./out/images/YYYY-MM-DD/<id>_1.png
Files are saved automatically. Image generations are free — only Veo video costs credits.

Troubleshooting

If something goes wrong on this path, here are the most common errors and exactly how to fix them.

AuthBrowserRejectedError (exit 14)
Google rejected Playwright's bundled Chromium as an insecure browser.
Fix: Install Google Chrome from chrome.com, then restart your terminal and run:
gflow auth login --browser chrome
No profiles found (exit 2)
You ran a generation command before authenticating.
Fix: Run the one-time login first:
gflow auth login --browser chrome
Authentication expired (exit 3)
Your browser session is no longer valid.
Fix: Re-authenticate:
gflow auth login --browser chrome
Profile locked (exit 11)
Another process holds this profile directory.
Fix: Close any running gflow serve daemon or stray Chrome windows, then retry.

Let your assistant drive it

Everything above, an agent can do for you. Start the MCP server and point Claude, Cursor, or Copilot at it.

Terminal
$ gflow mcp run
Output
serving over stdio:
• gflow_generate_image
• gflow_generate_video
ready — your assistant can drive Flow.

Just ask in plain language — the agent picks the model, aspect, and prompt tooling. See Agent-driven for the full setup.

Where to next

Authentication → User Guide (15 journeys) → Agent-driven (MCP) → Known issues →