gemini-skill

WJZ-PMIT活跃维护

通过浏览器自动化把 Gemini 画图能力封装成 MCP 服务和技能,让 OpenClaw 等支持 MCP 的 agent 直接调用生成图片。

gemini drawing MCP & skill through browser, can be used in openclaw or any agent that supports MCP. Gemini画图 MCP和sill,支持龙虾或任何agent使用٩(๑>◡<๑)۶

暂无版本834star +1 / 7 天123fork同步于 2026-11-10 17:55 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/WJZ-P/gemini-skill.git
cd gemini-skill
npm install
硬件要求按 README 说明

README 未说明显存或 GPU 要求;需系统安装 Chrome / Edge / Chromium 任一浏览器,或用 BROWSER_PATH 指定路径,浏览器需提前登录 Google 账号。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

通过 CDP 操控 Gemini 网页版,把生图、对话、图片提取封装成 MCP 工具供任意 Agent 调用

通过浏览器自动化把 Gemini 画图能力封装成 MCP 服务和技能,让 OpenClaw 等支持 MCP 的 agent 直接调用生成图片。

核心能力

  • 用 CDP 直连 Chrome/Edge 操控 Gemini 网页版生图
  • 以标准 MCP 协议暴露生图、对话、图片提取等工具
  • Daemon 常驻管理浏览器,闲置 30 分钟才自动释放
  • 集成 puppeteer-extra-plugin-stealth 做反爬伪装
  • 下载图片时自动移除 Gemini 水印并支持高清原图

容易踩的坑

