gpt-control
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gpt-controlrequest an independent review of my latest commit"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 UIThis 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.
Related MCP server: Project Relay MCP Server
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 |
|
|
|
|
| same session object |
| empty success |
| empty success |
|
|
| empty success |
| empty success |
| 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 |
| Structured ChatGPT review with findings, manifest, and receipt | write |
| Start or continue a ChatGPT web conversation | write |
| Status, wait, or result for one exact submission | read |
| Cancel an active in-process run | write |
| Close local state and wrapper-owned browser resources | write |
| Generate or iterate on images | write |
| 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 promptPass 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-controlPi
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.tsMCP
{
"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 readyConfiguration
Variable | Purpose |
| Local conversations, runs, locks, and generated artifacts |
| External version-1 driver command |
| Optional Chrome Bridge client command |
| Optional Chrome Bridge checkout containing |
| Python used by the Chrome Bridge adapter |
| Browser answer poll interval, default 2000 |
| Chrome Bridge readiness budget, default 10000 |
| 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 testLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceEnables multi-agent code review with cross-verification of findings against source code, catching hallucinations and improving agent accuracy over time.36438MIT- AlicenseNot gradedqualityBmaintenanceCoordinates multiple AI systems and human reviewers using Git as an inspectable record, providing tools for task management, evidence tracking, and independent review.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides tools for agents to manage a local review graph, tracking acceptance behaviors, evidence, review passes, and human waivers to decouple review convergence from shipping readiness.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to record auditable work ledgers with evidence chains, from contract to proof packet, via MCP tools for file scanning, code review, and issue triage.48MIT
Related MCP Connectors
Deterministic AI code review, with an audit record. Governance inside the agent loop.
Independent AI-agent reviews: trust checks, evidence scorecards, incident registry, recommendations.
Codex run receipts your reviewer can trust.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wolfiesch/gpt-control'
If you have feedback or need assistance with the MCP directory API, please join our Discord server