gpt-control

gpt-control

Enables coding agents to request, track, and verify independent cross-model reviews with structured findings, attachment hashes, and provenance receipts via Chrome Bridge, Codex, or Responses transports.

Category
访问服务器

README

GPT-Control

Let any CLI agent harness control the signed-in ChatGPT web UI through a pluggable browser driver.

GPT-Control gives OMP, Pi, MCP clients, and other compatible harnesses a small typed tool surface for ChatGPT conversations, structured reviews, and image iteration. The harness can run whatever model the user prefers. Browser ownership is delegated through a driver interface rather than tied to one private setup.

An unofficial, community-maintained project. It is not affiliated with OpenAI.

Why this exists

A user may already have access to powerful web-only ChatGPT models through a subscription. Calling the API or wrapping codex exec is a different product and duplicates capabilities the agent harness already has.

any CLI harness
      │ typed tool call
      ▼
GPT-Control core
      │ WebChatDriver
      ├── configured external command
      ├── Chrome Bridge adapter
      └── future Playwright, CDP, or harness adapters
      │
      ▼
signed-in ChatGPT web UI

This provides high included web usage without per-call API billing. ChatGPT still applies temporary and plan-level usage limits; GPT-Control does not describe the service as literally unlimited.

Browser drivers

Set GPT_CONTROL_BROWSER_DRIVER to any executable implementing the versioned JSON-stdin/stdout protocol. If no command is configured, GPT-Control autodetects Chrome Bridge as one optional adapter.

Each invocation receives one JSON line on stdin:

{
  "version": 1,
  "action": "create",
  "params": {
    "name": "gpt-control:chat:conv_...",
    "url": "https://chatgpt.com"
  }
}

It returns:

{
  "version": 1,
  "ok": true,
  "result": {
    "sessionId": "opaque-session",
    "pageId": "opaque-page",
    "name": "gpt-control:chat:conv_...",
    "url": "https://chatgpt.com/c/..."
  }
}

Required actions:

Action Result
probe { ready, driver, reason? }
create { sessionId, pageId, name, url }
show same session object
upload empty success
submit empty success
snapshot { count, text, imageUrls }
set_state empty success
close empty success
screenshot saved path or empty result

Prompts and file paths travel through stdin, never process arguments. Driver responses are capped and runtime-validated.

Focus behavior

A driver outage returns a retryable error. GPT-Control never treats one unavailable driver as permission to launch another browser.

The optional Chrome Bridge adapter opens an inactive, task-owned tab in the existing browser window. Oracle browser mode remains an explicit legacy fallback requiring allow_focus_steal=true.

Tools

Tool Capability Approval
gpt_consult Structured ChatGPT review with findings, manifest, and receipt write
gpt_chat Start or continue a ChatGPT web conversation write
gpt_run Status, wait, or result for one exact submission read
gpt_run_cancel Cancel an active in-process run write
gpt_conversation_close Close local state and wrapper-owned browser resources write
gpt_image Generate or iterate on images write
gpt_diagnose Report browser driver readiness without starting work read

The core review, conversation, run, close, and diagnosis tools are also available through the bundled MCP server.

Conversations and runs

conversation_id → one ChatGPT conversation
run_id          → one exact submitted prompt

Pass conversation_id to gpt_chat, gpt_consult, or gpt_image for a follow-up. Pass run_id to gpt_run for status, wait, or result. Per-conversation locking prevents two turns from interleaving.

Records live under ~/.gpt-control/ by default.

Attachment boundary

GPT-Control:

  • resolves attachment paths through realpath();
  • defaults to regular files inside the workspace;
  • rejects symlink escapes;
  • caps file count and aggregate bytes;
  • blocks obvious credential and private-key paths;
  • hashes every file with SHA-256;
  • returns the exact upload manifest.

Outside-workspace and sensitive-file uploads require separate explicit flags.

Structured review output

gpt_consult asks ChatGPT for a validated object:

{
  "verdict": "request_changes",
  "summary": "The migration is not rollback-safe.",
  "findings": [
    {
      "severity": "high",
      "claim": "The old schema version is discarded before mutation.",
      "evidence": {
        "file": "src/migrate.ts",
        "lineStart": 81,
        "lineEnd": 104
      },
      "confidence": 0.92,
      "remediation": "Persist the old schema version before mutation."
    }
  ],
  "openQuestions": []
}

Each run also records driver identifiers, timestamps, prompt hash, attachment hashes, and result hash.

Data boundary

Prompts and approved attachments leave the local machine and are uploaded through the selected browser driver.

Closing a GPT-Control conversation closes local state and wrapper-owned browser resources. It does not delete ChatGPT history, memories, conversations, or uploaded files.

Install

Oh My Pi

omp install github:wolfiesch/gpt-control

Pi

git clone https://github.com/wolfiesch/gpt-control.git
cd gpt-control && bun install
ln -s "$PWD/src/index.ts" ~/.pi/agent/extensions/gpt-control.ts

MCP

{
  "mcpServers": {
    "gpt-control": {
      "command": "bun",
      "args": ["/path/to/gpt-control/src/mcp.ts"]
    }
  }
}

Browser driver

Configure any protocol-compatible executable:

export GPT_CONTROL_BROWSER_DRIVER="/path/to/my-chatgpt-driver"

Chrome Bridge is an optional autodetected adapter:

git clone https://github.com/wolfiesch/chrome-bridge.git
cd chrome-bridge && ./setup.sh
chrome-bridge ready

Configuration

Variable Purpose
GPT_CONTROL_HOME Local conversations, runs, locks, and generated artifacts
GPT_CONTROL_BROWSER_DRIVER External version-1 driver command
GPT_CONTROL_BRIDGE Optional Chrome Bridge client command
CHROME_BRIDGE_HOME Optional Chrome Bridge checkout containing test_client.py
GPT_CONTROL_PYTHON Python used by the Chrome Bridge adapter
GPT_CONTROL_POLL_MS Browser answer poll interval, default 2000
GPT_CONTROL_PROBE_MS Chrome Bridge readiness budget, default 10000
GPT_CONTROL_ORACLE Optional explicit Oracle CLI command

Credits

  • Kyle McCleary shared the Oracle fork and web/image workflow that prompted the first version.
  • Oracle by Peter Steinberger remains an explicit legacy fallback.
  • Chrome Bridge provides one optional focus-safe browser driver.

Development

bun install
bun run check
bun test

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选