flow-behind
OfficialDrives Google Flow (flow.google.com) from an MCP client via the flow_generate, flow_status, flow_list_jobs, and flow_get_job tools, enabling AI agents to submit and monitor Google Flow generations (text-to-image, image-to-image, text-to-video, frame-to-video) and retrieve job progress and resulting file paths from a signed-in browser session.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@flow-behindgenerate an image of a red fox in snow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Flow Behind CLI
Flow Behind brings terminal and AI-agent workflows to Google Flow: images, videos, characters, voices, reusable assets and recoverable batches.
Built by Behind Official for creators and developers who want to drive browser-based creative workflows from their terminal, coding agent or MCP client.
Your terminal / AI agent → Flow Behind CLI → local bridge → browser extension → Google Flow
← progress, results and downloads ←This is a separately packaged, modular adaptation of Flow Connector CLI 1.0.9. It preserves its 16 CLI modes, command options, browser protocol and four MCP tools. See the feature map and review notes for coverage and verification limits.
Requirements
Requirement | When it is needed |
Node.js 20+ and npm | All CLI and MCP commands |
Git | Only for installing from source |
Compatible Flow Connector browser extension | Driving Google Flow through Chrome or Edge |
Signed-in Google Flow session | Generating media; keep the browser window visible |
FFmpeg and ffprobe | Optional local media merging and cleaning |
Related MCP server: BrowserMCP
Install with npm
With Node.js 20 or newer installed, run:
npm install --global flow-behind-cli
flow-behind --version
flow-behind --helpThis installs both flow-behind and flow-behind-mcp. The npm package includes
the built CLI, MCP server and agent skill; no Git clone or build step is needed.
Connect the browser extension using the steps below before generating media.
To update later:
npm install --global flow-behind-cli@latestYou can also run a command without a global install:
npx --yes --package flow-behind-cli flow-behind --helpPackage: flow-behind-cli on npm.
Install from GitHub (development)
Run these commands in PowerShell, Terminal or your preferred shell:
git clone https://github.com/behindofficial/flow-behind-cli.git
cd flow-behind-cli
npm ci
npm run build
npm install -g .
flow-behind --version
flow-behind --helpThe global install makes both flow-behind and flow-behind-mcp available.
If global installation is unavailable, run the CLI directly from the checkout:
node bin/flow-behind.mjs --help
node bin/flow-behind.mjs status --site flowUse the npm installation above for normal use. A checkout is useful for editing
the source, running tests or building a local .tgz with npm pack.
Browser connection
Install a compatible Flow Connector browser extension using the upstream setup instructions. The separately supplied Flow Behind Connector build also uses this protocol; its extension files are distributed separately from this CLI repository. Keep one connector active, open Google Flow, sign in, and keep its browser window visible. This package implements the CLI, bridge and MCP server; the extension performs the actual browser actions. The supplied extension is version 1.2.7. Its plan limits, login requirements and pacing rules remain in force.
Start the bridge in one terminal:
flow-behind bridge startThen check the connection and generate an image from another terminal:
flow-behind status --site flow
flow-behind doctor --site flow
flow-behind generate create flow-text-to-image --prompt "A red fox in snow" --waitThe extension performs the download; the CLI reports job progress and resulting file paths. Available models, credits and access depend on your Google account and the extension provider's plan.
The bridge auto-starts when generation needs it and binds only to
127.0.0.1:8791. Read-only status and doctor do not start it. You can run it
in the foreground with flow-behind bridge start, or use
flow-behind --port 8792 bridge start and configure the extension for that port.
Only one bridge can use a port. An existing compatible bridge can be reused;
to run the new bridge implementation on 8791, first stop the old idle daemon.
Use
flow-behind doctor --site flow
flow-behind modes
flow-behind generate create flow-text-to-image --prompt "A red fox in snow" --wait
flow-behind generate create flow-image-to-image --prompt "Watercolour" --image .\photo.png --wait
flow-behind generate create flow-text-to-video --prompt "Waves at sunset" --duration 8 --wait
flow-behind generate create flow-frame-to-video --prompt "She turns and smiles" --image .\frame.png --wait
# Submit the batch, then inspect it.
flow-behind generate create flow-text-to-image --prompt "First scene" --index 1 --folder campaign
flow-behind generate create flow-text-to-image --prompt "Second scene" --index 2 --folder campaign
flow-behind generate list
flow-behind generate list --failed --run campaign
flow-behind generate resume campaign --dry-run
flow-behind generate resume campaign
flow-behind stop --site flow
flow-behind queue clear --site flow
flow-behind merge .\clip1.mp4 .\clip2.mp4 -o .\final.mp4
flow-behind clean .\own-generation.png --mark flow --mode delogo -o .\clean.png
flow-behind skill install flow-generateFor full options: flow-behind generate create --help. All original defaults are
preserved except product identity and the default download folder (flow-behind).
Some legacy commands default to Grok, including status, stop, queue clear,
reload-extension and clean --mark; pass --site flow / --mark flow explicitly.
merge and clean need FFmpeg and ffprobe on PATH or FFMPEG_PATH pointing to
ffmpeg. Clean supports crop, delogo, logo cover and LaMa inpaint for your own
generated media. The Python runner is included (it was absent from the supplied
package). Inpainting additionally requires Python with torch, numpy, and
pillow, and downloads the LaMa model on first use. Set PYTHON to the Python
executable, or FLOW_BEHIND_LAMA_MODEL to an existing TorchScript model. Images
default to inpaint for --mark flow, falling back to delogo for missing optional
dependencies; videos default to crop. An explicit --mode inpaint fails rather
than silently falling back. This does not remove invisible SynthID metadata or
change the fact that media is AI-generated.
MCP
After the npm global install, configure an MCP client with:
{
"mcpServers": {
"flow-behind": {
"command": "flow-behind-mcp"
}
}
}Without global installation, use node with the absolute path to
bin/flow-behind-mcp.mjs in args. Windows example:
{
"mcpServers": {
"flow-behind": {
"command": "node",
"args": ["C:/path/to/flow-behind-cli/bin/flow-behind-mcp.mjs"]
}
}
}The tool names remain flow_generate, flow_status, flow_list_jobs, and
flow_get_job so existing tool integrations remain compatible. The MCP server
identifies as flow-behind. As in the original product, advanced character,
voice and batch flags are available through the CLI; the four-tool MCP interface
does not expose every CLI option.
Configuration and stored data
Setting | Purpose |
| State folder; defaults to |
| Job submitter label; legacy |
| Disable update/notice fetching and CLI auto-maintenance |
| Retained legacy equivalent |
| Company configuration endpoint with the existing agent-notice schema |
| Explicit npm package to check for releases, once your package is published |
| Optional media executable paths |
| Existing local LaMa model path |
History, run manifests, plan observations and update cache use the new state
folder. Existing ~/.grok-auto data is not overwritten. To use a copy of legacy
history, copy jobs.json and runs/ into the new state folder while both daemons
are stopped. Interrupted jobs become failed on startup, and named runs can be
resumed. Do not run two daemons against the same state folder.
The upstream extension-notice feed remains enabled for compatibility. No prompts
or files are sent to that feed. A branded endpoint can replace it with
FLOW_BEHIND_CONFIG_URL. npm release checks are opt-in until an actual Flow Behind
release package exists. CLI auto-replacement only targets an idle bridge that
identifies itself as this product, not an unrelated process or an upstream bridge.
Develop and verify
npm run check
npm packEdit src/, then rebuild. dist/ contains generated runnable bundles and source
maps; it is ignored by Git and created locally by npm run build.
bin/ contains the two hand-written Node.js entry scripts registered as CLI
commands in package.json, so it is kept in source control. A distributable
package needs both bin/ and dist/: npm pack runs the prepack build and
includes them through the package's explicit files list. Dependencies, logs,
test output and package archives are excluded from the repository.
Tests use temporary state directories and a simulated extension on random ports; they do not submit real Google Flow generations. FFmpeg tests create short local fixtures. LaMa model inference and real browser generation require separate live verification. Source provenance and attribution are in THIRD_PARTY_NOTICES.md.
To update a cloned installation, run git pull --ff-only, npm ci,
npm run build, then npm install -g . from the repository directory.
To remove the global commands, run npm uninstall -g flow-behind-cli.
Troubleshooting
Symptom | What to check |
| Reopen the terminal after installing Node/global package; try |
Bridge is down | Run |
Extension is disconnected | Enable the connector, keep one installation active and use the same bridge port on both sides. |
Job stalls or Flow is hidden | Restore the browser window, sign in to Flow and run |
Plan limit or cooldown | Read the reported quota/reset time; provider account and pacing rules still apply. |
Media tools are unavailable | Install FFmpeg with ffprobe and add them to PATH, or set |
Support and attribution
Report CLI problems in GitHub Issues. Include your OS, Node version, CLI version and relevant diagnostics; remove private prompts, local paths and account details before posting logs.
Licensed under MIT. Upstream Flow Connector CLI contributions are credited in THIRD_PARTY_NOTICES.md. Flow Behind is not affiliated with Google or the original Flow Connector author.
This server cannot be deployed
Maintenance
Related MCP Connectors
Access Kernel's cloud-based browsers and app actions via MCP (remote HTTP + OAuth).
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Browserless MCP — wraps the Browserless headless-Chromium REST API (browserless.io)
Official Browserless MCP server: browser automation, scraping, screenshots and PDFs for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables MCP clients to control a real local browser window for web automation tasks such as clicking, typing, scrolling, and taking screenshots.8 npm-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to connect to a local Bridge that forwards calls to browser-based web apps, allowing usage of Web APIs like JavaScript, Web Workers, and IndexedDB as MCP resources.MIT
- AlicenseAqualityAmaintenanceEnables AI agents to programmatically generate images and videos through the authenticated Google Flow web interface via a direct Chrome DevTools Protocol connection, exposing tools for media generation, project management, status checks, and asset downloads without requiring official API keys.274MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to control a browser over HTTP MCP to open pages, take screenshots, click coordinates, and record audio/video as WebM.MIT