通过逆向工程实现的 Gemini Web API 生成图像和文本。支持文本生成、根据提示生成图像、用于视觉输入的参考图像以及多轮对话。当其他技能需要图像生成后端,或用户请求“使用 Gemini 生成图像”、“Gemini 文本生成”,或需要具备视觉能力的 AI 生成时使用。
Gemini Web 客户端
通过 Gemini Web API 进行文本/图像生成。支持参考图像和多轮对话。
用户输入工具
当此技能提示用户时,请遵循以下工具选择规则(按优先级顺序):
- 优先使用当前代理运行时暴露的内置用户输入工具,例如
AskUserQuestion、request_user_input、clarify、ask_user或任何等效工具。 - 回退方案:如果不存在此类工具,则输出带编号的纯文本消息,并让用户回复每个问题的编号/答案。
- 批量处理:如果工具支持单次调用多个问题,则将所有适用问题合并为一次调用;如果仅支持单个问题,则按优先级顺序逐个提问。
以下具体的 AskUserQuestion 引用仅为示例——在其他运行时中请替换为本地等效工具。
脚本目录
重要:所有脚本均位于此技能的 scripts/ 子目录中。
代理执行说明:
- 确定此 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 支持:默认模型、代理设置、自定义数据目录。
用法
# 文本生成
${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 [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 进行自定义配置。请参阅首选项部分了解路径和受支持的选项。






