baoyu-danger-gemini-web by jimliu/baoyu-skills
npx skills add https://github.com/jimliu/baoyu-skills --skill baoyu-danger-gemini-web通过 Gemini Web API 进行文本/图像生成。支持参考图像和多轮对话。
重要提示:所有脚本均位于此技能的 scripts/ 子目录中。
代理执行指令:
{baseDir}{baseDir}/scripts/<脚本名称>.ts${BUN_X} 运行时:如果已安装 bun → bun;如果 npx 可用 → npx -y bun;否则建议安装 bun广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
{baseDir} 和 ${BUN_X} 替换为实际值脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/main.ts | 文本/图像生成的 CLI 入口点 |
scripts/gemini-webapi/* | gemini_webapi 的 TypeScript 移植版本(GeminiClient、类型、工具) |
首次使用前,请验证用户是否同意使用逆向工程 API。
同意文件位置:
~/Library/Application Support/baoyu-skills/gemini-web/consent.json~/.local/share/baoyu-skills/gemini-web/consent.json%APPDATA%\baoyu-skills\gemini-web\consent.json流程:
accepted: true 和 disclaimerVersion: "1.0"acceptedAt 日期的警告,继续执行AskUserQuestion 询问用户:
{"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}检查 EXTEND.md 是否存在(优先级顺序):
# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md") { "user" }
┌──────────────────────────────────────────────────────────┬───────────────────┐ │ 路径 │ 位置 │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ 项目目录 │ ├──────────────────────────────────────────────────────────┼───────────────────┤ │ $HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md │ 用户主目录 │ └──────────────────────────────────────────────────────────┴───────────────────┘
┌───────────┬───────────────────────────────────────────────────────────────────────────┐ │ 结果 │ 操作 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 找到 │ 读取、解析、应用设置 │ ├───────────┼───────────────────────────────────────────────────────────────────────────┤ │ 未找到 │ 使用默认值 │ └───────────┴───────────────────────────────────────────────────────────────────────────┘
EXTEND.md 支持:默认模型 | 代理设置 | 自定义数据目录
# 文本生成
${BUN_X} {baseDir}/scripts/main.ts "您的提示词"
${BUN_X} {baseDir}/scripts/main.ts --prompt "您的提示词" --model gemini-3-flash
# 图像生成
${BUN_X} {baseDir}/scripts/main.ts --prompt "一只可爱的猫" --image cat.png
${BUN_X} {baseDir}/scripts/main.ts --promptfiles system.md content.md --image out.png
# 视觉输入(参考图像)
${BUN_X} {baseDir}/scripts/main.ts --prompt "描述这个" --reference image.png
${BUN_X} {baseDir}/scripts/main.ts --prompt "创建变体" --reference a.png --image out.png
# 多轮对话
${BUN_X} {baseDir}/scripts/main.ts "记住:42" --sessionId session-abc
${BUN_X} {baseDir}/scripts/main.ts "什么数字?" --sessionId session-abc
# JSON 输出
${BUN_X} {baseDir}/scripts/main.ts "你好" --json
| 选项 | 描述 |
|---|---|
--prompt, -p | 提示词文本 |
--promptfiles | 从文件读取提示词(拼接) |
--model, -m | 模型:gemini-3-pro(默认)、gemini-3-flash、gemini-3-flash-thinking、gemini-3.1-pro-preview |
--image [路径] | 生成图像(默认:generated.png) |
--reference, --ref | 用于视觉输入的参考图像 |
--sessionId | 用于多轮对话的会话 ID |
--list-sessions | 列出已保存的会话 |
--json | 以 JSON 格式输出 |
--login | 刷新 cookie,然后退出 |
--cookie-path | 自定义 cookie 文件路径 |
--profile-dir | Chrome 配置文件目录 |
| 模型 | 描述 |
|---|---|
gemini-3-pro | 默认,最新的 3.0 Pro |
gemini-3-flash | 快速、轻量级的 3.0 Flash |
gemini-3-flash-thinking | 带思考的 3.0 Flash |
gemini-3.1-pro-preview | 3.1 Pro 预览版(空标头,自动路由) |
首次运行会打开浏览器进行 Google 认证。Cookie 会自动缓存。
当未设置显式的配置文件目录时,Cookie 刷新可能会重用已运行的、绑定到标准用户数据目录的本地 Chrome/Chromium 调试会话。设置 --profile-dir 或 GEMINI_WEB_CHROME_PROFILE_DIR 以强制使用专用配置文件,并跳过对现有会话的重用。这是一种尽力而为的 CDP 会话重用路径,而非 Chrome 官方文档中描述的基于 Chrome DevTools MCP 提示的 --autoConnect 流程。
支持的浏览器(自动检测):Chrome、Chrome Canary/Beta、Chromium、Edge。
强制刷新:使用 --login 标志。覆盖浏览器:使用 GEMINI_WEB_CHROME_PATH 环境变量。
| 变量 | 描述 |
|---|---|
GEMINI_WEB_DATA_DIR | 数据目录 |
GEMINI_WEB_COOKIE_PATH | Cookie 文件路径 |
GEMINI_WEB_CHROME_PROFILE_DIR | Chrome 配置文件目录 |
GEMINI_WEB_CHROME_PATH | Chrome 可执行文件路径 |
HTTP_PROXY, HTTPS_PROXY | 用于访问 Google 的代理(随命令内联设置) |
会话文件存储在数据目录下的 sessions/<id>.json 中。
包含:id、metadata(Gemini 聊天状态)、messages 数组、时间戳。
通过 EXTEND.md 进行自定义配置。有关路径和支持的选项,请参阅偏好设置部分。
每周安装量
11.3K
仓库
GitHub 星标数
11.3K
首次出现
2026年1月19日
安全审计
安装于
opencode10.3K
gemini-cli10.0K
codex9.8K
cursor9.5K
github-copilot9.1K
amp8.8K
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 :
{baseDir}{baseDir}/scripts/<script-name>.ts${BUN_X} runtime: if bun installed → bun; if npx available → npx -y bun; else suggest installing bun{baseDir} and ${BUN_X} in this document with actual valuesScript 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"}Check EXTEND.md existence (priority order):
# macOS, Linux, WSL, Git Bash
test -f .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md && echo "project"
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "xdg"
test -f "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md" && echo "user"
# PowerShell (Windows)
if (Test-Path .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md) { "project" }
$xdg = if ($env:XDG_CONFIG_HOME) { $env:XDG_CONFIG_HOME } else { "$HOME/.config" }
if (Test-Path "$xdg/baoyu-skills/baoyu-danger-gemini-web/EXTEND.md") { "xdg" }
if (Test-Path "$HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md") { "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
${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
| 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, |
| 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) |
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.
| 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.
Weekly Installs
11.3K
Repository
GitHub Stars
11.3K
First Seen
Jan 19, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykWarn
Installed on
opencode10.3K
gemini-cli10.0K
codex9.8K
cursor9.5K
github-copilot9.1K
amp8.8K
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
102,200 周安装
--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 |