SKILL.md
$2d
Agent Execution Instructions:
- Determine this SKILL.md file's directory path as
{baseDir}
- Script path =
{baseDir}/scripts/<script-name>.ts
- Resolve
${BUN_X}runtime: ifbuninstalled →bun; ifnpxavailable →npx -y bun; else suggest installing bun
- 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:
- Check if consent file exists with
accepted: trueanddisclaimerVersion: "1.0"
- If valid consent exists → print warning with
acceptedAtdate, proceed
- 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)
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
# 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.