# Baoyu Danger Gemini Web > Genera imágenes y texto mediante la API web de Gemini (ingeniería inversa). Soporta generación de texto e imágenes, imágenes de referencia para visión y conversaciones multi-turno. Fuente: https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-danger-gemini-web Markdown: https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-danger-gemini-web.md Repositorio: https://github.com/JimLiu/baoyu-skills Autor: JimLiu Licencia: MIT Actualizado: el mes pasado Coste de contexto: 89 tok instalada, 1.6k tok al activarse, 24.4k tok con todos los archivos del bundle Bundle: 28 archivos, 95 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent claude-code # Cursor npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent cursor # Codex npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent codex # Gemini CLI npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent gemini # Windsurf npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent windsurf # Cline npx -y skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web --agent cline ``` ## Qué hace - Genera texto e imágenes usando la API web de Gemini mediante ingeniería inversa - Acepta imágenes de referencia como entrada de visión - Mantiene conversaciones multi-turno con sessionId - Autentica vía navegador y cachea cookies automáticamente ## Cuándo usarla - Otra skill necesita un backend de generación de imágenes - El usuario pide 'generar imagen con Gemini' o 'generación de texto con Gemini' - Se necesita generación de IA con capacidad de visión ## Qué la activa - "Genera una imagen de un gato con Gemini" - "Describe esta imagen usando Gemini" - "Continúa esta conversación con Gemini usando el mismo sessionId" ## Antes de instalar - Requiere bun o npx, un navegador Chrome/Chromium/Edge para autenticación, y aceptar un aviso de consentimiento antes del primer uso. - Variables de entorno: BAOYU_CHROME_PROFILE_DIR, BUN_X, GEMINI_WEB_CHROME_PROFILE_DIR, GEMINI_WEB_COOKIE_PATH, GEMINI_WEB_DATA_DIR, GEMINI_WEB_FORCE_LOGIN, GEMINI_WEB_LOGIN, JSON, WSL_DISTRO_NAME - makes network requests - reads environment config ## Archivos - SKILL.md — 6 KB - scripts/bun.lock — 389 B - scripts/gemini-webapi/client.test.ts — 1 KB - scripts/gemini-webapi/client.ts — 23 KB - scripts/gemini-webapi/components/gem-mixin.ts — 6 KB - scripts/gemini-webapi/components/index.ts — 44 B - scripts/gemini-webapi/constants.ts — 4 KB - scripts/gemini-webapi/exceptions.ts — 1 KB - scripts/gemini-webapi/index.ts — 273 B - scripts/gemini-webapi/types/candidate.ts — 1 KB - scripts/gemini-webapi/types/gem.ts — 2 KB - scripts/gemini-webapi/types/grpc.ts — 369 B - scripts/gemini-webapi/types/image.ts — 3 KB - scripts/gemini-webapi/types/index.ts — 232 B - scripts/gemini-webapi/types/modeloutput.ts — 816 B - scripts/gemini-webapi/utils/cookie-file.ts — 2 KB - scripts/gemini-webapi/utils/decorators.ts — 1 KB - scripts/gemini-webapi/utils/get-access-token.ts — 7 KB - scripts/gemini-webapi/utils/http.ts — 2 KB - scripts/gemini-webapi/utils/index.ts — 1021 B - scripts/gemini-webapi/utils/load-browser-cookies.ts — 10 KB - scripts/gemini-webapi/utils/logger.ts — 1 KB - scripts/gemini-webapi/utils/parsing.ts — 1 KB - scripts/gemini-webapi/utils/paths.ts — 2 KB - scripts/gemini-webapi/utils/rotate-1psidts.ts — 1 KB - scripts/gemini-webapi/utils/upload-file.ts — 1 KB - scripts/main.ts — 15 KB - scripts/package.json — 145 B ## SKILL.md Reproducido tal cual desde JimLiu/baoyu-skills bajo MIT. Esta sección es el documento original y está en inglés. # Gemini Web Client Text/image generation via Gemini Web API. Supports reference images and multi-turn conversations. ## User Input Tools When this skill prompts the user, follow this tool-selection rule (priority order): 1. **Prefer built-in user-input tools** exposed by the current agent runtime — e.g., `AskUserQuestion`, `request_user_input`, `clarify`, `ask_user`, or any equivalent. 2. **Fallback**: if no such tool exists, emit a numbered plain-text message and ask the user to reply with the chosen number/answer for each question. 3. **Batching**: if the tool supports multiple questions per call, combine all applicable questions into a single call; if only single-question, ask them one at a time in priority order. Concrete `AskUserQuestion` references below are examples — substitute the local equivalent in other runtimes. ## Script Directory **Important**: All scripts are located in the `scripts/` subdirectory of this skill. **Agent Execution Instructions**: 1. Determine this SKILL.md file's directory path as `{baseDir}` 2. Script path = `{baseDir}/scripts/.ts` 3. Resolve `${BUN_X}` runtime: if `bun` installed → `bun`; if `npx` available → `npx -y bun`; else suggest installing bun 4. Replace all `{baseDir}` and `${BUN_X}` in this document with actual values **Script Reference**: | Script | Purpose | |--------|---------| | `scripts/main.ts` | CLI entry point for text/image generation | | `scripts/gemini-webapi/*` | TypeScript port of `gemini_webapi` (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**: 1. Check if consent file exists with `accepted: true` and `disclaimerVersion: "1.0"` 2. If valid consent exists → print warning with `acceptedAt` date, proceed 3. 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 4. Consent file format: `{"version":1,"accepted":true,"acceptedAt":"","disclaimerVersion":"1.0"}` --- ## Preferences (EXTEND.md) Check EXTEND.md in priority order — the first one found wins: | Priority | Path | Scope | |----------|------|-------| | 1 | `.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md` | Project | | 2 | `${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md` | XDG | | 3 | `$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md` | User home | If none found, use defaults. **EXTEND.md supports**: Default model, proxy settings, custom data directory. ## Usage ```bash # Text generation ${BUN_X} {baseDir}/scripts/main.ts "Your prompt" ${BUN_X} {baseDir}/scripts/main.ts --prompt "Your prompt" --model gemini-3-flash # Image generation ${BUN_X} {baseDir}/scripts/main.ts --prompt "A cute cat" --image cat.png ${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png # Vision input (reference images) ${BUN_X} {baseDir}/scripts/main.ts --prompt "Describe this" --reference image.png ${BUN_X} {baseDir}/scripts/main.ts --prompt "Create variation" --reference a.png --image out.png # Multi-turn conversation ${BUN_X} {baseDir}/scripts/main.ts "Remember: 42" --sessionId session-abc ${BUN_X} {baseDir}/scripts/main.ts "What number?" --sessionId session-abc # JSON output ${BUN_X} {baseDir}/scripts/main.ts "Hello" --json ``` ## Options | Option | Description | |--------|-------------| | `--prompt`, `-p` | Prompt text | | `--promptfiles` | Read prompt from files (concatenated) | | `--model`, `-m` | Model: gemini-3-pro (default), gemini-3-flash, gemini-3-flash-thinking, gemini-3.1-pro-preview | | `--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 | ## Models | Model | Description | |-------|-------------| | `gemini-3-pro` | Default, latest 3.0 Pro | | `gemini-3-flash` | Fast, lightweight 3.0 Flash | | `gemini-3-flash-thinking` | 3.0 Flash with thinking | | `gemini-3.1-pro-preview` | 3.1 Pro preview (empty header, auto-routed) | ## Authentication First run opens browser for Google auth. Cookies cached automatically. When no explicit profile dir is set, cookie refresh may reuse an already-running local Chrome/Chromium debugging session tied to a standard user-data dir. Set `--profile-dir` or `GEMINI_WEB_CHROME_PROFILE_DIR` to force a dedicated profile and skip existing-session reuse. This is a best-effort CDP session reuse path, not the Chrome DevTools MCP prompt-based `--autoConnect` flow described in Chrome's official docs. 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 | |----------|-------------| | `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) | ## Sessions Session files stored in data directory under `sessions/.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. ## Dónde encaja - Categoría: [Herramientas para desarrolladores](https://skillsagentes.com/categorias/herramientas-desarrollo.md) — Skills que cambian cómo tu agente escribe, revisa y despliega código. - Creador: [JimLiu](https://skillsagentes.com/creators/jimliu.md) — 0 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) ## Otras skills del mismo repositorio - [Baoyu Image Gen](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-image-gen.md): Generación de imágenes con IA usando OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate y Agnes; soporta texto a imagen, referencias, aspectos y lotes. - [Baoyu Post To Wechat](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-post-to-wechat.md): Publica contenido en WeChat Official Account (微信公众号) vía API o Chrome CDP, con posts de artículo (文章) o de imagen-texto (贴图/图文). - [Baoyu Wechat Summary](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-wechat-summary.md): Convierte los chats de un grupo de WeChat en un resumen estructurado usando el binario local wx-cli, con historial, perfiles de usuario y memoria de hechos por grupo entre ejecuciones. - [Baoyu Post To X](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-post-to-x.md): Publica contenido y artículos en X (Twitter): posts normales con imágenes/vídeos y X Articles en Markdown, vía plugin Chrome de Codex, Computer Use o scripts CDP. - [Baoyu Cover Image](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-cover-image.md): Genera portadas de artículos con 5 dimensiones (tipo, paleta, renderizado, texto, mood), combinando 11 paletas y 7 estilos de renderizado, en formatos cinematic, widescreen o square. ## Skills relacionadas - [Baoyu Electron Extract](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-electron-extract.md): Extrae recursos y JavaScript de cualquier app Electron instalada (app.asar), restaurando las fuentes originales desde .js.map o formateando el código minificado con Prettier. - [Baoyu Article Illustrator](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-article-illustrator.md): Analiza la estructura del artículo, identifica dónde faltan apoyos visuales y genera ilustraciones combinando Tipo × Estilo × Paleta. Úsalo para "ilustrar artículo", "añadir imágenes" o "为文章配图". - [Baoyu Format Markdown](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-format-markdown.md): Da formato a textos planos o markdown: añade frontmatter, títulos, resúmenes, encabezados, negritas, listas y bloques de código, guardando el resultado en {filename}-formatted.md. - [Baoyu Post To Weibo](https://skillsagentes.com/skills/jimliu/baoyu-skills/baoyu-post-to-weibo.md): Publica en Weibo texto, imágenes y vídeos, y artículos de cabecera (头条文章) en Markdown, usando Chrome vía CDP para evitar la detección anti-bot. - [Release Skills](https://skillsagentes.com/skills/jimliu/baoyu-skills/release-skills.md): Flujo de release universal: detecta archivos de versión y changelogs, soporta Node.js, Python, Rust, Claude Plugin, GitHub Releases, tags anotados y backfill histórico. --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)