需 Node.js ≥ 18 且浏览器已登录 Google 账号,否则 Gemini 无法使用;默认 CDP 端口 40821、Daemon 端口 40225,与 OpenClaw 的 18800 复用会失去 Stealth 反爬保护;生图单次耗时约 60~120s,长操作需调大 BROWSER_PROTOCOL_TIMEOUT。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    通过 CDP 操控 Gemini 网页版,实现 AI 生图、对话、图片提取等自动化操作。

    「剥开了尖刺   却正如你曾经说

    赖以生存的温柔只是白纸

    盛着破碎的梦和我们的故事」

    目录

    🆕 最新更新

    v1.1.1(2026-05)— 适配新版模型菜单 UI:

    • ✅ 模型枚举更新:pro / flash / flash-lite(替换旧的 pro / quick / think)
    • ✅ 当前模型读取改为 .picker-primary-text innerText
    • ✅ 模型切换改为遍历菜单项 + label 文本匹配(i18n 安全)
    • 🆕 新增思考深度切换:getThinkingDepth() / setThinkingDepth('standard'|'extended')
    • 🆕 新增 MCP 工具 gemini_set_thinking_depth

    v1.1.0(2026-05)— 已适配 Gemini 2026 年 5 月最新版 UI:

    • ✅ 加号面板按钮(gem-icon-button[arialabel="上传和工具"])
    • ✅ 发送按钮(gem-icon-button.send-button)
    • ✅ 下载完整尺寸按钮(download-generated-image-button 自定义元素)
    • ✅ 图片上传完成检测(.gem-attachment-content.loading)
    • ✅ 状态判断兼容新 UI 的 gem-icon-button 包装层
    • ♻️ 全部选择器保留旧 UI 兜底,新旧版本均可工作

    ☁️ Atlas Cloud Provider

    Atlas Cloud 是一个 full-modal AI inference platform,为开发者提供统一 AI API,可一站式访问视频生成、图像生成和 LLM API。接入一次,即可统一访问跨模态的 300+ 精选模型。

    官方链接:https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=gemini-skill

    Atlas Cloud 现提供新的 coding plan 优惠入口,便于更低成本接入 API: https://www.atlascloud.ai/console/coding-plan

    本仓库现在内置了一个最小侵入的 Atlas Cloud provider 方案:

    • 不改动原有 Gemini 浏览器自动化主链路
    • 新增 OpenAI 兼容的 Atlas Cloud API provider
    • 支持模型枚举、普通对话、Streaming 对话验证
    • 适合把本项目同时作为 Gemini 自动化 skill + MaaS provider 接入样例

    ☁️ 懒得配环境?让 gemini-skill 跑在云上

    不用装 Node、不用搭环境——在 Bloome 上点一下,gemini-skill 就能在云端跑起来,浏览器和手机都行。

    Bloome 是一个 AI Agent IM 平台:把多个 AI agent(Claude、ChatGPT、Gemini、DeepSeek 等)放进同一个对话,像团队成员一样协作——自动分工、互相交接、交叉校验,把结果打磨到靠谱为止,还能直接在对话里出图、生成文档和可视化看板。喜欢用 gemini-skill 画图的话,正好让这支 agent 团队帮你把「想法 → 提示词 → 成图」整条链路跑顺。

    配好的 agent 还能一键分享给朋友、或拉进群一起用,每个人都无需各自部署——零配置、开箱即用,云端随时可跑。👉 立即体验 Bloome

    ✨ 功能特性

    功能说明
    🎨AI 生图发送 prompt 自动生成图片,支持高清原图下载
    💬文本对话与 Gemini 进行多轮对话
    🖼️图片上传上传参考图片,基于参考图生成新图
    📥图片提取提取会话中的图片,支持 base64 和 CDP 完整尺寸下载
    🔄会话管理新建会话、临时会话、切换模型、导航到历史会话
    🧹自动去水印下载的图片自动移除 Gemini 水印
    🤖MCP Server标准 MCP 协议接口,可被任何 MCP 客户端调用
    ☁️Atlas Cloud Provider新增 OpenAI 兼容 Provider,支持模型枚举、文本生成和流式响应验证

    🏗️ 架构

    ┌─────────────────────────────────────────────────────┐
    │                   MCP Client (AI)                   │
    │              Claude / CodeBuddy / ...               │
    └──────────────────────┬──────────────────────────────┘
                           │ stdio (JSON-RPC)
                           ▼
    ┌─────────────────────────────────────────────────────┐
    │               mcp-server.js (MCP 协议层)            │
    │         注册所有 MCP 工具,编排调用流程              │
    └──────────────────────┬──────────────────────────────┘
                           │
                           ▼
    ┌─────────────────────────────────────────────────────┐
    │            index.js → browser.js (连接层)           │
    │   ensureBrowser() → 自动拉起 Daemon → CDP 直连      │
    └──────────┬──────────────────────────────┬───────────┘
               │ HTTP (acquire/status)        │ WebSocket (CDP)
               ▼                              ▼
    ┌──────────────────────┐    ┌─────────────────────────┐
    │   Browser Daemon     │    │     Chrome / Edge        │
    │  (独立后台进程)       │───▶│   gemini.google.com     │
    │  daemon/server.js    │    │                         │
    │  ├─ engine.js        │    │  Stealth + 反爬检测      │
    │  ├─ handlers.js      │    └─────────────────────────┘
    │  └─ lifecycle.js     │
    │     30 分钟惰性销毁   │
    └──────────────────────┘
    

    核心设计理念:

    • Daemon 模式 — 浏览器进程由独立 Daemon 管理,MCP 调用结束后浏览器不关闭,30 分钟无活动才自动释放
    • 按需自启 — Daemon 未运行时 MCP 工具会自动拉起,无需手动启动
    • Stealth 反爬 — 使用 puppeteer-extra-plugin-stealth 绕过网站检测
    • 职责分离 — mcp-server.js(协议层)→ gemini-ops.js(操作层)→ browser.js(连接层)→ daemon/(进程管理)

    📦 安装

    前置条件

    • Node.js ≥ 18
    • Chrome / Edge / Chromium — 系统上需安装任一浏览器(或通过 BROWSER_PATH 指定路径)
    • 浏览器需提前 登录 Google 账号(Gemini 需要登录才能使用)

    安装依赖

    git clone https://github.com/WJZ-P/gemini-skill.git
    cd gemini-skill
    npm install
    

    ⚙️ 配置

    所有配置通过环境变量或 .env 文件设置。项目根目录已提供 .env 模板,可直接修改。

    配置优先级: process.env > .env.development > .env > 代码默认值

    .env.development 不会被 git 追踪,适合存放本地私有配置(如浏览器路径)。

    浏览器配置

    变量默认值说明
    BROWSER_PATH自动检测浏览器可执行文件路径,支持 Chrome / Edge / Chromium。不设则自动按优先级检测系统已安装的浏览器
    BROWSER_DEBUG_PORT40821CDP 远程调试端口。多个 skill(如 douyin-upload-mcp-skill)共享同一端口即共享同一浏览器实例
    BROWSER_HEADLESSfalse是否无头模式。首次使用建议关闭(false),方便登录 Google 账号
    BROWSER_USER_DATA_DIR自动解析浏览器用户数据目录,保存登录态、cookies 等。不设则自动解析:~/.wjz_browser_data → 浏览器默认目录
    BROWSER_PROTOCOL_TIMEOUT60000CDP 协议超时时间(毫秒)。生图等长操作可适当增大

    Daemon 配置

    变量默认值说明
    DAEMON_PORT40225Daemon HTTP 服务端口
    DAEMON_TTL_MS1800000闲置超时时间(毫秒),默认 30 分钟。超时后自动关闭浏览器并退出 Daemon,下次调用时自动重新拉起

    其他配置

    变量默认值说明
    OUTPUT_DIR./gemini-image图片输出目录
    ATLAS_BASE_URLhttps://api.atlascloud.ai/v1Atlas Cloud OpenAI 兼容接口基础地址
    ATLAS_API_KEY空Atlas Cloud API Key,建议写入 .env.development
    ATLAS_MODELopenai/gpt-4o-miniAtlas Cloud 默认模型
    ATLAS_REQUEST_TIMEOUT_MS60000Atlas Cloud 请求超时(毫秒)

    关于 OpenClaw 浏览器复用

    OpenClaw 的默认 CDP 端口是 18800。如果你希望复用 OpenClaw 已启动的浏览器会话,可以将 BROWSER_DEBUG_PORT 改为 18800:

    BROWSER_DEBUG_PORT=18800
    

    但请注意:OpenClaw 自带的浏览器会话没有集成 Stealth 反爬插件,在反检测能力上不如本项目自行维护的浏览器实例。本项目使用 puppeteer-extra-plugin-stealth 提供了完整的反爬保护(隐藏 webdriver 标记、模拟真实浏览器指纹等),能更好地规避网站的自动化检测。

    建议:除非有特殊需求,推荐使用默认端口 40821,让项目自行管理浏览器实例以获得最佳的反爬效果。

    ☁️ Atlas Cloud Provider

    配置

    推荐将本地私有 Key 写入 .env.development:

    ATLAS_API_KEY=your_atlas_api_key
    ATLAS_BASE_URL=https://api.atlascloud.ai/v1
    ATLAS_MODEL=openai/gpt-4o-mini
    ATLAS_REQUEST_TIMEOUT_MS=60000
    

    能力说明

    • atlas_list_models:列出当前 API Key 可见模型
    • atlas_send_message:调用非流式文本对话
    • atlas_stream_message:消费 Atlas 流式输出并聚合返回,便于做集成验证

    设计原则

    • 走纯 API,不依赖浏览器和 Gemini 登录态
    • 保持对 Atlas Cloud OpenAI 兼容格式的直接透传
    • 不破坏现有 gemini_* MCP 工具和调用方式

    🚀 使用

    方式一:作为 MCP Server(推荐)

    在 MCP 客户端配置文件中添加:

    {
      "mcpServers": {
        "gemini": {
          "command": "node",
          "args": ["<项目绝对路径>/src/mcp-server.js"]
        }
      }
    }
    

    启动后 AI 即可通过 MCP 协议调用所有工具。

    方式二:命令行启动

    # 启动 MCP Server(stdio 模式,供 AI 客户端调用)
    npm run mcp
    
    # 单独启动 Browser Daemon(通常不需要,MCP 会自动拉起)
    npm run daemon
    
    # 运行 Demo 示例
    npm run demo
    

    方式三:作为库调用

    import { createGeminiSession, disconnect } from './src/index.js';
    
    const { ops } = await createGeminiSession();
    
    // 生图
    const result = await ops.generateImage('画一只可爱的猫咪', { fullSize: true });
    console.log('图片保存至:', result.filePath);
    
    // 用完断开(不关浏览器,由 Daemon 继续守护)
    disconnect();
    

    方式四:调用 Atlas Cloud Provider

    import { createAtlasProvider } from './src/index.js';
    
    const atlas = createAtlasProvider();
    
    const result = await atlas.createChatCompletion({
      model: 'openai/gpt-4o-mini',
      messages: [
        { role: 'system', content: 'You are a helpful assistant.' },
        { role: 'user', content: 'Reply with OK only.' }
      ],
      temperature: 0,
      max_tokens: 16,
    });
    
    console.log(result.choices[0].message.content);
    

    🔧 MCP 工具列表

    Atlas Cloud Provider

    工具名说明主要参数
    atlas_list_models获取当前 Atlas Cloud API Key 可见模型无
    atlas_send_message发送 Atlas Cloud 非流式对话请求model, messages, temperature, max_tokens
    atlas_stream_message验证 Atlas Cloud Streaming 接口并聚合返回model, messages, temperature, max_tokens

    核心生图

    工具名说明主要参数
    gemini_generate_image完整生图流程(耗时 60~120s)prompt, newSession, referenceImages, fullSize, timeout

    会话管理

    工具名说明主要参数
    gemini_new_chat新建空白对话无
    gemini_temp_chat进入临时对话模式无
    gemini_navigate_to导航到指定 Gemini URL(如历史会话)url, timeout

    模型与对话

    工具名说明主要参数
    gemini_switch_model切换模型(pro/quick/think)model
    gemini_send_message发送文本并等待回复(耗时 10~60s)message, timeout

    图片操作

    工具名说明主要参数
    gemini_upload_images上传图片到输入框images
    gemini_get_images获取会话中所有图片元信息无
    gemini_extract_image提取图片 base64 并保存本地imageUrl
    gemini_download_full_size_image下载完整尺寸高清图片index
    gemini_share_latest_image为图片创建公开分享链接并返回 https://gemini.google.com/share/...index, timeout, copyToClipboard, closeDialog

    文字回复

    工具名说明主要参数
    gemini_get_all_text_responses获取所有文字回复无
    gemini_get_latest_text_response获取最新一条文字回复无

    诊断与管理

    工具名说明主要参数
    gemini_check_login检查 Google 登录状态无
    gemini_probe探测页面元素状态无
    gemini_reload_page刷新页面timeout
    gemini_browser_info获取浏览器连接信息无

    🔄 Daemon 生命周期

    首次 MCP 调用
      │
      ├─ Daemon 未运行 → 自动 spawn(detached + unref)
      │                    → 轮询等待就绪(最多 15s)
      │
      ├─ GET /browser/acquire → 启动/复用浏览器 + 重置 30 分钟倒计时
      │
      ├─ MCP 工具执行完毕 → disconnect()(断开 WebSocket,不关浏览器)
      │
      ├─ 30 分钟内再次调用 → 重置倒计时(续命)
      │
      └─ 30 分钟无人使用 → 关闭浏览器 + 关闭 HTTP 服务 + 退出进程
                             (下次调用时自动重新拉起)
    

    Daemon API 端点:

    端点说明
    GET /browser/acquire获取浏览器连接(会续命)
    GET /browser/status查询浏览器状态(不续命)
    POST /browser/release主动销毁浏览器
    GET /healthDaemon 健康检查

    📁 项目结构

    gemini-skill/
    ├── src/
    │   ├── index.js               # 统一入口
    │   ├── mcp-server.js          # MCP 协议服务(注册所有工具)
    │   ├── gemini-ops.js          # Gemini 页面操作(核心逻辑)
    │   ├── operator.js            # 底层 DOM 操作封装
    │   ├── browser.js             # 浏览器连接器(面向 Skill)
    │   ├── config.js              # 统一配置中心
    │   ├── util.js                # 工具函数
    │   ├── watermark-remover.js   # 图片去水印(基于 sharp)
    │   ├── demo.js                # 使用示例
    │   ├── assets/                # 静态资源
    │   └── daemon/                # Browser Daemon(独立进程)
    │       ├── server.js          # HTTP 微服务入口
    │       ├── engine.js          # 浏览器引擎(launch/connect/terminate)
    │       ├── handlers.js        # API 路由处理器
    │       └── lifecycle.js       # 生命周期控制(惰性销毁倒计时)
    ├── references/                # 参考文档
    ├── SKILL.md                   # AI 调用规范(MCP 客户端读取)
    ├── package.json
    └── .env                       # 环境配置(需自行创建)
    

    ⚠️ 注意事项

    1. 首次使用需登录 — 第一次运行时浏览器会打开 Gemini 页面,请手动完成 Google 账号登录。登录状态会保存在 userDataDir 中,后续无需重复登录。

    2. 不要同时运行多个实例 — 同一个 CDP 端口只能有一个浏览器实例,否则会端口冲突。

    3. Windows Server 注意 — 已内置路径规范化和 Safe Browsing 绕过,但仍建议检查:

      • Chrome/Edge 已正确安装
      • 输出目录有写入权限
      • 防火墙未阻断 localhost 通信
    4. 生图耗时较长 — 通常 60~120 秒,MCP 客户端的 timeoutMs 建议设为 ≥ 180000(3 分钟)。

    📝 To Do List

    • MCP 协议全量工具注册
    • Daemon 进程按需自启
    • 高清原图 CDP 下载
    • 自动去水印
    • 参考图上传 & 图生图
    • 历史会话导航
    • 多浏览器实例并行支持
    • 支持音乐生成
    • 支持视频生成

    📄 License

    该项目签署了 MIT 授权许可,详情请参阅 LICENSE

    LINUX DO

    本项目支持 LINUX DO 社区

    如果觉得好用,请给个 ⭐ 支持一下!

    ⭐ Star 历史

    Stargazers over time

    // osai-verify: 5701044c58cd60527367