Agent skill

Gflow CLI

by ffroliva in ffroliva/gflow-cli

A skill your agent uses when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including…

MITAuto-check: notesMedia & Creative

Install Gflow CLI

skills CLI
$ npx skills add ffroliva/gflow-cli --skill gflow-cli -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ffroliva/gflow-cli gflow-cli --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ffroliva/gflow-cli.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gflow-cli .claude/skills/gflow-cli && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
gflow-cli
GitHub stars
261
Token cost
~4.8k tokens
SKILL.md length
1,267 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including…

  • Works in 6 steps: Python 3.11+ is available (python… → uv is installed (uv --version). If not,… → gflow-cli is installed OR available via… → …
  • The user wants to drive Google Flow (Veo image-to-video
  • SKILL.md covers When to invoke this skill, Prerequisites, Core commands and Recipes, plus 5 more sections
  • Calls uvx, playwright and uv; reaches astral.sh

What it does

Gflow CLI is an agent skill from ffroliva/gflow-cli. Use when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including text-to-video, image-to-video, image-to-image, batch image pipelines, or spending Flow credits programmatically. The CLI is gflow (or flow); install with uv tool install gflow-cli or run ad-hoc with uvx --from gflow-cli gflow .... Drives the real Flow web UI through a headed Chrome session (Playwright) after a one-time browser sign-in — it does not…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative, covering AI video generation and Image generation. It works with Playwright, Google Gemini and Python. The repository describes itself as: Drive Google Flow from the command line: Veo video and Imagen images, scripted, batched and pipeline-ready. Ships an MCP server so coding agents can drive it too, giving you and… The licence is MIT.

When your agent uses it

  • The user wants to drive Google Flow (Veo image-to-video
  • Veo text-to-video
  • Imagen / Nano Banana image generation) from the terminal
  • A script — including text-to-video

Example prompts

  • “/gflow-cli”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Python 3.11+ is available (python --version).
  2. uv is installed (uv --version). If not, install: curl -LsSf https://astral.sh/uv/install.sh | sh (or Windows equivalent from ).
  3. gflow-cli is installed OR available via uvx
  4. Playwright Chromium has been downloaded once: uvx --from gflow-cli playwright install chromium (~150 MB).
  5. A signed-in profile exists: gflow auth status should print Flow session verified and exit 0 (it probes the live Flow session endpoint — no…
  6. The user has Flow access — any Google account with Flow rolled out works. If gflow image upload returns 403, missing Flow access is the…

What it can do on your machine

Read from SKILL.md and the folder at commit 4f44ac8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • uvx
    • playwright
    • uv
    • python
    • curl
    • sh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • astral.sh

    Also links to:

    • labs.google
    • github.com
    • docs.astral.sh
    • policies.google.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Gflow CLI loads about 4.8k tokens when it runs. Until then it costs about 142 tokens; SKILL.md has 1,267 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~142
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePipes a well-known installer script into a shellSKILL.md:45
    led (`uv --version`). If not, install: `curl -LsSf https://astral.sh/uv/install.sh | sh` (or Windows equivalent from <ht

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ffroliva/gflow-cli at commit 4f44ac8, republished under its MIT licence (© ffroliva). 1,267 words, ~4,753 tokens.

Download SKILL.mdSave it as .claude/skills/gflow-cli/SKILL.md (or your agent's skills folder).
name
gflow-cli
description
Use when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including text-to-video, image-to-video, image-to-image, batch image pipelines, or spending Flow credits programmatically. The CLI is `gflow` (or `flow`); install with `uv tool install gflow-cli` or run ad-hoc with `uvx --from gflow-cli gflow ...`. Drives the real Flow web UI through a headed Chrome session (Playwright) after a one-time browser sign-in — it does not bypass the UI, it automates it.
version
1.2
skillopt_epoch
0
optimization_notes
Known weak spots for the SkillOpt training loop (targets for epoch 1+): - Wrong subcommand: agents emit 'gflow video generate' / 'gflow video create' instead…

gflow-cli skill

gflow-cli is a Python CLI that drives Google Flow — Veo (T2V/I2V) and Imagen / Nano Banana — from the terminal by automating the real Flow web UI in a headed Chrome session (Playwright), not by bypassing it. Source: https://github.com/ffroliva/gflow-cli. Canonical command reference: docs/USAGE.md.

When to invoke this skill

The user wants to:

  • Generate one or many Veo videos from text prompts (T2V) or from initial frame + motion prompt (I2V)
  • Generate one or many Imagen / Nano Banana images from text (T2I) or from prompt + reference images (I2I)
  • Build a batch pipeline for video generations
  • Create a reusable, project-scoped Flow Character (a named subject with reference images, optional voice + personality) for consistent subjects across generations (gflow character)
  • Compose ordered clips into a scene and optionally render a credit-free server-side extended video (gflow scene)
  • Stitch a multi-clip story where each clip is seeded by the previous clip's last frame (gflow video chain)
  • Use their Flow credits via script instead of clicking through the UI
  • Automate Flow inside a content pipeline, AI video production stack, or research project

Do NOT use this skill when:

  • The user wants production-grade reliability with SLAs — recommend the official Gen AI SDK instead.
  • The user asks about audio, music, or anything outside Flow's video/image surface — wrong tool.

Prerequisites

Before any gflow-cli invocation, verify:

  1. Python 3.11+ is available (python --version).
  2. uv is installed (uv --version). If not, install: curl -LsSf https://astral.sh/uv/install.sh | sh (or Windows equivalent from https://docs.astral.sh/uv/).
  3. gflow-cli is installed OR available via uvx:
    • Quick: uvx --from gflow-cli gflow --help (no install)
    • Persistent: uv tool install gflow-cli && gflow --help
  4. Playwright Chromium has been downloaded once: uvx --from gflow-cli playwright install chromium (~150 MB).
  5. A signed-in profile exists: gflow auth status should print Flow session verified and exit 0 (it probes the live Flow session endpoint — no browser, no credits; exit 1 means dead or missing session). If not, run gflow auth login and walk the user through the one-time browser sign-in.
  6. The user has Flow access — any Google account with Flow rolled out works. If gflow image upload returns 403, missing Flow access is the cause.

Core commands

bash
# Auth (one-time)
gflow auth login                                          # opens Chromium, user signs in
gflow auth status                                         # confirms session
gflow auth                                                # bare: list profiles or trigger first login
gflow auth logout                                         # delete a saved session

# Veo video-credit balance (read-only; image models use separate daily quotas)
gflow credits user [--profile NAME] [--json]
gflow credits list [--json]                               # all saved profiles

# Image generation (Imagen / Nano Banana)
gflow image upload <path>                                 # → asset UUID + dimensions
gflow image t2i "<prompt>" [--model {nano2|nano2-lite|nano-pro|image4}] \
                            [--aspect {9:16|16:9|1:1|4:3|3:4}] \
                            [-n 1..4] [--out DIR]
gflow image i2i "<prompt>" --ref PATH_OR_UUID [--ref ...] [...same as t2i]
gflow image upscale <mediaId> --scale {2k|4k} [--project ID] [--out DIR]  # 4K is Ultra-only
gflow image batch <manifest.tsv|manifest.json> [-n 1..4] [--aspect ...] [--out DIR]  # shared project, up to 5 prompts; refuses any row ref (exit 2)
gflow run --config <batch.json>                           # JSON image batch; a row's "ref" may be "batch:N" (an earlier
                                                          # row's image, in place, no upload) or a local file (uploaded once)
# For accounts Flow serves flow.google.com (#639), t2i, i2i, and upscale are ported (a project is
# created when --project is omitted, #864): i2i accepts local --ref files only, all
# five aspects. UUIDs, @Name/entity references, Imagen 4 (image4), and image batch
# are refused there with exit 36.

# Video generation (Veo 3.1)
gflow video t2v "<prompt>" [--project ID] [--model ...] [--duration 4|6|8|10] [--resolution 360p|720p] [--out-dir DIR] [--aspect ...]  # --resolution: omni-flash only; without --project a project is created first, on either host (#864); 10s is omni-flash-only
gflow video i2v --initial-frame <image|media-UUID> "<prompt>" [--out-dir DIR] [...same as t2v]  # UUID = in-project asset, no re-upload (#287; pair with --project)
gflow video upscale <mediaId> --scale {1080p|720p|270p} [--project ID] [--out DIR]  # 1080p = Full HD, 720p = original, 270p = GIF
# `gflow video` has no `batch` subcommand — that stub never worked and was
# removed. For multi-clip runs, loop `gflow video t2v`/`i2v` from the shell.
gflow video chain <manifest.jsonl> [--out-dir DIR] [--dry-run] \
                  [--max-links N] [--resume-from N]   # last-frame I2V chaining; veo models only

# Characters (reusable, project-scoped subjects)
gflow character create --project <id> --name "<name>" --face-prompt "<prompt>" \
                       [--body-prompt "<prompt>"] [--voice <id>] [--personality "<text>"] \
                       [--model {nano2|nanopro}]
gflow character list --project <id>
gflow character show <character-id> --project <id>
gflow character rm --project <id> (--id <character-id> | --name "<name>") [--yes]   # delete (FREE)
gflow character voices                                    # list the Gemini voice catalog

# Scenes (Add Clip / compose ordered clips)
gflow scene create --project <id> <clip-id> [<clip-id> ...] \
                   [-o extended.mp4]                       # --output = credit-free server-side concat
gflow scene show <scene-id> --project <id>

# Agent instructions (project brief cards, credits-free setup) — --project is REQUIRED
gflow instructions add TITLE --text TEXT [--ref REF]... --project ID [--disabled]
gflow instructions list --project ID [--json]
gflow instructions enable (TITLE | --id ID) --project ID
gflow instructions disable (TITLE | --id ID) --project ID
gflow instructions rm (TITLE | --id ID) --project ID
gflow instructions apply FILE --project ID                # declarative full-sync (TOML/JSON)
gflow instructions toggle-mode (--on | --off) --project ID # toggle master agent switch

# Keeping gflow-cli current (every command shows a banner when a newer release exists)
gflow update [--check] [--json]
gflow docs [TOPIC] [--search TERM] [--json]                            # upgrades via uv tool / pipx / pip; source installs refused (exit 11)

Every subcommand accepts --profile <name> (per-subcommand, not global) to drive multiple Google accounts side-by-side.

Recipes

Single image (most common)
bash
gflow image t2i "a hot air balloon over Tokyo at sunrise" --aspect 16:9
Image fan-out (4 variants in parallel)
bash
gflow image t2i "variations of a minimalist fox logo" -n 4 --aspect 1:1 --out ./logos/
Image-to-image with a local reference
bash
gflow image i2i "make it cinematic, golden hour" --ref hero.png
Image-to-image with an already-uploaded asset UUID (no re-upload)
bash
UUID=$(gflow image upload hero.png | awk '/Asset UUID:/ {print $3}')
gflow image i2i "stylize this asset" --ref "$UUID"
Single clip from initial frame
bash
gflow video i2v --initial-frame ./input.png "Slow cinematic push-in, soft golden light at sunset" --out-dir outputs
Batch from a directory of inputs (bash)

There is no manifest-driven video batch command — that stub never worked and was removed. Loop gflow video t2v/i2v from the shell instead:

bash
mkdir -p out
for img in ./inputs/*.png; do
  name=$(basename "$img" .png)
  gflow video i2v --initial-frame "$img" "Cinematic push-in" --out-dir out
done
powershell
New-Item -ItemType Directory -Force -Path out | Out-Null
Get-ChildItem ./inputs/*.png | ForEach-Object {
    gflow video i2v --initial-frame $_.FullName "Cinematic push-in" --out-dir out
}
Create a reusable Character for consistent subjects
bash
# A Character is a named, project-scoped subject reused across generations.
gflow character create --project "$PROJECT_ID" --name "Joaquim" \
  --face-prompt "weathered fisherman, grey beard, kind eyes" \
  --body-prompt "tall, broad-shouldered, wearing a navy wool sweater" \
  --voice <voice-id> --model nano2
gflow character voices            # discover valid --voice ids first
gflow character list --project "$PROJECT_ID"

See docs/CHARACTER.md for the full domain model, wire protocol, and the crash-recoverable persist-before-spend saga.

Compose clips into an extended video (credit-free)
bash
# Concatenate ordered clips server-side via runVideoFxConcatenation — no local ffmpeg, no credits.
gflow scene create --project "$PROJECT_ID" "$CLIP_A" "$CLIP_B" -o extended.mp4
Chain clips by last frame (story stitching)
bash
# manifest.jsonl: one JSON object per line. Link 0 = t2v; later links = i2v seeded by the
# previous clip's last frame. Each link is a pending video operation; credit
# use varies by model/duration/tier — check Flow. veo models only.
gflow video chain ./story.jsonl --out-dir ./out/ --dry-run   # preview the plan first
gflow video chain ./story.jsonl --out-dir ./out/             # then run for real
Sync instructions and generate (3-layer pipeline)
bash
# 1. Discover project ID from Flow editor URL (.../project/<id>/...) or create one.
# 2. Set up the brief cards (credits-free setup).
gflow instructions apply brief.toml --project 6b714c4e-...
# 3. Generate using that project context (steers via reasoning path).
gflow image t2i "a bicycle" --project 6b714c4e-...
Use as a Python library
python
import asyncio
from pathlib import Path
from gflow_cli.api.client import FlowApiClient
from gflow_cli.paths import profile_dir

async def make_clip(image: Path, prompt: str, out: Path) -> None:
    async with FlowApiClient(profile_dir=profile_dir("default")) as client:
        project = await client.create_project(title="gflow-cli demo")
        asset = await client.upload_image(image, project.project_id)
        op = await client.generate_video(
            project_id=project.project_id,
            prompt=prompt,
            start_asset=asset,
            aspect="9:16",
        )
        # Poll op.workflow_id with client.poll_video_status(...) and
        # client.download_video(...) when status reaches succeeded.

asyncio.run(make_clip(Path("in.png"), "Push-in", Path("out.mp4")))

Layered Instructions Pipeline

The gflow-cli supports a 3-layer pipeline for persistent generation context (Agent Mode brief cards):

  1. Layer 1 (Setup - credits-free): Set up the project brief cards using gflow instructions add or gflow instructions apply.
  2. Layer 2 (Generate): Run generations targeting that project with --project <id>. Enabled brief cards are automatically resolved and folded into the prompt via the agent's reasoning path.
  3. Layer 3 (Compose): Scene-level composition overrides via movie.toml [[scene.instructions.card]] or [scene.instructions] disable blocks.
Constraints & Rules:
  • Discover Project ID First: Persistent cards require a real project. Discover the project ID from the Flow browser editor URL (.../project/<id>/...) or create one.
  • DO NOT use the ephemeral -i / --instruction option for anything you want to reuse; it creates a new card every call. Prefer persistent gflow instructions cards.
  • Master Switch: Ensure agent mode is toggled on (gflow instructions toggle-mode --on) for cards to steer output.

Common errors and fixes

ErrorCauseFix
No session for profile 'default'First run, no authgflow auth login
403 Forbidden from upload / generateAccount doesn't have Flow accessVerify in labs.google/fx/tools/flow
reCAPTCHA refuses to mint a token (headless detected)Google bot-detectionSet GFLOW_CLI_HEADLESS=false and re-run; a headed window passes detection. With --json, a mint failure has type …/errors/recaptcha-mint and exits 1; re-run only when retryable is true
Playwright Executable doesn't existChromium not downloadeduvx --from gflow-cli playwright install chromium
Generations all fail with the same UUIDStale Flow sessiongflow auth login again to refresh cookies
Quota exceededBurned through monthly creditsWait for reset, or upgrade subscription
Show full SKILL.md (538 more words)Show less

Important constraints

  • Video costs Flow credits. Video generation draws down the balance shown by gflow credits; image generation uses separate per-model daily quotas. Confirm before running batches.
  • Not for production-grade SLAs. gflow-cli reverse-engineers a private Google API. It can break without notice. For production, use the official Gen AI SDK.
  • Don't share auth profiles. The Playwright profile dir lives at the per-OS user-data location (Windows: %LOCALAPPDATA%\gflow-cli\profile_*; macOS: ~/Library/Application Support/gflow-cli/profile_*; Linux: ~/.local/share/gflow-cli/profile_*) and contains Google session cookies — treat as secrets.
  • Same profile can't run in parallel. Chromium refuses two persistent contexts on the same profile dir; use different --profile names for parallel work.
  • Respect Google's Generative AI Prohibited Use Policy. Don't generate content that would get the user's Google account banned.

Known agent failure modes

Documented errors agents commonly make — negative examples for the SkillOpt training loop:

MistakeCorrect behaviour
gflow video generate or gflow video creategflow video t2v (text→video) or gflow video i2v (image→video)
--output DIR (a directory) as the output location-o/--output PATH is an explicit FILE path on image t2i/i2i and video t2v/i2v (v0.48.0+, single-prompt only); use --out DIR (image) / --out-dir DIR (video) for directory output. r2v/chain have no -o
gflow auth bare or gflow login to sign ingflow auth login — bare gflow auth only lists profiles
gflow auth refresh / gflow auth renew (don't exist)gflow auth login to refresh a stale or expired session
playwright install or playwright install --alluvx --from gflow-cli playwright install chromium (Chromium only, ~150 MB)
Running two generations on the same --profile in parallelUse different --profile names — Chromium refuses two persistent contexts on the same dir
GFLOW_CLI_HEADLESS=true to fix reCAPTCHA failuresGFLOW_CLI_HEADLESS=false — headless mode causes bot-detection, not prevents it
Calling gflow image upload again for an already-uploaded UUIDPass the UUID directly to --ref UUID (i2i) or --initial-frame/--end-frame UUID (i2v, with --project) — no re-upload needed
--model imagen / --model quality / --model high--model image4 (Imagen 3.5), --model nano-pro (Gem Pix 2), --model nano2 (Narwhal)
Python: client = FlowApiClient(...) then method callsMust use async with FlowApiClient(...) as client: — it's an async context manager
Python: from gflow_cli import FlowApiClientfrom gflow_cli.api.client import FlowApiClient
gflow video t2v/i2v/r2v with an unported UUID/entity reference or model on an account served flow.google.com (exit 36)Pass local files instead — migrated hosts support video t2v, local-file i2v/r2v, and image t2i/i2i (local refs) only; exit 36 is non-retryable, GFLOW_CLI_FLOW_HOST=labs.google is the kill switch (see USAGE § gflow video t2v / i2v / r2v and image sections)
Telling a user on flow.google.com whose run exits 25 to retry, switch profile or pass --ui-mode classicTheir account's composer is agent-only — no classic arm exists, so aspect/model/count are Agent-settings defaults and gflow has no driver for it (retryable: false, $0, pre-submit). Nothing in gflow reaches it; the Flow web UI still works (#799). Exit 25 on labs.google IS the retryable A/B cohort — check the host before advising
Suggesting a native batch subcommand under gflow videoIt doesn't exist — that stub never worked and was removed. Loop gflow video t2v/i2v from the shell for multi-clip runs (gflow image batch manifest.tsv|json is the real, working batch command, but it's image-only)

Disclaimer

gflow-cli is not affiliated with Google. Reverse-engineered; may break when Google changes Flow's private API. Read the DISCLAIMER before deploying in any sensitive setting.

© ffroliva, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/gflow-cli of ffroliva/gflow-cli.

Open the folder on GitHubat commit 4f44ac8

Compare with similar skills

Gflow CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Gflow CLI compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gflow CLI this skillffroliva/gflow-cli261—~4.8kAutomated safety check: NotesMIT
Gemini Interactions APIAyuilos/Miffan182—~4.6kAutomated safety check: PassAGPL-3.0
Forge Media Route Layer0x0funky/agent-sprite-forge4.3k—~2.2kAutomated safety check: PassMIT
Seedance Storyboard Generatorliangdabiao/Seedance2-Storyboard-Generator2.5k—~2.2kAutomated safety check: PassNone
Gbro Collage Brollpyang5166/gbro-collage-broll1.3k—~2.6kAutomated safety check: NotesMIT
Gemini Imagetyrchen/geektime-bootcamp-ai2361 repos~1.1kAutomated safety check: PassNone

Similar skills

  • A skill your agent uses when writing code that calls the Gemini API for text generation, multi-turn chat, multimodal understanding, image generation, video generation, streaming responses…

    182 GitHub stars~4.6k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Forge Media Route Layer

    0x0funky/agent-sprite-forge

    Generates an image or an image-to-video clip through a configured provider API or a signed-in Codex or Grok CLI, and reports the route, file, hash and cost estimate.

    4.3k GitHub stars~2.2k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Seedance Storyboard Generator

    liangdabiao/Seedance2-Storyboard-Generator

    专业的Seedance 2.0平台AI视频脚本和分镜生成器。当用户要求:(1) 将文章/故事转换为视频脚本,(2) 生成Seedance 2.0分镜提示词,(3) 规划多集AI视频系列,(4) 为GPT-Image-2、Seedream、Nano Banana…

    2.5k GitHub stars~2.2k tokensUpdated 16 days ago
    Media & CreativeAuto-check passed
  • Gbro Collage Broll

    pyang5166/gbro-collage-broll

    将约 5 秒口播文稿、观点句或抽象概念做成高级 editorial halftone paper-collage / 半调纸拼贴 B-roll。用户说“collage b-roll”“纸拼贴 b-roll”“半调拼贴”“拼贴风格配画面”“用这段文稿做拼贴动画”“gbro-collage-broll”,或希望把一句文稿转成拼贴视觉隐喻时,必须使用此…

    1.3k GitHub stars~2.6k tokensUpdated 2 mo ago
    Media & CreativeAuto-check: notes
  • Gemini Image

    tyrchen/geektime-bootcamp-ai

    Reference guide for using google-genai Python library to generate images with gemini-3-pro-image-preview model.

    236 GitHub starsUsed in 1 repo~1.1k tokens
    Media & CreativeAuto-check passed
  • Image

    smixs/visual-skills

    Image prompting skill for Nano Banana (NBP/NB2) and GPT Image 2.5 (Flare/Sunburst).

    480 GitHub stars~2.1k tokensUpdated 21 days ago
    Media & CreativeAuto-check passed

More from ffroliva/gflow-cli

All 18 skills in this repo
  • Issue Assessment

    ffroliva/gflow-cli

    A skill your agent uses when triaging a GitHub issue for gflow-cli — a reporter's bug claim, a freshly-filed issue, or deciding whether and how to act on one.

    261 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Issue Resolve

    ffroliva/gflow-cli

    A skill your agent uses when an assessed gflow-cli issue (verdict CONFIRMED-BUG or LIKELY-BUG) has localized, verifiable scope and should be driven to a fix.

    261 GitHub stars~3.5k tokensUpdated today
    Auto-check passed
  • Live Verify

    ffroliva/gflow-cli

    Two-part gate for gflow-cli feature/fix work. An agent skill from ffroliva/gflow-cli.

    261 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Video Production

    ffroliva/gflow-cli

    A skill your agent uses when the user wants a finished video out of gflow rather than a single clip — a scripted scene, a talking-head or dialogue piece, an explainer, a product montage, a story…

    261 GitHub stars~7k tokensUpdated today
    Auto-check passed
  • Check

    ffroliva/gflow-cli

    Auto-fix lint and formatting, then report types and tests. An agent skill from ffroliva/gflow-cli.

    261 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Doc Review

    ffroliva/gflow-cli

    Use before cutting any gflow-cli release or after a major documentation change — systematic council-driven audit that combines a mechanical 7-section checklist with a 3-agent parallel review…

    261 GitHub stars~4.2k tokensUpdated today
    Auto-check passed

Questions about Gflow CLI

What does Gflow CLI do?

A skill your agent uses when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including…. Gflow CLI is an agent skill from ffroliva/gflow-cli. Use when the user wants to drive Google Flow (Veo image-to-video, Veo text-to-video, Imagen / Nano Banana image generation) from the terminal or a script — including text-to-video, image-to-video, image-to-image, batch image pipelines, or spending Flow credits programmatically.

When should I use Gflow CLI?

Gflow CLI fits situations like: the user wants to drive Google Flow (Veo image-to-video; veo text-to-video; imagen / Nano Banana image generation) from the terminal; A script — including text-to-video.

How do I install Gflow CLI in Claude Code?

Run `npx skills add ffroliva/gflow-cli --skill gflow-cli -a claude-code`. Or copy the skill folder (skills/gflow-cli in ffroliva/gflow-cli) into .claude/skills/gflow-cli in your project. Claude Code loads it when a task matches its description.

How do I install Gflow CLI in Codex?

Run `npx skills add ffroliva/gflow-cli --skill gflow-cli -a codex`. Or copy the skill folder (skills/gflow-cli in ffroliva/gflow-cli) into .agents/skills/gflow-cli in your project. Codex loads it when a task matches its description.

Can I use Gflow CLI in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ffroliva/gflow-cli --skill gflow-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gflow-cli, .gemini/skills/gflow-cli, .github/skills/gflow-cli and .opencode/skills/gflow-cli in your project.

What does Gflow CLI need to run?

Going by SKILL.md and its folder, Gflow CLI needs the command-line tools its instructions call (uvx, playwright, uv, python, curl and sh). Our summary lists: Python 3.

Does Gflow CLI access the network?

SKILL.md names 5 domains. In commands or code: astral.sh; the agent is likely to contact it when it follows the instructions. As links in the text: labs.google, github.com, docs.astral.sh and policies.google.com. This is read from the text; nothing was executed.

Is Gflow CLI safe to install?

Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Gflow CLI use?

Gflow CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gflow CLI use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gflow CLI?

Skills that share tags, products or a category with Gflow CLI: Gemini Interactions API (Ayuilos/Miffan, 182 stars), Forge Media Route Layer (0x0funky/agent-sprite-forge, 4.3k stars), Seedance Storyboard Generator (liangdabiao/Seedance2-Storyboard-Generator, 2.5k stars) and Gbro Collage Broll (pyang5166/gbro-collage-broll, 1.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gflow CLI?

ffroliva (a GitHub user) maintains it in ffroliva/gflow-cli, which has 261 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 7, 2026.

Source: ffroliva/gflow-cli on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.