Alla fine avrai Claude Code in esecuzione in un pannello del terminale, Codex in un altro e un paio di chat e agenti attivi a lato. Un'unica bacheca in osFoundry li elenca tutti. Quando Claude Code si ferma su "Do you want to make this edit?", la sua scheda passa nella colonna Needs you (serve il tuo intervento) entro un secondo. Un clic apre il pannello proprio su quel prompt. Rispondi e la scheda torna in Running (in esecuzione).

Chi fa cosa

Claude Code App desktop di osFoundry
Login Il suo login di Claude, nel suo processo Non ne conserva nulla. Per un agente che ha avviato lei, rimuove una ANTHROPIC_API_KEY ereditata, così un'esecuzione con abbonamento non viene fatturata come API
Dove gira Un vero PTY nella schermata Terminal, nella cartella del tuo progetto Possiede il PTY e tiene una copia emulata dello schermo
Chi approva Tu, nel prompt dei permessi di Claude Code stesso Non risponde mai al posto tuo. Sposta solo la scheda e apre il pannello
Come si conosce lo stato Claude Code disegna la sua interfaccia come al solito Legge lo schermo ogni 700 ms confrontandolo con regole pubblicate, e riceve i report degli hook quando ha avviato lei l'agente
Dove restano i dati I tuoi file, il tuo terminale Il testo dello schermo resta nella memoria dell'app sul tuo Mac. Chiudere una sessione di agente scrive un riepilogo nei tuoi file di conoscenza

Configurazione

  1. Apri la schermata Terminal (barra laterale Main → Terminal, /terminal) e avvia gli agenti come fai di solito. Ogni pannello è un PTY a sé.
 ~/code/shop-api (fix/checkout-retry) $ claude ~/code/shop-web $ codex 

osFoundry riconosce Claude Code dal programma che occupa il terminale, oppure dal suo schermo se l'hai avviato tramite uno script wrapper. Non c'è niente da configurare.

  1. Apri Sessions (barra laterale Main → Sessions, /sessions). Ogni chat, agente singolo, team, loop e sessione di terminale è una scheda. Le colonne sono Running, Needs you, Paused (in pausa), Idle (inattiva), Done (conclusa) e Failed (fallita). Non puoi trascinare una scheda in una colonna per impostarne lo stato; la colonna dipende da ciò che riporta il runtime.

La bacheca Sessions di osFoundry con le colonne Running, Needs you, Paused, Idle e Done; shop-api di Claude Code è in Needs you (dati di esempio)

  1. Fai clic su Filter (diventa Filtered quando un filtro è attivo) e spunta Needs me only (solo ciò che richiede me). I tipi (Chat, Agent, Team, Loop, Terminal) e l'intervallo di tempo restano com'erano.

Il menu Filter della bacheca Sessions, con Needs me only sotto Mine only (dati di esempio)

Restano due schede: una chat che ha fatto una domanda e il terminale di Claude Code in shop-api.

La bacheca filtrata su Needs me only: la scheda Claude Code di shop-api e la chat Pricing page layout (dati di esempio)

Una chat finisce qui quando il suo messaggio più recente termina con una domanda di cui aspetta ancora la risposta. Un terminale finisce qui quando il suo stato è blocked, ed è quello che mostra il passo successivo.

  1. Fai clic sulla scheda shop-api. La schermata Terminal si apre su quel pannello, con il prompt ancora visibile. La barra a sinistra segna Claude Code come "Needs you · shop-api" e Codex come "Working · shop-web".

Claude Code in un pannello del terminale di osFoundry, fermo su "Do you want to make this edit to charge.ts?" (dati di esempio)

Con più pannelli aperti, Mod+. (⌘. su Mac) salta al prossimo agente che ha bisogno di te. Lo dice anche la barra di stato: "⌘. to jump to what needs you".

  1. Rispondi nel pannello come faresti ovunque: Invio su 1. Yes. Claude Code va avanti e, al passaggio successivo, la barra e la bacheca lo mostrano di nuovo come Working / Running.

Lo stesso pannello dopo la risposta: la modifica è applicata, i test girano e Claude Code riporta la correzione (dati di esempio)

  1. Quando una sessione di agente è finita e si trova in Idle, trascina la sua scheda su Done. L'app chiede prima conferma.

La finestra di chiusura della sessione: "It is summarised into your knowledge files first, then filed away. Nothing is deleted." (dati di esempio)

Confermando, viene scritto il riepilogo e poi la sessione viene chiusa. Se il riepilogo non va a buon fine, la sessione resta dov'era. Una sessione in esecuzione non può proprio essere rilasciata su Done: "This session is still running. Pause it first, then end it." (prima va messa in pausa, poi chiusa).

Un'esecuzione reale

Esempio. Il pannello degli screenshot e ciò che osFoundry deduce da ogni schermata. I verdetti vengono dal file di regole di Claude Code, claude.toml, che l'app include e che è anche pubblicato su osfoundry.io/agent-detection/claude.toml.

~/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 
sullo schermo state regola scattata scheda spinner, "esc to interrupt" working esc to interrupt Running il prompt qui sopra blocked Do you want to (proceed|continue|make this edit|create) Needs you ... premi Invio su "1. Yes" di nuovo lo spinner working esc to interrupt Running 
● 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. 

La regola blocked sta sopra la regola working di proposito. Mentre un prompt è aperto, il footer di Claude Code può ancora dire "esc to interrupt", e vince la prima regola che corrisponde.

Dove sta il confine

osFoundry non risponde mai a un prompt al posto tuo. Altri agenti possono scrivere in un pannello tramite lo strumento runtime_send dell'app, ma questo rifiuta un pannello in attesa di una decisione. Rispondere passa da uno strumento con un nome diverso, runtime_answer, e confermi tu ogni risposta. Il controllo avviene su una lettura nuova dello schermo nel momento in cui si scrive, non sull'ultimo passaggio, quindi un prompt comparso un attimo prima non può catturare tasti pensati come testo normale.

Uno schermo che osFoundry non riesce a leggere viene segnalato come Idle, mai come Needs you. Il commento in detect.rs ne spiega il motivo: basta un falso allarme e la gente smette di fidarsi del badge, e da lì in poi anche gli allarmi veri vanno sprecati. Per questo, quando una regola è incerta, l'app segnala di meno, non di più.

Le regole sono dati, non codice. Un file di regole scaricato può cambiare quali pattern corrispondono e nient'altro. Non può cambiare quale programma viene eseguito. La tua versione personalizzata va in ~/.osfoundry/agent-detection/claude.toml.

Il testo del terminale resta nella memoria dell'app desktop. Solo una sessione che chiudi tu lascia una traccia fuori dal pannello: il suo riepilogo nei tuoi file di conoscenza, scritto prima che qualcosa venga archiviato.

Prossimo passo

Avvia un secondo Claude Code in un'altra cartella, dai a entrambi un compito che richiede una modifica e lascia la bacheca Sessions filtrata su Needs me only mentre fai altro. Se non hai ancora l'app desktop, la trovi nella pagina di download.