让 Claude Code 直接操作 ChatGPT:一个零成本的网页自动化方案

如果你在用 Claude Code 写代码,同时又需要时不时请教 ChatGPT,你大概率经历过这个场景:

> 停下编码 → 打开浏览器 → 复制粘贴问题 → 等回复 → 再把结果搬回来

一次两次还行,一天十次八次就很打断心流了。

于是有了 **gpt-web-chat-skill** —— 一个让 Claude Code 能直接调用 ChatGPT 网页版的开源自动化工具。

---

一、为什么要做这个?

Claude Code 是很强的 AI 编程助手,但某些场景下用户仍然需要 ChatGPT 的看法:

  • 想对比两个模型的回答
  • 需要 ChatGPT 特有的知识和风格
  • Claude 自己提出"要不要问一下 ChatGPT?"
  • 过去这些场景只能手动操作。这个项目的目的很简单:**打通 Claude Code 和 ChatGPT 之间的壁垒**,让 Claude 像调用一个内部工具一样直接对话 ChatGPT。

    二、解决什么痛点?

    | 痛点 | 方案 |

    |------|------|

    | 需要 API Key 才能集成 ChatGPT | 直接用免费网页版,零成本 |

    | 手动复制粘贴,打断开发流 | 一句指令自动完成完整对话 |

    | 每次都要重新登录 | Chrome User Data 自动持久化登录态 |

    | 浏览器窗口频繁弹出干扰工作 | 默认 headless 后台运行,完全不打扰 |

    | API 有频率限制和按量计费 | 网页版无限制、完全免费 |

    核心思路:**用 Playwright 做浏览器自动化,把 ChatGPT 网页包装成一个可编程接口。**

    三、它能做什么?

    **一句话让 Claude 帮你问 ChatGPT:**

    python scripts/chat.py "用 Python 实现一个 LRU Cache"
    # → 自动打开 ChatGPT → 发送 → 等待回复 → 打印结果

    **更多用法:**

    # 带图片分析
    python scripts/chat.py "这张图里有什么?" -a screenshot.png
    
    # 前台调试模式(显示浏览器窗口)
    python scripts/chat.py --headed "解释这段代码"
    
    # 健康检查(检测运行时状态)
    python scripts/chat.py --health

    **一些关键设计:**

  • 自动管理运行环境:Chrome 没启动会自动启动,已有 Tab 会自动复用
  • 登录过期自动检测:不需要每次手动检查
  • 结构化错误返回:失败时给出明确原因和下一步操作建议
  • 状态机驱动对话引擎:INPUT → SEND → WAIT → DONE,每一步有独立超时
  • 四、它的工作流程

    整个系统分为四个阶段:

    
    你的问题 → chat.py
      │
      ├── Stage 1: 环境检查
      │   ├── 加载 .env 配置
      │   └── 检测网络连通性
      │
      ├── Stage 2: Chrome 运行时
      │   ├── Chrome 已在运行?→ CDP 远程调试连接
      │   └── 未运行?→ 自动启动 Chrome(headless 后台)
      │
      ├── Stage 3: 页面管理
      │   ├── 已有 ChatGPT 标签页?→ 直接复用
      │   ├── 有标签但不是 ChatGPT?→ 导航过去
      │   └── 没有标签?→ 新建标签页并跳转
      │
      └── Stage 4: 对话引擎(状态机)
          ├── INPUT → 输入你的问题
          ├── SEND → 模拟点击发送
          ├── WAIT_FIRST → 等待 ChatGPT 开始回复
          ├── WAIT_STABLE → 等待回复稳定(防流式截断)
          └── DONE → 返回完整回复

    **冷热分离设计:**

  • **Warm Start**(日常 95% 以上的场景):复用已有 Chrome 进程和 ChatGPT Session,后台 headless 运行,5-20 秒完成
  • **Cold Start**(仅首次使用):打开可见浏览器窗口,引导手动登录一次,之后自动复用
  • **状态分类机制:**

    任何操作前先对页面做一次 classify,根据 URL 和 DOM 特征综合判断页面状态(是否已登录、是否需要验证码等),而不是单一依赖 URL 判断。这保证了对 ChatGPT 页面改版的鲁棒性。

    五、快速上手
    # 1. 安装依赖
    pip install playwright
    playwright install chromium
    
    # 2. 配置
    cp .env.example .env
    
    # 3. 首次登录(一次性的)
    python scripts/bootstrap.py
    # → 会打开浏览器窗口,手动登录 ChatGPT 后关闭即可
    
    # 4. 开始使用
    python scripts/chat.py "你好!"

    登录态自动保存在 userdata/ 目录,下次无需再次登录。

    六、关于 Star / Issue / PR / 建议

    这是一个个人开源项目,欢迎各种形式的参与:

  • **⭐ Star** — 如果对你有帮助,点个 Star 就是最大的鼓励
  • **💬 Issue** — 遇到 Bug、有疑问、想讨论,直接开 Issue
  • **🔀 PR** — 代码贡献、文档改进、翻译,什么样的 PR 都欢迎
  • **💡 建议** — 功能建议、架构改进、优化方向,建议开 Discussion / Issue 聊
  • **有疑问直接提 Issue**,我看到就会回复,不需要客气。

    ---

    项目地址:[https://github.com/lainXXX/gpt-web-chat-skill](https://github.com/lainXXX/gpt-web-chat-skill)

    觉得有用的话,欢迎 ⭐ ⭐ ⭐

更多推荐