Skip to main content
Glama
everlastingQAQ

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_run bei: kein Autorisierungs-Countdown, dauerhaft mit dem Dienst verfügbar; Host-Home, Windows-Mounts und das Host-/var sind 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 explizites windows_shell_close erfolgt.

  • 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_release

Gemeinsame Workspace-Tools:

workspace_open(executor="wsl" | "windows")
workspace_status
workspace_diff
workspace_apply_back
workspace_close

Shell-Tools:

shell_run                         # 只用于 WSL bubblewrap
windows_shell_status
windows_shell_open
windows_shell_prepare
windows_shell_run
windows_shell_close

windows_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

safe_query

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.

workspace_write

cwd ist auf den Windows-Snapshot abgebildet; Bestätigung durch das ChatGPT-Tool und lokale Bestätigung pro Befehl unter Windows.

host_write

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.

denied

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_close

Windows-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_close

Der 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%\ChatGPTMCP

Erstellen 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.ps1

Das 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 pytest

Die 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.

Install Server
A
license - permissive license
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

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…

View all MCP Connectors

Latest Blog Posts

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