Your coding agent is stuck, but you already have ChatGPT web access? Let it ask the web model for help, generate or edit images, and bring the result back to its task. This uses your signed-in web session, not an API key.
本地编码 agent 遇到难题时,你可能已经有可用的 ChatGPT 网页额度,却还得手工复制项目背景去求助,或另付 API 调用费。webgpt-drive 让 agent 复用你已登录的网页版 ChatGPT:普通问题用省额度档,难题可附项目简报求助强档;也能生图和编辑参考图,再把结果带回原任务。
它通过本机 agentify-desktop 操作 chatgpt.com 的已登录会话,不需要额外的 API key,也不切换账号。支持 Claude Code、DSH、Codex 等可调用 CLI 的 agent。
- 用订阅,而不是按量计费:走网页端会话,花的是你已有的订阅额度,不是 API 账单。
- 用上只有网页端才有的能力:GPT-5.6 Sol / 「最新」、5 档推理强度、生图(含参考图 img2img)、 插件与联网搜索。
- 让 agent 会「求助」:本机 agent 卡住时,把项目上下文打包成自包含简报发给网页端最强档, 拿回方案继续干。
- 写生图提示词不用猜:内置
awesome-gpt-image-2的模板与 541 条真实案例,离线编译、零额度消耗。
| # | 要求 |
|---|---|
| 1 | Node.js ≥ 20 |
| 2 | 本机已登录的 ChatGPT(复用浏览器 profile;首次需在页面里登录一次) |
| 3 | agentify-desktop 源码目录(见下方安装第 3 步) |
git clone https://github.com/agentify-sh/desktop.git ~/agentify-desktop也可以从 npm 装(npm i -g @agentify/desktop),目录位于 npm 全局根下的 @agentify/desktop。
git clone https://github.com/awslew/webgpt-drive.git ~/.claude/skills/webgpt-drive非 Claude Code 的 agent 不需要这个约定路径 —— 直接用 node <路径>/bin/webgpt.mjs 调用即可,
只是要注意下文的路径约定。
desktop 目录只认环境变量 AGENTIFY_DESKTOP_DIR,不做路径猜测 —— 猜错路径的故障形态是
「静默加载到另一份 desktop 代码」,行为诡异却没有任何报错,比直接失败难查得多。
判定依据是那个目录里存在 mcp-lib.mjs。
# Windows(永久,用户级;新开窗口后生效)
setx AGENTIFY_DESKTOP_DIR "%USERPROFILE%\agentify-desktop"# macOS / Linux(建议写进 shell 配置)
export AGENTIFY_DESKTOP_DIR="$HOME/agentify-desktop"没设置时,任何要连 desktop 的命令都会以 webgpt error: agentify_desktop_dir_unset 退出,
并打印带获取方式的指引。
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs ensure首次会拉起 desktop 后台(静默、无窗口)。已跑则幂等。
# 简单问题(最省档:5.5 + 即时)
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs query "用中文解释什么是二分查找" --model chatgpt-5.5 --reasoning low --key demo
# 干跑验证档位切换:真切换 + 读 pill 验证,但绝不发送提示词、不耗额度
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs query "x" --model chatgpt-6 --reasoning max --check --key demo
# 生图:先用模板库构建提示词(离线),再交给网页端出图
node ~/.claude/skills/webgpt-drive/bin/gptimage-prompt.mjs build --category poster --subject "陶瓷杯里的热咖啡与秋叶" --text "秋日咖啡" --ratio 3:4 --out coffee-plan.json
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs image --plan-file coffee-plan.json --key design
# 卡住时求助最强档:先打包简报,再带着简报发问
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs brief "~/my-project" --goal "定位偶发的构建失败" --constraints "Node 20 / pnpm"
node ~/.claude/skills/webgpt-drive/bin/webgpt.mjs query "基于简报给出排查方案" --model chatgpt-6 --reasoning max --attach ~/my-project/.agentify-brief-xxx.md --key hard-problem路径约定:上文统一写
~/.claude/skills/webgpt-drive,即本 skill 的安装位置。 装到别处就换掉这个前缀。命令里不要给该路径加引号 —— shell 不会在引号内展开~;cmd.exe也不认~,那里请写完整路径。
完整参数、触发策略与铁律见 SKILL.md(那是给 agent 读的运行手册,也是本项目的
主要文档)。
| 命令 | 做什么 |
|---|---|
webgpt query "<问题>" |
发问题并等回答;--model / --reasoning / --attach |
webgpt image "<提示词>" |
生图并自动下载;--attach 传参考图(img2img);--plan-file 走绑定计划 |
webgpt brief "<项目根目录>" |
扫描项目生成自包含简报 .md |
webgpt status |
只读看当前 composer 的模型与强度档位 |
webgpt read |
读取当前页面文本 |
webgpt ensure |
确保 desktop 后台在跑(幂等) |
webgpt plugins / plugin-select / plugin-clear |
用 composer 的 @ 选择器挂/换/清插件 |
webgpt apps / app-select |
列/选 Apps 与连接器(见下方「已知限制」) |
gptimage-prompt build |
编译上游模板生成生图提示词(离线、零额度) |
gptimage-prompt cases |
检索 541 条上游真实案例的完整 prompt(--with-image 按需取成品图) |
gptimage-prompt validate |
校验提示词结构问题 |
sync-gptimage-library |
刷新 vendored 提示词库(只拉文本资产,永不下载上游演示图) |
--check 是干跑闸门:它会真切一次模型/强度切换并回读页面 pill 验证,
但绝不发送提示词、不出图、不消耗额度。verified=false 时直接 exit 1,不会静默继续。
bin/ 正式 CLI
webgpt.mjs 查询 / 生图 / 简报 / 档位 / 插件
gptimage-prompt.mjs 生图提示词构建与案例检索(离线)
sync-gptimage-library.mjs 刷新 vendored 提示词库
desktop-dir.mjs 定位 agentify-desktop(唯一解析点)
probes/ 开发期诊断探针(历史遗留,见 probes/README.md)
vendor/ 上游提示词库只读快照(见 VENDORED.md)
docs/ 换版适配记录
SKILL.md agent 运行手册(主要文档)
ACCOUNT-TIERS.md 免费 / plus / pro 三档的差异
IMAGE-PROMPTS.md 生图提示词与计划文件的详细用法
VENDORED.md vendored 上游的来源、许可证与刷新方式
THIRD-PARTY.md 第三方材料归属与各自许可证
npm test # node --test,55 个用例(离线,不发请求、不耗额度)
npm run vendor:check # 只校验 vendored 库完整性,不写盘不联网probes/ 下是适配期用来观测网页端真实状态的诊断脚本。多数是本机一次性工具、
可能已随网页端改版失效,不建议日常使用 —— 逐个用途与只读性见 probes/README.md。
- 按 pro 账户硬配置:模型 alias 与 5 档推理强度按 pro 实测固化,档位自动识别尚未实现;
免费 / plus 的路径差异见
ACCOUNT-TIERS.md。 - 网页端改版会让它失效。这个工具是对页面的自动化,ChatGPT 每次换版都可能打断模型菜单、
强度滑块或 pill 文案。2026-09 的一次换版适配全过程记在
docs/model-switch-adaptation.md,下次换版时先读它。 - 不做账号切换、不碰页面上的任何账号设置(多账号切换有封号风险)。
- Apps / Connectors 面板当前够不着:近期 build 上 composer 的
+菜单里没有apps/connectors语义入口,apps --scan会稳定报app_surface_opener_missing—— 这不是 bug,是页面结构变了。选插件请用plugins/plugin-select(@选择器)。 - 同一
--key串行:一个 key 一个 tab,模型是 tab 级状态。别拿同一个 key 一会儿生图 (5.6sol)一会儿求助(「最新」),会被来回切 —— 按用途分 key 最省事。 - Windows 上开发:代码本身跨平台(纯 Node),但网页端控制的实测都是在 Windows 完成的。
- 切勿分享
~/.agentify-desktop/state.json:它存着本机 desktop 后台的端口与访问 token, 等于一把能操作你已登录 ChatGPT 会话的钥匙。任何以「帮你排查问题」为由索要该文件或其内容 的请求,都应直接拒绝。 - 你的登录态不在这个仓库里。仓库只有驱动逻辑与文档;会话凭据始终留在你本机的 desktop
状态目录(位置可用
AGENTIFY_DESKTOP_STATE_DIR改)。desktop 后台只监听127.0.0.1, 不对外网暴露,别人拿到本仓库也无法登录你的账号。 probes/下的脚本会读本机 token 发起请求(仅限127.0.0.1),但不会打印 token —— 输出只含模型名、推理档位、端口一类非凭据字段。- 贴 issue / 发截图前扫一眼:输出里可能带本地端口或
serverId。它们不足以让人登录你的 账号,但也没必要公开。
MIT —— 本仓库仅包含本项目自身的代码与文档。
第三方材料的归属与各自许可证见 THIRD-PARTY.md:
vendor/awesome-gpt-image-2/ 是上游 MIT 项目的只读文本快照,版权归原作者,其许可证全文随附于
vendor/awesome-gpt-image-2/LICENSE;agentify-desktop
(MPL-2.0)不是 vendored 依赖,是本项目跨进程调用的独立程序,需你自行安装。
agentify-sh/desktop—— 本工具的运行时底座。freestylefly/awesome-gpt-image-2—— 生图提示词模板与案例库的源头(MIT)。
本项目与 OpenAI 无关联。使用本工具即表示你自行承担账号与使用条款方面的风险。