baoyu-danger-gemini-web — скилл для Claude Code: что делает
Генерирует текст и изображения через веб-клиент Gemini. Пригодится, когда нужна генерация картинок или диалог с Gemini без официального API-ключа.
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a claude-codeЧто делает baoyu-danger-gemini-web
Скилл выполняет TypeScript-скрипт scripts/main.ts через Bun или npx -y bun. Он отправляет запросы к веб-версии Gemini, поддерживает генерацию картинок в файл, текстовые ответы и подачу референсных изображений через флаг --reference. Среди доступных моделей есть gemini-3-pro, gemini-3-flash, gemini-3-flash-thinking и превью gemini-3.1-pro-preview. История диалогов сохраняется локально в JSON-файлах при передаче --sessionId.
Авторизация происходит через куки браузера: поддерживаются Chrome, Chromium и Edge. При первом вызове инструмент запрашивает согласие пользователя и фиксирует отметку в consent.json. Настройки по умолчанию, прокси и рабочие каталоги можно переопределять в конфигурационном файле EXTEND.md.
Скилл подойдет разработчикам, которым нужна бесплатная генерация картинок прямо в консоли агента. Если же вам критична абсолютная стабильность без привязки к браузерным куки, надежнее остаться на стандартном API.
Какие задачи решает
- сгенерировать картинку по текстовому описанию и сохранить в файл
- передать референсное изображение для анализа в режиме vision
- сохранять контекст многошагового диалога через параметр
--sessionId - обращаться к моделям линейки Gemini 3 без отдельного ключа API
Примеры запросов агенту
- Сгенерируй изображение кота через gemini-web и сохрани в cat.png
- Опиши содержимое файла ref.png с помощью Gemini
- Отправь вопрос в сессию session-abc с флагом --model gemini-3-flash
Как установить baoyu-danger-gemini-web
1Через Skills CLI (Vercel)
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a claude-code2Вручную: положить файлы
~/.claude/skills/baoyu-danger-gemini-web/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/baoyu-danger-gemini-web/
1Через Skills CLI (Vercel)
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a codex2Вручную: положить файлы
.agents/skills/baoyu-danger-gemini-web/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a cursor2Вручную: положить файлы
.cursor/skills/baoyu-danger-gemini-web/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install JimLiu/baoyu-skills baoyu-danger-gemini-web2Вручную: положить файлы
.github/skills/baoyu-danger-gemini-web/SKILL.md1Через Skills CLI (Vercel)
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a gemini-cli2Командой платформы
gemini skills install https://github.com/JimLiu/baoyu-skills --path skills/baoyu-danger-gemini-webВручную: положить файлы
.devin/skills/baoyu-danger-gemini-web/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора19
Весь набор →Похожие
Вопросы о baoyu-danger-gemini-web
Как установить baoyu-danger-gemini-web в Claude Code?
Выполните команду npx skills add JimLiu/baoyu-skills --skill baoyu-danger-gemini-web -a claude-code в терминале.
Что делает baoyu-danger-gemini-web?
Он обращается к веб-интерфейсу Gemini для текстовых ответов и создания изображений, используя сессию браузера вместо платного API.
Что требуется для запуска этого скилла?
Понадобится установленный bun либо npx, поддерживаемый Chromium-браузер для входа и принятие дисклеймера перед первым запуском.
Исходный текст
SKILL.md · MIT
---
name: baoyu-danger-gemini-web
description: 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.
version: 1.56.2
metadata:
openclaw:
homepage: https://github.com/JimLiu/baoyu-skills#baoyu-danger-gemini-web
requires:
anyBins:
- bun
- npx
---
# 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/<script-name>.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":"<ISO>","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/<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.
© JimLiu · MIT · JimLiu/baoyu-skills