跳转到内容

ChatGPT 浏览器引擎

repo-harness chatgpt browser-* 使用本地已登录的 ChatGPT Web 会话来做规划和审查。它使用 OpenAI API,也需要 OPENAI_API_KEY。Prompt 由显式指定的仓库文件构建,每次运行都保存为一份 repo-local 的会话记录。

浏览器引擎跑在 Oracle 上——repo-harness 把 oracle --engine browser 作为默认、推荐的 provider 来封装。更早的自研 Chrome 引擎只作为已弃用的诊断手段保留。

它做什么

从显式指定的文件构建经策略检查的 prompt 包,通过 Oracle 驱动 ChatGPT Web,并把会话记录保存在 .ai/harness/chatgpt/sessions/<sessionId>/ 下。

它不做什么

绝不索要用户名、密码、SSO 密钥、2FA 验证码、cookie 或浏览器 token。不会上传任意仓库文件,不会默认启用远程 CDP,也绝不把模型回复当作事实来源——repo-local 的会话存储才是审计记录。

  1. 创建会话根目录并打印推荐的忽略规则(浏览器状态保留在本地):

    Terminal window
    repo-harness chatgpt browser-setup --repo .
  2. 让一个固定版本的 Oracle 二进制可被解析——放在你的 PATH 上,或仓库的 node_modules/.bin 里。 Oracle 是一个可选的外部 CLI,有自己的运行时要求(Node ≥ 24),与 repo-harness 的 Bun 运行时相互独立。

  3. 验证引擎已就绪(这是 Oracle 运行时边界的权威判断):

    Terminal window
    repo-harness chatgpt browser-doctor --repo . --provider oracle --json

    反复运行直到它报告 status: "ready"。如果它报告 nodeCompatible: false,先修复或重装 Oracle 的 Node 运行时。

在不打开 ChatGPT 的情况下校验 prompt、文件策略、内联大小和会话写入路径。它会保存一个 dry_run 会话。

Terminal window
repo-harness chatgpt browser-consult \
--repo . \
--dry-run \
--prompt "Review this sprint." \
--file plans/sprints/example.sprint.md \
--model "GPT-5 Pro" \
--thinking heavy

Oracle 是默认 provider,所以 --provider oracle 是可选的,这里写出来只是为了清楚。

Terminal window
repo-harness chatgpt browser-consult \
--repo . \
--provider oracle \
--prompt "Review this PRD and return risks." \
--file plans/prds/example.prd.md \
--follow-up "Challenge your previous recommendation." \
--write-output .ai/harness/handoff/gptpro/chatgpt-review.md
Terminal window
repo-harness chatgpt browser-list --repo .
repo-harness chatgpt browser-session --repo . chgpt_20260617_120530_review-sprint
repo-harness chatgpt browser-session --repo . chgpt_20260617_120530_review-sprint --metadata-only
repo-harness chatgpt browser-open --repo . chgpt_20260617_120530_review-sprint

每个会话都是一份自包含的记录:

  • 文件夹.ai/harness/chatgpt/sessions/
    • 文件夹<sessionId>/
      • meta.json 元数据、时间戳、provider 信息
      • prompt.md 输入 prompt
      • transcript.md 完整对话
      • output.md 捕获的 assistant 响应
      • events.jsonl 结构化事件流
      • 文件夹artifacts/ 可选的生成产物

把一个 follow-up 链接到一个已保存的会话——它会通过 Oracle 恢复那段对话:

Terminal window
repo-harness chatgpt browser-followup \
--repo . \
--session chgpt_20260617_120530_review-sprint \
--prompt "Turn that review into a Codex-ready goal."

清理默认是 dry-run,只有传入 --force 时才会移除候选项:

Terminal window
repo-harness chatgpt browser-cleanup --repo . --status dry_run --limit 20
repo-harness chatgpt browser-cleanup --repo . --status dry_run --limit 20 --force
Terminal window
repo-harness chatgpt browser-doctor --repo . --provider native
repo-harness chatgpt browser-consult --repo . --provider native --prompt "Reply exactly OK"

原生运行使用 ChatGPT Web UI 中已经选好的模型/思考模式;传入 --model--thinking 会 fail closed。 当你需要由 provider 端选择模型时,请用 Oracle。

浏览器工具在 MCP 中默认禁用。显式启用它们:

Terminal window
repo-harness mcp serve \
--repo . \
--transport stdio \
--profile planner \
--enable-chatgpt-browser

这会暴露 run_chatgpt_browser_consultread_chatgpt_browser_sessionlist_chatgpt_browser_sessionsopen_chatgpt_browser_sessioncontinue_chatgpt_browser_session。MCP consult 把 writeOutput 限制在工作流产物上,比如 .ai/harness/handoff/*.mdtasks/reviews/**.ai/harness/checks/**plans/prds/**plans/sprints/**

引擎在任何浏览器或 provider 运行之前就拒绝被拒文件,并拒绝那些解析到仓库之外的允许路径符号链接。

  • 默认允许: AGENTS.mdCLAUDE.mdREADME.mddocs/**plans/**tasks/**.ai/context/**.ai/harness/**package.json
  • 默认拒绝: .env / .env.*、私钥和证书文件、.ssh/**.git/**node_modules/**dist/**build/**coverage/**secrets/**credentials/**private/**_ops/**.repo-harness/**/*.json