agentleFS
redf0x1redf0x1/camofox-browser/skills/gemini-image/SKILL.md

gemini-image

Skill438 starsChanged 8 months agoMITView on GitHub

Automate image generation on Google Gemini (gemini.google.com) using CamoFox CLI. Use when the user asks to "generate image", "create image with Gemini", "AI image generation", "tạo hình ảnh", or needs automated Gemini workflows.

12 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use deepl, imagemagick-conversion and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • zephyrwang6Skill

    deepl

    Übersetzt Texte, Dokumente und XLIFF-Dateien via DeepL API. Verwende für Übersetzungen mit /deepl translate, /deepl file oder /deepl xliff.

    Also in 4 projects that use this

  • zephyrwang6Skill

    imagemagick-conversion

    Convert and manipulate images with ImageMagick. Covers format conversion, resizing, batch processing, quality adjustment, and image transformations. Use when user mentions image conversion, resizing images, ImageMagick, magick command, batch image processing, or thumbnail generation.

    Also in 4 projects that use this

  • +10 more from zephyrwang6

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 4 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use this skill for Gemini image generation flows with CamoFox CLI commands only.

    line 9
  2. Distinctive:

    After first login, save and reuse a session profile.

    line 16
  3. Distinctive:

    When a valid Gemini session is already saved:

    line 20
  4. Very specific:

    All commands below assume --user gemini.

    line 22
  5. Distinctive:

    After entering password, Google may prompt 2FA:

    line 91
  6. Distinctive:

    Session reuse: Always save profile after login.

    line 163
  7. Very specific:

    Locale-agnostic selectors: Use mat-icon[fonticon="..."] instead of text labels.

    line 164
  8. Very specific:

    Wait instead of sleep: Use camofox wait with CSS selectors, not fixed delays.

    line 165

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Gemini Image Generation Skill (CLI)

Use this skill for Gemini image generation flows with CamoFox CLI commands only. Use curl only for download file retrieval from the local CamoFox download API.

1. Prerequisites

  • CamoFox server must be running on port 9377.
  • Google account with Gemini access.
  • First-time login requires email/password and 2FA approval on phone.
  • After first login, save and reuse a session profile.

2. Quick Start (Fast Path — Authenticated)

When a valid Gemini session is already saved:

All commands below assume --user gemini. Add it explicitly in multi-session scenarios.

# Load saved session and open Gemini
camofox open https://gemini.google.com/app --user gemini

# Load saved profile
camofox session load <profile-name> --user gemini

# Verify auth (check for profile avatar, no "Sign in" button)
camofox snapshot --user gemini

# Type image prompt
camofox type <prompt-ref> "your image description here" --user gemini

# Submit prompt
camofox press Enter --user gemini

# Wait for image generation to complete (15-180 seconds)
camofox wait 'mat-icon[fonticon="download"]' --timeout 180000 --user gemini

# Download the generated image
camofox click 'mat-icon[fonticon="download"]' --user gemini

# Cleanup
camofox close --user gemini

3. Authentication Flow

Step 3.1: Check Auth State

camofox open https://gemini.google.com/app --user gemini
camofox snapshot --user gemini
# Look for: "Sign in" button -> NOT authenticated
# Look for: Greeting text "Xin chào..." -> authenticated

Step 3.2: Login (if needed)

# Navigate to Google login
camofox navigate https://accounts.google.com --user gemini

# Enter email
camofox fill '[e1]="email@gmail.com"' --user gemini
# OR
camofox type e1 "email@gmail.com" --user gemini
camofox click e4 --user gemini  # Next button

# Wait for password page
camofox wait 'input[type="password"]' --user gemini
camofox snapshot --user gemini

# Enter password
camofox type e2 "password" --user gemini
camofox click e4 --user gemini  # Next button

Security Tip: For production workflows, store credentials in CamoFox Auth Vault:

camofox auth save google-gemini
# Follow interactive prompts to save credentials securely
camofox auth load google-gemini --user gemini

Step 3.3: 2FA (Push Notification)

After entering password, Google may prompt 2FA:

  • Push notification: user taps "Yes" on phone app.
  • Wait for redirect:
camofox wait 'a[href*="myaccount.google.com"]' --timeout 90000 --user gemini
  • Or wait for URL change away from accounts.google.com:
camofox wait navigation --timeout 90000 --user gemini

Step 3.4: Save Session

camofox session save <profile-name> --user gemini
# Reuse next time with: camofox session load <profile-name> --user gemini

4. Image Generation

# Navigate to Gemini (if not already there)
camofox navigate https://gemini.google.com/app --user gemini

# Snapshot to find prompt input ref
camofox snapshot --user gemini
# Prompt textbox is typically the main textarea element

# Type your image description
camofox type <prompt-ref> "Generate an image of a cute red fox wearing sunglasses in digital art style" --user gemini

# Submit the prompt
camofox press Enter --user gemini

# Wait for generation to complete (15-180 seconds)
# The download button appears when generation is done
camofox wait 'mat-icon[fonticon="download"]' --timeout 180000 --user gemini

# Verify the result
camofox snapshot --user gemini
# Key refs after generation:
# - Download button (mat-icon fonticon="download")
# - Like (mat-icon fonticon="thumb_up")
# - Dislike (mat-icon fonticon="thumb_down")
# - Redo
# - Share

5. Download Generated Image

# Click download button (locale-independent CSS selector)
camofox click 'mat-icon[fonticon="download"]' --user gemini

# Check download status
camofox downloads --format json --user gemini
# Parse `downloadId` from JSON output (for example with `jq -r '.[0].id'`)

# Retrieve the file via REST API
# The click response or downloads command shows the download ID
curl -o "generated-image.png" "http://localhost:9377/downloads/<download-id>/content?userId=gemini"

# Cleanup
camofox close --user gemini

6. Tips & Best Practices

  • Session reuse: Always save profile after login. Load before each run to skip login.
  • Locale-agnostic selectors: Use mat-icon[fonticon="..."] instead of text labels.
  • Wait instead of sleep: Use camofox wait with CSS selectors, not fixed delays.
  • Re-snapshot after actions: Element refs (eN) shift after navigation/interaction.
  • Image prompts: Be descriptive; Gemini performs better with detailed prompts.
  • Rate limits: Free tier has daily image generation limits. If limit is reached, wait or switch account.

7. Error Recovery

ErrorSolution
"Sign in" still visible after session loadSession expired (24-48h). Re-login with email/password + 2FA
wait times out for download buttonImage generation may have failed. Run camofox snapshot and inspect error text
"can't create it right now"Not authenticated. Re-check auth state and login again
"Image Generation Limit Reached"Daily limit reached. Wait 24h or use another account
TAB_NOT_FOUNDTab was invalidated. Open a new tab with camofox open
type does not input textGemini may use custom editor. Fallback: camofox eval 'document.querySelector(".ql-editor").innerHTML = "prompt"'

8. Verified Test Results

  • Account: user@gmail.com (User)
  • Profile: gemini-sky (52 cookies)
  • Test prompt: Generate an image of a cute red fox wearing sunglasses in digital art style
  • Result: 8.1MB PNG (Gemini_Generated_Image_ecu3ujecu3ujecu3.png)
  • Generation time: ~30 seconds
  • Download method: click mat-icon[fonticon="download"]

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.