Zum Artikel springen
PlanToCodeDocsApp herunterladen

HandbuchHier starten

Was PlanToCode ist

Eine Desktop-App, die OpenAI Codex auf Ihren Projekten ausführt und jeden Befehl, jede Datei und jeden Diff einen Klick entfernt hält, dazu iPhone- und Android-Begleit-Apps, die dieselbe Session über ein Relay steuern. Dieses Handbuch erklärt, wie das gebaut ist.

Gegen den Quellcode geprüft am 17. September 2026

Auf dieser Seite

Was anders ist

PlanToCode ist eine Mac- und Windows-App, die OpenAI Codex über Ihr ChatGPT-Abonnement auf einem lokalen Projektordner ausführt. Dieses Handbuch erklärt die Teile, die man auf dem Bildschirm nicht sieht: welcher Prozess was besitzt, wie aus einer Nachricht ein Codex-Turn wird und wie er bestätigt wird, wie die Timeline aus Verlaufsseiten und einem Live-Overlay zusammengesetzt wird, was das Relay tut und was es verweigert, und wie die mitgelieferten Werkzeuge Ihr Chrome, Gemini und Ihre Telefone erreichen.

Eine Nachricht bleibt auf dem Telefon bis zur Quittung des Desktops und in der Outbox bis zum Echo von Codex
Eine Nachricht bleibt auf dem Telefon bis zur Quittung des Desktops und in der Outbox bis zum Echo von CodexEine vom Telefon gesendete Nachricht läuft über das Relay zum Desktop. Er speichert sie als Outbox-Eintrag und schickt diesem Telefon eine Quittung, erst dann verwirft das Telefon seine eigene Kopie. Der Desktop startet einen Codex-Turn mit der Operations-ID als Client-Nachrichten-ID und entfernt den Outbox-Eintrag, wenn Codex diese ID als Echo zurückgibt. Das Relay reicht Nachrichten nur durch: Es hält keine Warteschlange und kein Replay-Protokoll. Timeline-Updates erreichen danach die Telefone mit einem Interesse-Lease, und die Zeile auf dem Telefon trägt dieselbe Operations-ID. Ist die Antwort auf turn/start unklar oder startet der Desktop vor dem Echo neu, sucht der Desktop die Operations-ID im Verlauf der Session.
TelefoniPhone oder Android
Relayregionaler Server
DesktopRust-Laufzeit
CodexKindprozess
behält eine eigene Kopie
behält nichts: keine Warteschlange, kein Replay
Outbox-Eintrag · operationId
Turn läuft · Elemente gespeichert
rpc.request · idempotencyKey
in SQLite gespeichert
Quittung, nur an dieses Telefon
Kopie verworfen
turn/start · clientUserMessageId
item/completed · userMessage.clientId
gesendet: Eintrag entfernt
chat:timeline-updated, nur an Telefone mit Lease
Zeile mit derselben operationId
Unklare Antwort auf turn/start oder ein Neustart vor dem Echo: Der Desktop sucht die operationId im Verlauf der Session. Gefunden: gesendet und entfernt. Nicht gefunden: Der Eintrag wird gehalten und bittet darum, vor dem erneuten Senden die Timeline zu prüfen.
  • QuittungqueueId · operationId

    Kommt zurück, sobald die Nachricht in der Outbox des Desktops gespeichert ist, und nur an das Telefon, das gefragt hat. Das Telefon wartet bis zu 20 s darauf und behält seine eigene Kopie, bis sie eintrifft.

  • Codex-EchouserMessage.clientId

    Der Drain-Task sendet die operationId als clientUserMessageId. Bringt die Live-Benachrichtigung item/completed sie zurück, verbucht der Desktop die Nachricht als gesendet und entfernt den Outbox-Eintrag.

  • Kein Desktop verbunden-32011 · -32010

    Das Relay antwortet dem Telefon selbst: -32011, solange sich der Desktop neu verbindet, -32010, sobald er offline ist. Nichts wird zwischengespeichert, und das Telefon behält seine Kopie.

Drei Regeln prägen alles Weitere

  • Der Desktop ist die Autorität. Er besitzt die Projektdateien, den Codex-app-server-Kindprozess, die dauerhafte Outbox und den RPC-Router, mit dem die Telefone sprechen.
  • Das Relay ist absichtlich dumm. Es leitet Umschläge zwischen authentifizierten Geräten weiter und hält keine Projektinhalte, keine dauerhafte Warteschlange und kein Replay-Protokoll.
  • Jede Timeline-Zeile ist ein typisiertes Objekt mit stabiler Identität, sodass dieselbe Unterhaltung auf dem Desktop und auf einem Telefon identisch gerendert wird, ohne dass Textvergleiche oder Zeitstempel entscheiden, was existiert.

Wo Sie weiterlesen