关于 baoyu-danger-gemini-web
这项命令行 Skill 通过 Gemini Web API 生成文本和图片,支持参考图输入与多轮会话,适合通过提示词和已保存对话使用 Gemini Web 的用户。
主要功能
- 01使用可选模型生成文本
- 02根据提示词生成图片
- 03输入参考图片
- 04通过会话进行多轮对话
- 05基于浏览器的 Google 身份验证
适用场景
- 01根据提示词生成文本
- 02结合参考图创建图片
- 03使用已保存会话继续对话
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jimliu/ baoyu-skills --skill baoyu-danger-gemini-web安装后在 Claude Code 中输入/baoyu-danger-gemini-web确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
scripts/bun.lockmain.tspackage.jsonscripts/gemini-webapi/client.test.tsclient.tsconstants.tsexceptions.tsindex.tsscripts/gemini-webapi/components/gem-mixin.tsindex.tsscripts/gemini-webapi/types/candidate.tsgem.tsgrpc.tsimage.tsindex.tsmodeloutput.tsscripts/gemini-webapi/utils/cookie-file.tsdecorators.tsget-access-token.tshttp.tsindex.tsload-browser-cookies.tslogger.tsparsing.tspaths.tsrotate-1psidts.tsupload-file.ts详细介绍
Gemini Web 客户端
通过 Gemini Web API 生成文本和图像。支持参考图像和多轮对话。
用户输入工具
当此技能提示用户时,请按以下优先级选择工具:
- 优先使用当前 Agent 运行时提供的内置用户输入工具,例如
AskUserQuestion、request_user_input、clarify、ask_user或任何等效工具。 - 回退方案:如果没有此类工具,请输出带编号的纯文本消息,并请用户针对每个问题回复所选编号或答案。
- 批量提问:如果工具支持一次调用提出多个问题,请将所有适用问题合并为一次调用;如果只支持单个问题,则按优先级逐个提问。
下面对 AskUserQuestion 的具体引用仅为示例;在其他运行时中,请替换为本地等效工具。
脚本目录
重要:所有脚本都位于此技能的 scripts/ 子目录中。
Agent 执行说明:
- 确定此 SKILL.md 文件所在的目录路径,并将其记为
{baseDir} - 脚本路径 =
{baseDir}/scripts/<script-name>.ts - 解析
${BUN_X}运行时:如果已安装bun→ 使用bun;如果有npx→ 使用npx -y bun;否则建议安装 bun - 将本文档中的所有
{baseDir}和${BUN_X}替换为实际值
脚本参考:
| 脚本 | 用途 |
|---|---|
scripts/main.ts | 用于生成文本/图像的 CLI 入口 |
scripts/gemini-webapi/* | gemini_webapi 的 TypeScript 移植版(GeminiClient、类型、工具函数) |
同意确认(必需)
首次使用前,请确认用户是否同意使用逆向工程 API。
同意文件位置:
- 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
流程:
- 检查同意文件是否存在,且包含
accepted: true和disclaimerVersion: "1.0" - 如果存在有效同意记录 → 打印包含
acceptedAt日期的警告,然后继续 - 如果没有同意记录 → 显示免责声明,并通过
AskUserQuestion询问用户:- “是,我同意” → 创建包含 ISO 时间戳的同意文件,然后继续
- “否,我拒绝” → 输出拒绝消息并停止
- 同意文件格式:
{"version":1,"accepted":true,"acceptedAt":"<ISO>","disclaimerVersion":"1.0"}
偏好设置(EXTEND.md)
按优先级检查 EXTEND.md;找到的第一个文件优先:
| 优先级 | 路径 | 范围 |
|---|---|---|
| 1 | .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md | 项目 |
| 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 | 用户主目录 |
如果未找到,则使用默认设置。
EXTEND.md 支持:默认模型、代理设置、自定义数据目录。
用法
# 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
选项
| 选项 | 描述 |
|---|---|
--prompt, -p | 提示词文本 |
--promptfiles | 从文件读取提示词(拼接后使用) |
--model, -m | 模型:gemini-3-pro(默认)、gemini-3-flash、gemini-3-flash-thinking、gemini-3.1-pro-preview |
--image [path] | 生成图像(默认: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 使用自定义配置。路径和支持的选项请参阅 偏好设置 部分。