ChatGPT Local Coder
Provides an optional Cloudflare Quick Tunnel to expose the local server publicly via HTTPS, enabling connection from ChatGPT.
Provides Git tools for inspecting repositories (status, diff, log), staging and committing changes, managing branches, restoring files, pushing/pulling from remotes, and stashing or resetting work.
Integrates with GitHub through Git tools that support syncing with configured remotes, enabling push/pull operations to GitHub repositories.
Operates on local files and projects, providing local coding tools for filesystem access, shell execution, process management, and more, targeted at the local development environment.
Integrates with OpenAI's ChatGPT Developer Mode as the client interface, exposing MCP tools to the ChatGPT web application for local coding tasks.
Mentions TypeScript in the implementation badge as a language used to build the server, but does not target TypeScript as a service for integration.
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., "@ChatGPT Local CoderCheck git status and apply a patch to fix the failing test in src/app.test.ts"
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.
ChatGPT Local Coder
Turn ChatGPT web into a local coding agent — files, shell, git, patches, 40+ MCP tools.
Quick Start · Connect ChatGPT · Tools · Tunnel · Troubleshooting · Tiếng Việt
ChatGPT Local Coder is a self-hosted MCP server for local coding, with task permissions, approval requests, file review/undo and Git/GitHub tools.
Workbench branch: see setup, behavior and known limits. This is an initial implementation, not complete Codex parity. New tasks default to Ask + workspace-only. An OS process sandbox is not implemented; shell/Git/GitHub require explicitly disabling workspace-only scope. MCP authentication is now required; ChatGPT uses OAuth with local consent.
No desktop app. No vendor lock-in. Run one Node process on your PC, expose it through a tunnel, and code from ChatGPT in the browser.
┌─────────────────┐ HTTPS ┌──────────────────┐ localhost ┌─────────────────────┐
│ ChatGPT Web │ ─────────────► │ Tunnel (opt.) │ ────────────────► │ chatgpt-local-coder │
│ Developer Mode │ │ OpenAI / CF │ :3000/mcp │ 40+ MCP tools │
└─────────────────┘ └──────────────────┘ └──────────┬──────────┘
│
┌──────────────────────────────────────────┼──────────┐
▼ ▼ ▼ ▼
Filesystem Shell + Git Background Project
read/write/patch status/diff/commit processes context✨ Why this project
ChatGPT alone | + ChatGPT Local Coder | |
Edit your repo | ❌ | ✅ |
Run tests / builds | ❌ | ✅ |
Git workflow | ❌ | ✅ |
Explore codebase | Limited | ✅ |
Configurable access | ❌ | ✅ Task permissions and optional workspace file boundary |
Session recovery | — | ✅ Auto-recover after server restart |
Built for ChatGPT Developer Mode with batched inspection, cursor-based process output, honest tool annotations and a local Workbench dashboard.
Related MCP server: chatgpt-local-coder
🚀 Quick Start
Requirements: Node.js 18+, npm, Git (optional, for git tools)
git clone https://github.com/hoangcoderr/chatgpt-local-coder.git
cd chatgpt-local-coder
copy .env.example .env # edit WORKSPACE_PATH
npm install
npm run build
.\start.ps1Server runs at http://localhost:3000 — health check: http://localhost:3000/health
git clone https://github.com/hoangcoderr/chatgpt-local-coder.git
cd chatgpt-local-coder
cp .env.example .env
npm install && npm run build
npm start🔌 Connect ChatGPT
1. Enable Developer Mode
Open ChatGPT → Settings → Apps & Connectors
Under Advanced, enable Developer mode
2. Expose your server (pick one tunnel)
See Tunnel options below. You need a public HTTPS URL pointing to http://localhost:3000/mcp.
3. Create a connector
Settings → Connectors → Create
Fill in:
Field | Value |
Name |
|
Description |
|
URL | Your tunnel HTTPS URL (e.g. |
Authentication | OAuth — configure PUBLIC_BASE_URL and approve the connection in local Workbench |
Create → verify tools appear in the list
4. Use in chat — must tag the connector
Every message that should use local tools must include the connector. If you skip this, ChatGPT only uses built-in tools, may show "Looking for available tools" / "Đang tìm các công cụ có sẵn", then "Error in message stream" / "Lỗi trong luồng tin nhắn" — with no error in server logs (the MCP server was never called).
How to tag (pick one):
Before sending: New chat → + (tools) → More → enable Local Coder (connector stays on for that chat).
In the message: type
@and choose Local Coder (or your connector name) so it appears as a pill/chip above the input.
Then send your prompt. You should see tool permission prompts or MCP activity — not a dead stream with no server log.
Example prompts (after tagging):
"Read package.json and explain the dependencies"
"Run npm test and fix any failures"
"Find all TODO comments with grep and summarize"
Tip: After server updates or restarts → Refresh the connector and start a new chat (re-tag the connector).
Avoid clicking "Always allow" on permission popups — it can reset the MCP session. Configure permissions in Settings → Apps instead.
🌐 Tunnel options
Option A — OpenAI Secure MCP Tunnel (recommended)
Stable tunnel ID — connector URL never changes.
# Terminal 1
.\start.ps1 -Force
# Terminal 2 — first time only
.\openai-tunnel-init.bat # enter tunnel_id + Runtime API key from OpenAI Platform
# Every time after
.\openai-tunnel.batGet credentials: OpenAI Platform → Tunnels
In ChatGPT Connectors: Connection type → Tunnel → paste your tunnel_… ID.
Option B — Cloudflare Quick Tunnel
Free, but URL changes on every restart (update connector each time).
# Terminal 1
.\start.bat
# Terminal 2
.\tunnel.bat # copy https://….trycloudflare.com into connector URLInstall cloudflared: winget install Cloudflare.cloudflared
🧰 Tools
40+ tools with structured JSON responses { ok, tool, summary, data }.
Onboarding (call these first)
Tool | Description |
| Permissions, workspace roots, audit log |
| Reads AGENTS.md, README, CLAUDE.md, configs |
Filesystem
Tool | Description |
| Read source files (offset + limit) |
| Create or overwrite files |
| Find-and-replace edits |
| Multiple edits in one file |
| Regex replace in file |
| Unified / Codex-style patches |
| Find files by pattern (sorted by mtime) |
| Search content (content / files / count modes) |
| List folder contents |
| Recursive tree as JSON |
| Create folders |
| Remove files or dirs |
| Copy or rename |
| Binary file support |
Shell
Tool | Description |
| Run shell commands ( |
| Persistent shell session |
| Long-running / background commands |
| Manage background jobs |
Git
Tool | Description |
| Inspect repo |
| Stage and commit |
| Branch list, create, switch (local only) |
| Restore tracked files to last commit |
| Sync with configured remote |
| Stash and reset |
Claude Code ↔ MCP mapping
Claude Code | This server |
|
|
|
|
|
|
|
|
|
|
— |
|
⚙️ Configuration
Copy .env.example → .env:
PORT=3000
WORKSPACE_PATH=C:\Users\You\projects\my-app
WORKBENCH_DEFAULT_MODE=ask
SHELL_TIMEOUT=120
MCP_SESSION_RECOVERY=true
# OpenAI Secure Tunnel (optional)
OPENAI_TUNNEL_ID=
OPENAI_TUNNEL_API_KEY=Variable | Default | Description |
|
| Your project root (like |
|
| Initial policy for new tasks: |
|
| Auto-recover stale sessions after restart |
|
| Max seconds for |
| Legacy | Do not override Workbench task permissions |
New tasks default to Ask + workspace-only. Use the Workbench dashboard to change scope and approval mode; changing tool annotations does not grant permission.
🏗️ Architecture
src/
├── index.ts # Express + MCP session manager
├── server-factory.ts # Tool registration
├── lib/
│ ├── mcp-session-manager.ts # Session recovery, TTL
│ ├── patch.ts # apply_patch engine
│ └── persistent-shell.ts # Stateful shell
└── tools/
├── filesystem.ts # 18 tools
├── shell.ts # 8 tools
├── git.ts # 11 tools
└── context.ts # agent_status, project_contextTransport: MCP Streamable HTTP (
/mcpand/)Session: Stateful with auto-recovery when ChatGPT holds a stale session ID
Output: Structured JSON from every tool
🧪 Development
ChatGPT web performance
The default slim profile includes inspect_code for batched reads/searches with path
rules, and cursor-based background output. SSE connections no longer block subsequent
tool calls. See design, examples and rollout.
Run npm run test:chatgpt for the isolated HTTP/SSE and workflow regression tests.
npm run build # compile TypeScript
npm test # patch + tool unit tests
npm run dev # watch mode (tsx)
node scripts/test-mcp-session.mjs # integration test (server must be running)🔒 Security
Full access is an explicit task setting. OAuth linking requires local consent, and the admin API requires its own token. Workspace-only currently restricts file tools and blocks arbitrary processes; it is not an OS sandbox. See limitations before enabling unrestricted commands.
.envand secrets are gitignoredAudit log:
.mcp-audit.log(optional, configurable)Use on a trusted network / personal machine only
🩺 Troubleshooting
Problem | Fix |
"Error in message stream" / "Lỗi trong luồng tin nhắn" right after "Looking for tools" — no server log | You did not tag the connector. New chat → + → More → enable connector, or type |
Resource not found on tool call | Refresh connector + new chat. Server auto-recovers sessions — ensure latest build is running. |
Connection failed | Check |
Permission popup every call | Settings → Apps → set connector to Ask before important changes. Don't use popup "Always allow". |
Tool denied by policy or client safety checks | Inspect the denial and current task policy. Do not retry through another tool to bypass it. |
| Server/tunnel restarted mid-session → refresh connector, new chat. |
Tunnel URL keeps changing | Switch to OpenAI Secure Tunnel ( |
Access denied | Wrong path or OS permissions on that file. |
git not found | Install Git. |
See also AGENTS.md for agent onboarding and apply_patch format.
📚 References
📄 License
MIT — use freely, attribution appreciated.
⭐ Support
If this saves you time, star the repo — it helps others find it.
🇻🇳 Tiếng Việt
ChatGPT Local Coder biến ChatGPT web thành agent code trên máy bạn qua MCP.
git clone https://github.com/hoangcoderr/chatgpt-local-coder.git
cd chatgpt-local-coder
copy .env.example .env
npm install && npm run build
.\start.ps1 # terminal 1
.\openai-tunnel.bat # terminal 2 (tunnel cố định)ChatGPT: Settings → Connectors → tạo connector → chọn tunnel → Refresh → chat mới.
Bắt buộc tag connector mỗi chat: Chat mới → + → More → bật connector, hoặc gõ @ + tên connector trong ô chat. Nếu không tag, ChatGPT báo "Đang tìm các công cụ có sẵn" rồi "Lỗi trong luồng tin nhắn" — server không có log lỗi vì MCP chưa được gọi.
WORKSPACE_PATH: đặt đúng thư mục project (không phải thư mục chatgpt-local-coder). Server tự đọc CLAUDE.md / AGENTS.md giống Claude Code.
Lưu ý: Không bấm "Luôn cho phép" trên popup — cấu hình quyền ở Settings → Apps. Sau khi restart server: Refresh connector + mở chat mới + tag lại connector.
Chi tiết cho AI agent: AGENTS.md
MCP_Plugins_With_ChatGPTWeb
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 Connectors
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to inspect and edit local projects through a secure MCP interface, offering workspace management, file operations, git integration, and safe command execution.4MIT
- AlicenseNot gradedqualityCmaintenanceA self-hosted MCP server that gives ChatGPT full local machine access for coding tasks, including file editing, shell commands, git operations, and project exploration via 40+ MCP tools.MIT
- AlicenseNot gradedqualityDmaintenanceEnables ChatGPT to securely control a local workstation via an MCP tunnel, exposing 44 tools for file/project editing, git, process supervision, browser automation, and Office document handling across macOS, Linux, and Windows.5MIT
- AlicenseAqualityBmaintenanceEnables ChatGPT web to use local tools like file reading, command execution, and patch application through an MCP server over OpenAI Secure MCP Tunnel.61MIT