chatgpt-local-coding-agent
ChatGPT-Webversion lokaler Shell-Agent 0.2.1 (Windows + WSL)
Diese Implementierung verbindet den offiziellen ChatGPT Developer Mode über den OpenAI Secure MCP Tunnel mit der lokalen Shell und dem Code-Workspace. Die Modellinferenz findet ausschließlich in der ChatGPT-Websitzung statt; der serverseitige Code ruft keine Responses-, Chat-Completions-, Realtime- oder andere Modell-APIs auf. Der Runtime-API-Key wird ausschließlich dem offiziellen Tunnel-Client zur Herstellung der Transportverbindung übergeben.
Das Projekt enthält keine Screenshots, Maus-, Tastatur-, UI-Automatisierungs-, Desktop-Fernsteuerungs- oder Browser-Automatisierungswerkzeuge und verpackt chatgpt.com auch nicht als inoffizielle API.
Funktionen
Liest normale Textdateien unter Windows / WSL, auf die der aktuelle Benutzer Zugriffsrechte hat.
Behält den ursprünglichen WSL-bubblewrap-
shell_runbei: kein Autorisierungs-Countdown, dauerhaft mit dem Dienst verfügbar; Host-Home, Windows-Mounts und das Host-/varsind nicht sichtbar.PowerShell 7 und native Windows-Ausführbare verwenden
windows_shell_open → windows_shell_prepare → windows_shell_run; nach der ersten lokalen Genehmigung bleibt die Autorisierung über Tunnel-, MCP- und Anmelde-Neustarts hinweg erhalten, bis ein expliziteswindows_shell_closeerfolgt.Sowohl Windows- als auch WSL-Repos unterstützen Snapshot, Diff, Konflikterkennung, lokale Bestätigung, atomares Zurückschreiben und Wiederherstellungskopien.
Der Workspace kopiert nur Git-getrackte / untracked-nicht-ignorierte normale Dateien; ausgeschlossen sind
.env, Anmeldedatenpfade, Dateien mit erkanntem Anmeldedateninhalt, Symlinks, Junctions, Reparse-Points, Sonderdateien und Git-ignorierte Inhalte.Die Windows-Shell erbt nur Umgebungsvariablen aus der Whitelist; secret-artige Umgebungsvariablen werden nicht übergeben; die Ausgabe ist jeweils auf maximal 2 MiB begrenzt und wird vor der Rückgabe an ChatGPT desensibilisiert.
Windows-Unterprozesse werden in ein Kill-on-Close-Job-Objekt eingefügt; bei Timeout, Widerruf der Autorisierung oder Stopp des Agents wird die Befehlsbaum beendet.
Keine Rechteerweiterung, kein UAC-Aufruf. Wenn das Gateway selbst erhöht ausgeführt wird, verweigert die Windows-Shell die Ausführung.
Der Windows-Snapshot ist eine prüfbare Kopie, keine starke Sicherheitssandbox. Standard-Benutzerprozesse können weiterhin auf andere Dateien dieses Benutzers zugreifen, daher werden alle nicht streng schreibgeschützten Windows-Befehle als „kann den Host beeinflussen" behandelt und lösen einzeln eine lokale Bestätigung aus.
Detaillierte Grenzen siehe SECURITY.md.
Related MCP server: MCP ChatGPT Full PC Dev
MCP-Tools
Datei-Tools:
system_health
fs_stat / fs_list / fs_search_paths
fs_inspect / fs_read / fs_releaseGemeinsame Workspace-Tools:
workspace_open(executor="wsl" | "windows")
workspace_status
workspace_diff
workspace_apply_back
workspace_closeShell-Tools:
shell_run # 只用于 WSL bubblewrap
windows_shell_status
windows_shell_open
windows_shell_prepare
windows_shell_run
windows_shell_closewindows_shell_prepare bindet Shell, vollständigen Befehl oder argv, cwd, Ziel, Zweck, Timeout, Umgebungszusammenfassung, Netzwerkmerkmale und Risiko an eine 5-minütige Einmal-review_id. Bei der Ausführung können Felder nicht ersetzt werden; nach einem Neustart ist das Review-Token ungültig, aber die DPAPI-persistente Autorisierung der Windows-Shell bleibt gültig.
Windows-Befehlsklassifizierung
Stufe | Verhalten |
| Ausführbar, wenn die Shell autorisiert ist; akzeptiert eine erweiterte Allowlist, die per AST als statisch schreibgeschützt nachweisbar ist, einschließlich Datei-/Prozess-/Dienst-/Systeminformationen, Hashes/ACLs, PowerShell-Metadaten sowie Git-status/diff/log/show/rev-parse/ls-files/ls-tree-Abfragen. |
| cwd ist auf den Windows-Snapshot abgebildet; Bestätigung durch das ChatGPT-Tool und lokale Bestätigung pro Befehl unter Windows. |
| Wirkt sich direkt auf den Host aus oder hat Netzwerk-/Statusänderungsfähigkeit; Bestätigung durch das ChatGPT-Tool und lokale Bestätigung pro Befehl unter Windows. |
| Rechteerweiterung, RunAs, EncodedCommand, Befehlsverschleierung, Deaktivierung von Sicherheitsfunktionen, Injection, Keylogging, Anmeldedaten-Dump oder Umgehung der Genehmigung. |
Die Shell gibt niemals exakte Anmeldedaten zurück. Wenn eine legitime Aufgabe tatsächlich Rohwerte benötigt, muss weiterhin fs_inspect → fs_release(mode="exact") verwendet werden, und der Benutzer muss dies in einem lokalen Dialog bestätigen.
Verwendung in ChatGPT
WSL-Workflow:
system_health
workspace_open(platform="windows", path="C:\path\repo", executor="wsl")
shell_run(command="...")
workspace_diff
workspace_apply_back(review_id="...", purpose="具体写回用途")
workspace_closeWindows-Workflow:
system_health
windows_shell_status
windows_shell_open(purpose="在本机 repo 中构建并运行测试")
workspace_open(platform="windows", path="C:\path\repo", executor="windows")
windows_shell_prepare(
shell="powershell",
command="python -m pytest",
cwd="C:\path\repo",
target="workspace",
purpose="运行该 repo 的测试以验证当前修改",
timeout_seconds=120
)
windows_shell_run(review_id="...")
workspace_diff
workspace_apply_back(review_id="...", purpose="测试通过后写回已审核 diff")
workspace_closeDer alte Parameter duration_seconds von windows_shell_open bleibt aus Kompatibilitätsgründen erhalten und wird unter authorization_mode="persistent" ignoriert. Rufen Sie windows_shell_close nicht am Ende jeder Aufgabe auf; rufen Sie es nur auf, wenn Sie die permanente Autorisierung widerrufen möchten. Das Stoppen oder Neustarten des Tunnels widerruft die Autorisierung nicht.
Verwenden Sie target="host" für schreibgeschützte Abfragen am Host. Jede Installation, jeder Dateischreibvorgang, jede Registrierungsänderung, jede Prozess-/Dienststatusänderung oder Netzwerkübertragung löst eine lokale Bestätigung pro Befehl aus.
Installation, Upgrade und Ausführung
Standardinstallationsort:
%LOCALAPPDATA%\ChatGPTMCPErstellen Sie vor einer Neuinstallation zuerst im OpenAI-Kontrollbereich einen Secure MCP Tunnel und einen dedizierten Runtime-API-Key. Das Installationsskript enthält keine vorkonfigurierte Tunnel-ID; sie muss explizit übergeben werden:
& .\scripts\Install.ps1 -TunnelId 'tunnel_your_id'Das Standard-Tunnelprofil heißt chatgpt-local-coding-agent. Für eine individuelle Anpassung:
& .\scripts\Install.ps1 -TunnelId 'tunnel_your_id' -ProfileName 'my-local-coding-agent'Das Installationsskript schreibt den Profilnamen in die lokale config.toml. Bei älteren Installationen ohne diese Konfiguration führt die Operator-CLI die kompatible Erkennung nur durch, wenn sich im Profile-Verzeichnis genau ein YAML befindet; bei mehreren oder fehlenden Kandidaten wird die Vermutung verweigert.
Upgrade von einer älteren Version:
& .\scripts\Upgrade.ps1Das Upgrade-Skript speichert zuerst Konfiguration, Skripte, installierte Pakete und Abhängigkeitslisten in %LOCALAPPDATA%\ChatGPTMCP\backups, installiert dann 0.2.1 und führt die vollständigen Tests aus; nur wenn die Tests bestehen, wird windows_shell.enabled auf true gesetzt und authorization_mode="persistent" konfiguriert. Der Runtime-Key wird weder gelesen, ausgegeben noch gelöscht.
Häufige Befehle:
& "$env:LOCALAPPDATA\ChatGPTMCP\Doctor.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Start-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Status-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Stop-Agent.ps1"
& "$env:LOCALAPPDATA\ChatGPTMCP\Enable-Autostart.ps1" -StartNow
& "$env:LOCALAPPDATA\ChatGPTMCP\Disable-Autostart.ps1"Die Anmeldeaufgabe wird nur für den aktuellen Benutzer registriert, mit RunLevel=Limited, ohne höchste Rechte. Der Autorisierungsdatensatz der Windows-Shell wird mit DPAPI des aktuellen Windows-Benutzers verschlüsselt und nach der ersten Genehmigung über windows_shell_open bei Anmelde-/Tunnel-/MCP-Neustarts wiederhergestellt. Die WSL-Shell hat keinen Countdown. Permanente Autorisierung bedeutet keine dauerhafte Freigabe von Befehlen: Nicht schreibgeschützte Windows-Befehle, Rückschreiben in das Original-Repo und exakte sensible Inhalte erfordern weiterhin eine lokale Bestätigung pro Vorgang.
Die eigene Tool-Bestätigung der ChatGPT-Webseite ist eine weitere Ebene: Der OpenAI Developer Mode verlangt für Schreibaktionen standardmäßig eine Bestätigung, und „Merken" auf der Webseite gilt nur für die aktuelle Konversation; nach einer Aktualisierung oder in einer neuen Konversation kann erneut gefragt werden. Der lokale Dienst kann diese Ebene nicht umgehen und tut dies auch nicht. Siehe Developer-Mode-Dokumentation.
Nach der Bereitstellung neuer Tool-Definitionen führen Sie in der App-/Connector-Detailseite von ChatGPT ein Refresh durch und prüfen die fünf neuen Windows-Shell-Aktionen. OpenAI aktiviert geänderte Tool-Definitionen nicht automatisch für Sie. Siehe Developer-Mode-Dokumentation.
Web-Kontingent und API
Dieses Projekt zielt nicht darauf ab, das ChatGPT-Web-Kontingent zu sparen. Die Modellnutzungslimits von ChatGPT Plus ändern sich dynamisch; MCP-App-Aufrufe unterliegen den Limits der entsprechenden ChatGPT-Sitzung und stellen keine zusätzlichen Modell-API-Aufrufe dar; das OpenAI-API-Konto und das ChatGPT-Abonnement sind getrennte Abrechnungssysteme. Siehe ChatGPT Plus und Apps in ChatGPT.
Entwicklungsvalidierung
Der allgemeine Validierungsumfang ist in docs/VALIDATION.md beschrieben.
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[test]"
.\.venv\Scripts\python.exe -m pytestDie Tests decken ab: sensible Dateiklassifizierung, MCP-Tool-Erkennung, WSL-Zustand ohne Ablauf, Windows-DPAPI-persistente Autorisierung und expliziten Widerruf, Ablehnung beschädigter Autorisierungen, Windows-Snapshot, Git-ignorierte Artefakte, diff/apply/Konflikte, erweiterte schreibgeschützte Allowlist, PowerShell-AST, Einmal-Token, Umgebungsisolierung, Ausgabe-Desensibilisierung, lokale Ablehnung, Timeout und Bereinigung mehrstufiger Unterprozesse.
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 gradedqualityCmaintenanceLocal MCP server bridging ChatGPT Web to local tools for file, shell, git, test, and process management with secure policy controls.MIT
- FlicenseCqualityCmaintenanceEnables ChatGPT to control a Windows PC remotely via OpenAI Secure MCP Tunnel, executing file operations, PowerShell commands, and system actions through a local MCP server.15
- 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 gradedqualityBmaintenanceEnables ChatGPT to securely operate a single Windows development workspace via a local MCP server, offering file editing, Git status, static analysis, approved test/build, and limited ADB operations with audit logging.MIT
Related MCP Connectors
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
MCP connector that lets ChatGPT list, search, and run your Apple Shortcuts via a local Mac agent
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
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/everlastingQAQ/chatgpt-local-coding-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server