OSC 7501: Ein Terminal-Protokoll für Programmstatus

Mitchell Hashimoto hat am 6. Oktober 2026 OSC 7501 spezifiziert, ein neues Terminal-Protokoll für Programmstatus. Damit meldet ein Programm dem Terminal direkt, ob es bereit ist, arbeitet, den Nutzer braucht, fertig oder fehlgeschlagen ist – und warum. Der Status muss nicht mehr aus Bildschirm oder Fenstertitel geraten werden.

  • Die Spezifikation trägt den Namen Program Status Protocol und ist auf den 6. Oktober 2026 datiert (siehe Quelle).
  • Definiert sind fünf Zustände: bereit, arbeitend, wartet auf Nutzer, fertig und fehlgeschlagen, jeweils inklusive Grund.
  • Im Beispiel der Quelle meldet Terraform den Status blocked und schickt seine Bestätigungsfrage base64-kodiert mit, sinngemäß: 3 Objekte hinzufügen, 1 ändern, 0 zerstören.
  • Entstanden ist die Idee aus Hashimotos Arbeit an Superlogical und Ghostty. Produktspezifische Funktionen enthält die Spezifikation laut Quelle keine.

Ich finds sympathisch, weil die Sequenz einen richtig nervigen Moment trifft: Man wirft einen Build an, geht Kaffee holen, kommt zurück, und das Terminal hängt seit zwanzig Minuten bei einer Ja/Nein-Frage. Genau da will OSC 7501 ansetzen.

Was genau passiert bei OSC 7501 im Terminal?

OSC 7501 ist eine Escape-Sequenz, die ein Programm direkt an sein Terminal schreibt, über das vorhandene Pseudo-Terminal (pty) und ohne separaten Socket-Dienst. Die Sequenz überträgt den Zustand des Programms, im Beispiel blocked wegen einer Berechtigungsanfrage, dazu Metadaten wie den App-Namen und eine base64-kodierte Nachricht. Was daraus angezeigt wird, entscheidet das Terminal frei: eine Benachrichtigung, ein Posteingang oder ein Status-Icon.

So sieht die Sequenz aus dem Terraform-Beispiel aus, gekürzt:

ESC ] 7501 ; state=blocked:kind=permission:app=terraform:msg=QXBwbHkg... ESC \

Der Kern ist ein Key-Value-Gehäuse in einer ganz normalen Escape-Sequenz, kein Dämon, kein neuer Dienst. Terminal-Entwickler sollen das laut Quelle als vertraute, idiomatische Spezifikation wiedererkennen.

Gibt es das Problem nicht schon seit Jahrzehnten?

Ja, Teile davon sind lange gelöst: manche Terminals beobachten etwa den aktiven Vordergrundprozess. Der Haken dabei ist das Raten. OSC 7501 dreht die Idee um, das Programm meldet seinen Zustand selbst. Relevant wird das gerade durch Coding-Agenten, die lange allein arbeiten, plötzlich eine Rückfrage brauchen und deren Fragen sonst schlicht untergehen.

Pauschal loben würde ich trotzdem nicht. Die Quelle beschreibt eine Spezifikation, kein ausgeliefertes Feature, und über konkrete Umsetzungen in Terminals sagt der Text nichts. Solange kaum ein Werkzeug diese Zustände meldet, bleibt der Alltagshub klein. Die Richtung stimmt aber, weil sie ein altes Raterätsel durch eine klare Ansage ersetzt.

Kurz beantwortet:

Braucht man dafür eine extra API? Nein, die Statusmeldungen laufen über das bestehende Pseudo-Terminal, ein separater Socket-Zugang ist laut Quelle gerade nicht nötig.

Kann ich das heute schon benutzen? Eine fertige Terminal-Unterstützung kündigt die Quelle nicht an. Der Text richtet sich als Spezifikation an Terminal-Entwickler.

Veröffentlicht hat Mitchell Hashimoto den Text mit Motivation, Beispiel und Sequenzaufbau am 6. Oktober auf mitchellh.com. Meine Interpretation: OSC 7501 ist zu klein für eine Erfolgsgeschichte und zu nützlich, um zu sterben. Die konkrete Frage finde ich spannender: Welches Terminal baut als erstes einen Posteingang für blockierte Prozesse, in dem morgens die offenen Ja/Nein-Fragen von neun laufenden Repos liegen?

Schreibe einen Kommentar