返回总教程

baoyu-danger-gemini-web 是通过逆向分析 Gemini Web 行为工作的客户端,支持文本、图片、参考图视觉输入和多轮会话。名称中的 danger 不是装饰:它提示接口稳定性、服务条款、账号安全和登录态边界都需要比普通 API 更谨慎地处理。

本文基于固定提交源码核对;案例是操作示例,非付费服务或账号实测。没有实际安装、登录、读取 Cookie、访问 Gemini 或生成内容。

一、适用场景与明确边界

适合在用户已知风险并明确同意的前提下,把合法可用的 Gemini Web 会话用于文本草稿、视觉描述、参考图变化或多轮对话。它可以作为部分视觉技能的后端,但不应被当成稳定的官方 API 替代品。

逆向 Web 接口依赖网页端请求、Cookie、浏览器行为和服务端实现。页面改版、风控、地区策略、模型路由或接口字段变化,都可能让脚本在今天可用、明天失效;源码版本里的模型名也不代表服务端一直提供相同模型。

必须在第一次使用前取得用户同意。该技能的 consent 流程要求检查 Windows %APPDATA%\baoyu-skills\gemini-web\consent.json,确认 accepted: true 且 disclaimerVersion: "1.0"。不存在或版本不符时,应通过交互说明风险并等待“我接受”;用户拒绝则停止。教程不替用户写入同意文件。

登录态边界同样重要:只能使用用户明确授权的、当前浏览器或专用 profile 中的登录状态;不能窃取、导出、共享或猜测 Cookie,不能绕过 Google 登录、验证码、风控、付费墙、组织策略或其他访问控制。本文不提供任何绕过登录或访问控制的内容。

二、前置依赖与按需安装

需要支持 Skills 的 Agent、Bun 或可用 npx -y bun,可自动发现的 Chrome、Chrome Canary/Beta、Chromium 或 Edge,以及用户明确允许使用的浏览器登录态。源码脚本依赖 baoyu-chrome-cdp,位于技能脚本包的 package.json。

README 核实的技能安装入口:

1
npx skills add jimliu/baoyu-skills --skill baoyu-danger-gemini-web --agent codex

Claude Code 用户可将 codex 替换为 claude-code。

只按需安装 baoyu-danger-gemini-web,不要因为它能生成图片就重复安装所有视觉技能。这个命令不固定本文提交;若使用固定源码目录,应保留 scripts/main.ts、scripts/gemini-webapi/ 和包依赖。

首次登录会打开浏览器进行 Google 认证,Cookie 自动缓存。这里的“自动”不等于“无须同意”:用户应知道使用哪个 profile、数据会存在哪里、谁能访问这台机器。建议使用专用浏览器 profile,避免把个人主浏览器中其他站点的会话混入执行环境。

三、输入输出和已核实请求形式

文本输入可以是位置参数或 --prompt,也可以用 --promptfiles 拼接多个文件。图片生成使用 --image 指定路径;视觉输入使用 --reference 或 --ref。多轮对话使用同一个 --sessionId,会话文件保存在数据目录的 sessions/<id>.json,包含聊天状态和消息。

源码帮助和技能文档核实的形式如下,仅作为自然语言请求背后的实现参考,本文不执行:

1
2
3
4
bun C:/path/to/baoyu-danger-gemini-web/scripts/main.ts --prompt "描述这张图" --reference C:/work/ref.png
bun C:/path/to/baoyu-danger-gemini-web/scripts/main.ts --prompt "生成变化版本" --reference C:/work/ref.png --image C:/work/out.png
bun C:/path/to/baoyu-danger-gemini-web/scripts/main.ts "记住:42" --sessionId session-demo
bun C:/path/to/baoyu-danger-gemini-web/scripts/main.ts "刚才记住的数字是什么?" --sessionId session-demo

可核实选项还包括 --model、--json、--login、--cookie-path、--profile-dir 和 --list-sessions。--login 只刷新 Cookie 后退出,不是绕过登录的开关。--profile-dir 用于强制专用 profile;不指定时脚本可能复用正在运行的本地 Chrome/Chromium 调试会话,这是 best-effort 的 CDP 复用,不应误称为官方浏览器自动连接流程。

四、可复制的 Agent 请求

1
2
3
4
5
6
我已阅读并同意 baoyu-danger-gemini-web 的逆向 Web 接口风险。
请先检查合法的 consent 文件与偏好,不要创建或伪造我的同意记录。
本次只用我指定的专用 Chrome profile,处理本地公开资料,不读取其他网站的 Cookie。
请用 Gemini Web 为 notes/topic.md 生成一段中文摘要;若登录态不存在就停止并告知我,不要尝试绕过登录、验证码、风控或访问控制。
先说明将使用的模型、数据文件位置和是否会写入会话,再等待我确认。
本轮不上传参考图、不发布、不保存账号秘密,不调用任何未授权的接口。

允许参考图时,可以改为“这张图由我拥有使用权,使用 --reference 做视觉描述”,仍需限定输出位置和是否保存会话。若只是评估风险,明确写“只检查本地脚本帮助和配置,不登录、不调用 Web 接口”。

五、案例:用专用 profile 对公开笔记做摘要

