← Browse

@andyshaman/whisk-proxy

A

Generate images with Google Imagen 4 and Nano Banana for free via Flow API. No API key, no paid subscription — just a Google account and Chrome extension. Use when the user asks to generate, create, or make an image, picture, illustration, logo, banner, or avatar. Triggers: generate image, create picture, make illustration, нарисуй, сгенерируй картинку, создай изображение. Do NOT use for image editing, upscaling, background removal, video generation, or non-Google AI models (DALL-E, Midjourney, Stable Diffusion).

skillclaude

Install

agr install @andyshaman/whisk-proxy --target claude

Writes 4 files into .claude/skills/, pinned to git-4732b909.

  • .claude/skills/whisk-proxy/.gitignore
  • .claude/skills/whisk-proxy/LICENSE
  • .claude/skills/whisk-proxy/README.md
  • .claude/skills/whisk-proxy/SKILL.md

Document


name: whisk-proxy description: > Generate images with Google Imagen 4 and Nano Banana for free via Flow API. No API key, no paid subscription — just a Google account and Chrome extension. Use when the user asks to generate, create, or make an image, picture, illustration, logo, banner, or avatar. Triggers: generate image, create picture, make illustration, нарисуй, сгенерируй картинку, создай изображение. Do NOT use for image editing, upscaling, background removal, video generation, or non-Google AI models (DALL-E, Midjourney, Stable Diffusion).

Flow Image Generator

Generate images using Google Imagen 4, Nano Banana, and Reference-to-Image for free. No API key — uses Chrome extension for OAuth.

Quick Start

# Generate 4 images (Imagen 4, default)
node {baseDir}/scripts/generate.mjs -p "a cat astronaut floating in space"

# Nano Banana (fast, creative)
node {baseDir}/scripts/generate.mjs -p "abstract painting in neon colors" -m banana

# Reference-to-Image (style transfer)
node {baseDir}/scripts/generate.mjs -p "watercolor portrait" -m r2i

# Portrait format, 1 image
node {baseDir}/scripts/generate.mjs -p "anime girl with headphones" -r 9:16 -c 1

# Save to specific folder
node {baseDir}/scripts/generate.mjs -p "sunset over mountains" -o ./images

Models

ModelFlagBest for
Imagen 4-m imagen4 (default)Highest quality, photorealistic
Nano Banana-m bananaFast, creative generation
Reference-to-Image-m r2iStyle transfer

Options

FlagShortDefaultDescription
--prompt-prequiredImage description (English works best)
--model-mimagen4Model: imagen4, banana, r2i
--count-c4Number of images (1-4)
--ratio-r1:1Aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4
--output-o.Output directory
--seed-srandomSeed for reproducibility

Aspect Ratios

  • 1:1 (1024x1024) — avatars, icons, social posts
  • 16:9 (1365x768) — banners, covers, YouTube thumbnails
  • 9:16 (768x1365) — stories, reels, vertical posters
  • 4:3 — classic landscape
  • 3:4 — classic portrait

Authentication

Token stored in ~/.flow-proxy/token.json. The Chrome extension handles auth automatically.

Check token status

node {baseDir}/scripts/status.mjs

First-time setup

  1. Install the Chrome extension from {baseDir}/extension/ (load unpacked)
  2. Open https://labs.google/fx/tools/flow
  3. Sign in with Google
  4. Click the Flow Proxy extension icon → "Connect"

Token auto-refreshes via session cookie (~30 days). After that, repeat step 4.

If token is expired

The CLI script auto-detects expired tokens and starts a local auth server. Just click "Connect" in the Chrome extension — no manual token copying needed.

The agent should check status.mjs first. If token is expired, run generate.mjs — it will start the auth server and wait for the extension. Tell the user to click "Connect" in the extension.

Important

  • Prompts in English produce best results
  • The API is free but rate-limited (Google account level)
  • Images saved as PNG
  • Do NOT read generated PNG files into context — they consume thousands of tokens

Trustgrade A

  • passBody integrity

    Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.

  • passType matchnot applicable to this artifact type

    Whether the artifact is really the kind of thing its metadata claims it is.

  • passFreshness

    How long since the source repository was last pushed to.

  • passPrompt injection

    Scans the artifact's own text for instructions aimed at your agent rather than at you.

  • passLicense

    Whether the source repository declares an SPDX license permissive enough to redistribute.

How the grade is calculated

Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:

  • Aevery check passed
  • Bone warning
  • Ctwo warnings
  • Dprompt injection or body integrity failed, or three warnings
  • Fone of those failed, and something else is wrong

These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.

Versions

  • git-4732b909b27a2026-07-31