Ein Schalter, zwei Desktops: der Interface-Modus Simple / Advanced in Hermes


Du empfiehlst einer Kollegin, die keinen Code schreibt, die Hermes-Desktop-App. Sie öffnet sie und friert drei Sekunden lang ein: eine Leiste mit Profilen auf der linken Seite, eine Statusbar am unteren Rand, ein Terminal-Pane rechts, jeder Tool Call im Transkript zu einer Wand aus JSON aufgeklappt, darüber noch farbige Diffs, und „Subagents“ und „Hintergrundprozesse“ in der Seitenleiste. Sie fragt: „Wo tippe ich?“ Dann schließt sie das Fenster.

Dasselbe passiert Langzeitnutzern in die entgegengesetzte Richtung: Wenn du nur über eine einzige Sache nachdenken willst, ist all diese Instrumentierung Lärm. Der neue Interface-Modus der Desktop-App (#118587) existiert für beide Zielgruppen — Simple und Advanced.

Was die beiden Modi sind

In einer Zeile: Advanced ist die App, wie sie heute ist, und Simple ist chat-first. Und an der Grenze gilt eine feste Regel — ein Modus ändert, was angezeigt wird, niemals, was Hermes kann.

Was Simple beiseitelegt:

In Simple verborgen Anmerkungen
Statusbar Der Live-Instrumentierungsstreifen
Profil-Leiste Ausnahme: Sie bleibt, wenn ein zweites Profile sie zum einzigen Weg des Wechsels macht
Terminal-, Dateibrowser- und Review-Panes Die Panes selbst
Technische Tool-Call-Ansicht und Inline-Code-Diffs Die JSON-Wände und farbigen Diffs im Transkript
Artifacts- und Scheduled-jobs-Zeilen in der Seitenleiste Plus jede beigesteuerte Zeile mit dem Tag Advanced-Tier
HUD-, Flip- und Rechtssidebar-Buttons in der Titelleiste Inklusive beigesteuerter Titelleisten-Tools
Statusgruppen Subagents und Background process Zwei der Statusgruppen
Die Git-Zeile des Composers sowie PR- und Profilfilter-Zeilen Die kleinen Bedienelemente rund um die Eingabe
Thinking startet eingeklappt Eingeklappt, nicht entfernt

Was Simple bewusst behält: die Konversation selbst, Sessions und Bots, New session, Capabilities und Messaging (so richtet jeder Hermes ein, deshalb bleiben sie), Settings und den Layout-Editor in der Titelleiste, jede Tastenbelegung, ⌘K, Todos, Goal, Queue, Vorschau-Chips, Abrechnungs- und Free-Tier-Hinweise sowie den focus_pane des Agenten. Außerdem öffnet die Kombination Strg+Backtick weiterhin das Terminal für die aktuelle Session — eine Notausgangstür bleibt.

Der Layout-Editor von Simple ist auf die Modus-Auswahl plus zwei Karten reduziert, „Sidebar left“ und „Sidebar right“. Templates, gespeicherte Decks und Save current layout sind Advanced.

Wie du umschaltest

Drei Einstiegspunkte, ein Zustand dahinter:

  1. die Modus-Auswahl im Layout-Editor;
  2. Settings → Appearance → Window & layout;
  3. die Zeile in ⌘K.

Darunter liegt eine umbelegbare Action, view.toggleSimpleMode, und die Wahl bleibt unter dem Schlüssel hermes.desktop.interfaceMode.v1 erhalten.

Warum diese Implementierung ein Preset schlägt

Das ist der lehrreichste Teil der Änderung. In vielen Apps ist ein „einfacher Modus“ ein Preset: Beim Hineinschalten werden deine Einstellungen eins nach dem anderen umgeschrieben, und beim Zurückschalten muss rekonstruiert werden, was vorher da war — also wird entweder alles gesnapshottet oder geraten, und wenn falsch geraten wird, ist dein Layout weg.

Hermes ist den anderen Weg gegangen: ein Modus ist ein Input für den Resolver, kein Preset, das Einstellungen schreibt. Es gibt genau eine Vorrangregel, an genau einer Stelle:

effective(surface) = sessionReveal ?? policy[mode] ?? userPreference

Lies sie als drei Schichten, die höchste zuerst:

  • sessionReveal — was du für diese Session aufdeckst. Wenn du das Terminal in Simple mit Strg+Backtick hochholst, landet das in einer Session-Schicht und verschwindet bei einem Neustart oder einem Moduswechsel. Ein Modus ist also ein Default, kein Schloss — und ein Session-Reveal kann nicht in die Einstellung durchsickern, die du im anderen Modus gesetzt hast.
  • policy[mode] — und policy.advanced ist ein leeres Objekt. Das ist das tragende Detail: Advanced zeigt alles nicht, weil es dafür konfiguriert wäre, sondern weil es nichts überschreibt, sodass du konstruktionsbedingt auf deine eigenen Einstellungen durchfällst. In den Worten des Codes ist Advanced die Abwesenheit eines Modus, im Storage codiert als „überhaupt kein Schlüssel“.
  • userPreference — der Fallback.

Drei Konsequenzen, die es wert sind, ausbuchstabiert zu werden:

  • Bestehende Installationen sehen beim Upgrade keine Änderung. Weil die Advanced-Policy leer ist, wird überhaupt nichts in deinen Storage geschrieben.
  • Simple überschattet eine Einstellung, statt sie zu überschreiben. Es schreibt deine Layout-Auswahl nie um, sodass das Verlassen von Simple den exakt vorherigen Zustand wiederherstellt — nichts zu snapshotten, nichts zu reparieren.
  • Ein Modus kann die Einstellungen des anderen Modus nicht verschieben. Und wenn eine Aktion eigentlich eine Layout-Absicht ist (etwa die Wahl eines Layouts, das Panes öffnet), wird ein überschatteter Write verworfen statt angewendet — weil „zeig mir das jetzt“ und „ändere mein Standardlayout“ verschiedene Anfragen sind.

Ein schönes Engineering-Detail ist, wie das eingegrenzt bleibt: Komponenten lernen das Wort „Modus“ nie kennen. Jeder Preference-Store umhüllt sein eigenes Atom in modeBound und exportiert dann das effektive Atom unter dem Namen, den jeder Konsument ohnehin schon importiert — kein Konsument musste eine Zeile ändern. Listen-Oberflächen versehen ihre Einträge mit einem tier und führen einen einzigen shownInMode-Filter an dem Filter aus, den sie schon hatten. Das Konzept eines Modus hat damit genau einen Besitzer, statt als verstreute Bedingungen in dutzende Komponenten zu lecken.

Welchen du nehmen solltest

  • Jemandem ohne Code-Kenntnisse die App geben → Simple. Dessen Aufgabe ist die Konversation; Statusbar und Diffs sind nur Druck.
  • Hermes debuggen, Subagenten beobachten, Tool-Argumente lesen → Advanced. Genau diese Informationen willst du.
  • Konzentriert schreiben → vorübergehend auf Simple umschalten. Es rührt dein Layout nicht an, und das Zurückschalten ist ein No-op.

Wenn du den Desktop-Workflow einrichten willst, bevor du die Modi umschaltest, behandelt Layouts und Workspaces den Layout-Editor selbst, der Desktop-Skills-Hub zeigt, woher die Fähigkeiten kommen, und Lesen, Vorschau, Browser dreht sich genau um die Panes, die Simple verbirgt. Das Fundament unter den Tastenbelegungen steht im Leitfaden zur Command Palette.

Zum Schluss

Der Weg, auf dem „einfacher Modus“ üblicherweise schiefgeht, ist der als Preset, das Nutzereinstellungen umschreibt — ein paarmal hin und her geschaltet, und niemand erinnert sich mehr, wie das ursprüngliche Layout war. Hier ist ein Modus nur ein Resolver-Input auf der Anzeigeschicht, Advanced ist als leere Policy definiert und Simple als Überschattung. Das Ergebnis: Upgrades sind unsichtbar, Umschalten ist verlustfrei, und ein temporäres Aufdecken ist zurückholbar. Keine Fähigkeit ist weg — ein Teil ist nur beiseitegelegt.