第一步检查同意。若 consent 文件有效,向用户报告接受时间并再次说明本次会话的逆向接口性质;如果没有有效文件,通过内置用户输入询问是否接受,拒绝就结束。不能把“用户曾经安装过技能”当作永久同意。

第二步检查偏好。技能按项目 .baoyu-skills/baoyu-danger-gemini-web/EXTEND.md、XDG 配置目录、用户 $HOME/.baoyu-skills/baoyu-danger-gemini-web/EXTEND.md 查找;没有时使用默认值。可配置默认模型、代理和自定义数据目录,但代理不是访问控制绕过手段。

第三步划定数据。只选 notes/topic.md 中不含密钥、Cookie、个人联系方式和内部机密的内容。即便用户拥有资料,也要说明文本会送入网页服务;“本地文件”只描述输入位置,不代表处理全程离线。

第四步确认 profile。建议使用专用 profile 目录,并让用户亲自完成正常 Google 登录。脚本能在没有显式 profile 时复用正在运行的浏览器调试会话,这种便利可能带来串号风险;为避免读取个人浏览器,显式指定专用 profile 更清楚。

第五步发送单轮摘要请求,选择源码列出的模型之一,例如 gemini-3-flash 用于较快处理;模型名和可用性仍受服务端变化影响。把返回结果以文本或 JSON 形式保存到用户指定位置,报告会话 ID,不把 Cookie 或完整认证响应写入教程和日志。

第六步验收与清理。核对摘要没有泄漏输入中的秘密,确认会话文件所在数据目录权限合理。用户可以要求列出会话或删除不再需要的会话;删除前先说明影响。不要把一次成功的摘要当作稳定 API SLA,也不要自动发布到博客或社交平台。

六、配置、代理和登录态说明

环境变量已经从源码核对:GEMINI_WEB_DATA_DIR 控制数据目录,GEMINI_WEB_COOKIE_PATH 控制 Cookie 文件,GEMINI_WEB_CHROME_PROFILE_DIR 控制浏览器 profile,GEMINI_WEB_CHROME_PATH 覆盖浏览器程序,HTTP_PROXY 与 HTTPS_PROXY 控制网络代理。

技能还支持 --cookie-path 和 --profile-dir。Cookie 路径属于敏感配置,教程只描述用途,不展示真实文件内容。任何自定义数据目录都应限制权限,避免与团队共享目录混用。代理只能改善合法网络连接,不能用来隐藏未经授权的账号行为、绕过地区限制或访问控制。

会话文件位于数据目录的 sessions/ 下,保存元数据、消息和时间戳。继续同一个 --sessionId 时,脚本会加载保存的聊天元数据来恢复远端对话,并把新消息追加到本地记录;它不是简单把本地消息数组完整拼接重发。旧远端上下文仍可能影响后续回复,因此新项目宜使用新的会话 ID,避免跨项目带入不应沿用的内容。

还需区分技能规则和脚本保障:consent.json 检查、风险提示及 EXTEND.md 的偏好应用写在 Agent 工作流中;已核对的 scripts/main.ts 主流程并未自行读取 consent 或 EXTEND 文件,而是解析参数后初始化客户端。因此不要把直接执行 CLI 当作自动具备同意检查的安全入口,也不要认为只写偏好文件就必然改变裸脚本行为。应由遵循技能规则的 Agent 先检查同意、读取偏好,再把确认后的设置传给脚本。

偏好中的默认模型只是默认建议,正式执行以 Agent 解析并传入脚本的参数为准。若服务端返回错误,应先检查登录态、浏览器兼容和模型可用性,不要通过修改请求去绕过服务端拒绝。

七、验收清单与排错

  • [ ] 首次使用有真实用户同意,consent 文件没有被 Agent 伪造。
  • [ ] 使用的 profile、Cookie 路径和数据目录明确且权限合适。
  • [ ] 输入资料已脱敏,用户知道内容会发往 Web 服务。
  • [ ] 没有读取其他站点会话,也没有绕过登录、验证码、风控或访问控制。
  • [ ] 会话 ID、输出文件和模型有记录,敏感凭证不进入日志。
  • [ ] 结果经过事实、隐私和泄漏检查,没有自动发布。

提示未同意:停止,不能用参数跳过同意检查。登录窗口反复出现:检查专用 profile 路径、浏览器是否支持和用户是否按正常流程登录,不要索取或复制 Cookie。复用错账号:停止运行,关闭复用的浏览器会话并改用专用 profile。模型不可用:选择源码列出的其他模型或等待服务端恢复,不能伪造请求头。接口突然失效:接受逆向接口的固有不稳定性,回退到正式 API 或 图片生成后端,不要反复攻击式重试。摘要带出旧会话内容:更换新 --sessionId 并清理不需要的会话文件。

如果需要发布文章,应把 Web 客户端与 Markdown 转 HTML 或其他发布技能分开,逐步确认输出;本技能自身不负责发布。

八、相关技能与固定源码

图片生成 使用正式 API 提供商路径,认证和稳定性边界不同;文章配图 可把本技能作为潜在后端,但仍须先通过 consent 与登录边界;Markdown 转 HTML 仅负责格式转换,不应接收 Cookie 或会话文件。

固定提交 1567581c26ec29f4216c6e6835415bf30343b0e3: