DEV Community

Cover image for So siehst du in osFoundry, welche Claude-Code-Session auf deine Freigabe wartet
BBT for BBT Deutsch

Posted on

So siehst du in osFoundry, welche Claude-Code-Session auf deine Freigabe wartet

Am Ende läuft Claude Code in einem Terminal-Pane, Codex in einem anderen, und nebenher laufen ein paar Chats und Agenten. Ein einziges Board in osFoundry zeigt sie alle. Wenn Claude Code bei "Do you want to make this edit?" anhält, wandert seine Karte innerhalb einer Sekunde in die Spalte Needs you (braucht dich). Ein Klick öffnet das Pane genau an diesem Prompt. Du antwortest, und die Karte geht zurück auf Running (läuft).

Wer macht was

Claude Code osFoundry-Desktop-App
Login Sein eigener Claude-Login, in seinem eigenen Prozess Hält nichts davon. Bei einem Agenten, den sie selbst gestartet hat, entfernt sie einen geerbten ANTHROPIC_API_KEY, damit ein Lauf über das Abo nicht als API abgerechnet wird
Wo es läuft Ein echtes PTY im Terminal-Bildschirm, in deinem Projektordner Besitzt das PTY und hält eine emulierte Kopie des Bildschirms
Wer freigibt Du, in Claude Codes eigenem Berechtigungs-Prompt Antwortet nie für dich. Sie verschiebt nur die Karte und öffnet das Pane
Wie der Zustand bekannt wird Claude Code zeichnet seine UI wie gewohnt Liest den Bildschirm alle 700 ms gegen veröffentlichte Regeln und nimmt Hook-Meldungen an, wenn sie den Agenten gestartet hat
Wo die Daten bleiben Deine Dateien, dein Terminal Der Bildschirmtext bleibt im Speicher der App auf deinem Mac. Beim Beenden einer Agent-Session wird eine Zusammenfassung in deine Wissensdateien geschrieben

Einrichtung

  1. Öffne den Terminal-Bildschirm (Seitenleiste Main → Terminal, /terminal) und starte die Agenten wie gewohnt. Jedes Pane ist ein eigenes PTY.
   ~/code/shop-api (fix/checkout-retry) $ claude
   ~/code/shop-web $ codex
Enter fullscreen mode Exit fullscreen mode

osFoundry erkennt Claude Code am Programm, das das Terminal belegt, oder an seinem Bildschirm, wenn du es über ein Wrapper-Skript gestartet hast. Konfigurieren musst du nichts.

  1. Öffne Sessions (Seitenleiste Main → Sessions, /sessions). Jeder Chat, jeder einzelne Agent, jedes Team, jeder Loop und jede Terminal-Session ist eine Karte. Die Spalten sind Running, Needs you, Paused (pausiert), Idle (untätig), Done (erledigt) und Failed (fehlgeschlagen). Du kannst eine Karte nicht in eine Spalte ziehen, um ihren Zustand festzulegen; die Spalte ergibt sich aus dem, was die Runtime meldet.

Das Sessions-Board von osFoundry mit den Spalten Running, Needs you, Paused, Idle und Done; shop-api von Claude Code steht in Needs you (Beispieldaten)

  1. Klick auf Filter (die Schaltfläche heißt Filtered, sobald ein Filter aktiv ist) und setz den Haken bei Needs me only (nur, was mich braucht). Die Arten (Chat, Agent, Team, Loop, Terminal) und der Zeitraum bleiben, wie sie waren.

Das Filter-Menü auf dem Sessions-Board, mit Needs me only unter Mine only (Beispieldaten)

Zwei Karten bleiben übrig: ein Chat, der eine Frage gestellt hat, und das Claude-Code-Terminal in shop-api.

Das Board gefiltert auf Needs me only: die Claude-Code-Karte von shop-api und der Chat Pricing page layout (Beispieldaten)

Ein Chat landet hier, wenn seine neueste Nachricht mit einer Frage endet, auf deren Antwort er noch wartet. Ein Terminal landet hier, wenn sein Zustand blocked ist, und genau das zeigt der nächste Schritt.

  1. Klick auf die Karte shop-api. Der Terminal-Bildschirm öffnet sich auf diesem Pane, der Prompt steht noch da. Die Leiste links markiert Claude Code als "Needs you · shop-api" und Codex als "Working · shop-web".

Claude Code in einem osFoundry-Terminal-Pane, angehalten bei "Do you want to make this edit to charge.ts?" (Beispieldaten)

