AutoSkill baoyu-danger-gemini-web
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.
git clone https://github.com/ECNU-ICALK/AutoSkill
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/Common/baoyu-skills/baoyu-danger-gemini-web" ~/.claude/skills/ecnu-icalk-autoskill-baoyu-danger-gemini-web && rm -rf "$T"
SkillBank/Common/baoyu-skills/baoyu-danger-gemini-web/SKILL.mdGemini Web Client
Text/image generation via Gemini Web API. Supports reference images and multi-turn conversations.
Script Directory
Important: All scripts are located in the
scripts/ subdirectory of this skill.
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
SKILL_DIR - Script path =
${SKILL_DIR}/scripts/<script-name>.ts - Replace all
in this document with the actual path${SKILL_DIR}
Script Reference:
| Script | Purpose |
|---|---|
| CLI entry point for text/image generation |
| TypeScript port of (GeminiClient, types, utils) |
Consent Check (REQUIRED)
Before first use, verify user consent for reverse-engineered API usage.
Consent file locations:
- macOS:
~/Library/Application Support/baoyu-skills/gemini-web/consent.json - Linux:
~/.local/share/baoyu-skills/gemini-web/consent.json - Windows:
%APPDATA%\baoyu-skills\gemini-web\consent.json
Flow:
- Check if consent file exists with
andaccepted: truedisclaimerVersion: "1.0" - If valid consent exists → print warning with
date, proceedacceptedAt - If no consent → show disclaimer, ask user via
:AskUserQuestion- "Yes, I accept" → create consent file with ISO timestamp, proceed
- "No, I decline" → output decline message, stop
- Consent file format:
{"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}
Preferences (EXTEND.md)
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
Usage
# 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
Options
| Option | Description |
|---|---|
, | Prompt text |
| Read prompt from files (concatenated) |
, | Model: gemini-3-pro (default), gemini-2.5-pro, gemini-2.5-flash |
| Generate image (default: generated.png) |
, | Reference images for vision input |
| Session ID for multi-turn conversation |
| List saved sessions |
| Output as JSON |
| Refresh cookies, then exit |
| Custom cookie file path |
| Chrome profile directory |
Models
| Model | Description |
|---|---|
| Default, latest |
| Previous pro |
| Fast, lightweight |
Authentication
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.
Environment Variables
| Variable | Description |
|---|---|
| Data directory |
| Cookie file path |
| Chrome profile directory |
| Chrome executable path |
, | Proxy for Google access (set inline with command) |
Sessions
Session files stored in data directory under
sessions/<id>.json.
Contains:
id, metadata (Gemini chat state), messages array, timestamps.
Extension Support
Custom configurations via EXTEND.md. See Preferences section for paths and supported options.