baoyu-danger-gemini-web/SKILL.md
Generates images and text via reverse-engineered Gemini Web API. Supports text generation, image generation from prompts, reference images for vision input, and multi-turn conversations. Use when other skills need image generation backend, or when user requests "generate image with Gemini", "Gemini text generation", or needs vision-capable AI generation.
npx skillsauth add atxinsky/skills baoyu-danger-gemini-webInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Text/image generation via Gemini Web API. Supports reference images and multi-turn conversations.
Important: All scripts are located in the scripts/ subdirectory of this skill.
Agent Execution Instructions:
SKILL_DIR${SKILL_DIR}/scripts/<script-name>.ts${SKILL_DIR} in this document with the actual pathScript Reference:
| Script | Purpose |
|--------|---------|
| scripts/main.ts | CLI entry point for text/image generation |
| scripts/gemini-webapi/* | TypeScript port of gemini_webapi (GeminiClient, types, utils) |
Before first use, verify user consent for reverse-engineered API usage.
Consent file locations:
~/Library/Application Support/baoyu-skills/gemini-web/consent.json~/.local/share/baoyu-skills/gemini-web/consent.json%APPDATA%\baoyu-skills\gemini-web\consent.jsonFlow:
accepted: true and disclaimerVersion: "1.0"acceptedAt date, proceedAskUserQuestion:
{"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}Use Bash to check EXTEND.md existence (priority order):
# Check project-level first
test -f .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md && echo "project"
# Then user-level (cross-platform: $HOME works on macOS/Linux/WSL)
test -f "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "user"
┌──────────────────────────────────────────────────────────┬───────────────────┐ │ Path │ Location │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ Project directory │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ User home │ └──────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ Result │ Action │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Found │ Read, parse, apply settings │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ Not found │ Use defaults │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md Supports: Default model | Proxy settings | Custom data directory
# Text generation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Your prompt"
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Your prompt" --model gemini-2.5-pro
# Image generation
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "A cute cat" --image cat.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --promptfiles system.md content.md --image out.png
# Vision input (reference images)
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Describe this" --reference image.png
npx -y bun ${SKILL_DIR}/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png
# Multi-turn conversation
npx -y bun ${SKILL_DIR}/scripts/main.ts "Remember: 42" --sessionId session-abc
npx -y bun ${SKILL_DIR}/scripts/main.ts "What number?" --sessionId session-abc
# JSON output
npx -y bun ${SKILL_DIR}/scripts/main.ts "Hello" --json
| Option | Description |
|--------|-------------|
| --prompt, -p | Prompt text |
| --promptfiles | Read prompt from files (concatenated) |
| --model, -m | Model: gemini-3-pro (default), gemini-2.5-pro, gemini-2.5-flash |
| --image [path] | Generate image (default: generated.png) |
| --reference, --ref | Reference images for vision input |
| --sessionId | Session ID for multi-turn conversation |
| --list-sessions | List saved sessions |
| --json | Output as JSON |
| --login | Refresh cookies, then exit |
| --cookie-path | Custom cookie file path |
| --profile-dir | Chrome profile directory |
| Model | Description |
|-------|-------------|
| gemini-3-pro | Default, latest |
| gemini-2.5-pro | Previous pro |
| gemini-2.5-flash | Fast, lightweight |
First run opens browser for Google auth. Cookies cached automatically.
Supported browsers (auto-detected): Chrome, Chrome Canary/Beta, Chromium, Edge.
Force refresh: --login flag. Override browser: GEMINI_WEB_CHROME_PATH env var.
| Variable | Description |
|----------|-------------|
| GEMINI_WEB_DATA_DIR | Data directory |
| GEMINI_WEB_COOKIE_PATH | Cookie file path |
| GEMINI_WEB_CHROME_PROFILE_DIR | Chrome profile directory |
| GEMINI_WEB_CHROME_PATH | Chrome executable path |
| HTTP_PROXY, HTTPS_PROXY | Proxy for Google access (set inline with command) |
Session files stored in data directory under sessions/<id>.json.
Contains: id, metadata (Gemini chat state), messages array, timestamps.
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.
development
Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like "the xlsx in my downloads") — and wants something done to it or produced from it. Also trigger for cleaning or restructuring messy tabular data files (malformed rows, misplaced headers, junk data) into proper spreadsheets. The deliverable must be a spreadsheet file. Do NOT trigger when the primary deliverable is a Word document, HTML report, standalone Python script, database pipeline, or Google Sheets API integration, even if tabular data is involved.
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
documentation
Create detailed implementation plan with bite-sized tasks