Bei mehreren offenen Panes springt Mod+. (⌘. auf dem Mac) zum nächsten Agenten, der dich braucht. Die Statusleiste sagt es auch: "⌘. to jump to what needs you".

  1. Antworte im Pane wie überall sonst: Enter auf 1. Yes. Claude Code macht weiter, und beim nächsten Durchlauf zeigen Leiste und Board es wieder als Working / Running.

Dasselbe Pane nach der Antwort: Die Änderung ist eingespielt, die Tests laufen, und Claude Code meldet den Fix (Beispieldaten)

  1. Wenn eine Agent-Session fertig ist und in Idle steht, zieh ihre Karte auf Done. Die App fragt vorher nach.

Der Dialog zum Beenden der Session: "It is summarised into your knowledge files first, then filed away. Nothing is deleted." (Beispieldaten)

Bestätigen schreibt die Zusammenfassung und beendet dann die Session. Schlägt die Zusammenfassung fehl, bleibt die Session, wo sie war. Eine laufende Session lässt sich gar nicht auf Done ablegen: "This session is still running. Pause it first, then end it." (erst pausieren, dann beenden).

Ein echter Durchlauf

Beispiel. Das Pane aus den Screenshots und was osFoundry aus jedem Bildschirm schließt. Die Urteile kommen aus der Regeldatei von Claude Code, claude.toml, die mit der App ausgeliefert und auch unter osfoundry.io/agent-detection/claude.toml bereitgestellt wird.

~/code/shop-api (fix/checkout-retry) $ claude
● Retry now reuses the first charge. Updating the payment code.

Edit file  src/payments/charge.ts
  41 -  const intent = await stripe.paymentIntents.create(params)
  41 +  const intent = await stripe.paymentIntents.create(params, {
  42 +    idempotencyKey: `charge-${order.id}`,
  43 +  })

Do you want to make this edit to charge.ts?
❯ 1. Yes
  2. Yes, allow all edits during this session
  3. No, and tell Claude what to do differently
Enter fullscreen mode Exit fullscreen mode
auf dem Bildschirm            state     ausgelöste Regel                                         Karte
Spinner, "esc to interrupt"   working   esc to interrupt                                         Running
der Prompt oben               blocked   Do you want to (proceed|continue|make this edit|create)  Needs you
  ... du drückst Enter auf "1. Yes"
wieder Spinner                working   esc to interrupt                                         Running
Enter fullscreen mode Exit fullscreen mode
● Update(src/payments/charge.ts)
  ⎿ Updated src/payments/charge.ts with 3 additions and 1 removal
● Bash(npm test -- payments)
  ⎿ Tests: 42 passed, 42 total
● Fixed. A second press of Pay now reuses the first charge.
Enter fullscreen mode Exit fullscreen mode

Die Regel blocked steht absichtlich über der Regel working. Solange ein Prompt offen ist, kann in der Fußzeile von Claude Code noch "esc to interrupt" stehen, und die erste passende Regel gewinnt.

Wo die Grenze liegt

osFoundry beantwortet nie einen Prompt für dich. Andere Agenten können über das App-Tool runtime_send in ein Pane tippen, aber es verweigert ein Pane, das auf eine Entscheidung wartet. Antworten läuft über ein eigens benanntes Tool, runtime_answer, und du bestätigst jede Antwort. Die Prüfung läuft auf einem frischen Lesen des Bildschirms im Moment des Tippens, nicht auf dem letzten Durchlauf. So kann ein Prompt, der gerade erst aufgetaucht ist, keine Tastendrücke abfangen, die als normaler Text gemeint waren.

Ein Bildschirm, den osFoundry nicht lesen kann, wird als Idle gemeldet, nie als Needs you. Der Kommentar in detect.rs nennt den Grund: Ein einziger Fehlalarm, und niemand traut dem Badge mehr, und danach verpuffen auch die echten Alarme. Ist eine Regel unsicher, meldet die App deshalb lieber weniger als mehr.

Die Regeln sind Daten, kein Code. Eine heruntergeladene Regeldatei kann ändern, welche Muster greifen, sonst nichts. Sie kann nicht ändern, welches Programm läuft. Deine eigene Überschreibung kommt nach ~/.osfoundry/agent-detection/claude.toml.

Der Terminaltext bleibt im Speicher der Desktop-App. Nur eine Session, die du beendest, hinterlässt eine Spur außerhalb des Panes: ihre Zusammenfassung in deinen Wissensdateien, geschrieben, bevor irgendetwas abgelegt wird.

Als Nächstes

Starte ein zweites Claude Code in einem anderen Ordner, gib beiden eine Aufgabe, die eine Änderung braucht, und lass das Sessions-Board auf Needs me only gefiltert, während du etwas anderes machst. Falls du die Desktop-App noch nicht hast: Sie liegt auf der Download-Seite.

Top comments (0)