DEV Community

Cover image for Cómo ver en osFoundry qué sesión de Claude Code espera tu permiso
BBT for BBT Español

Posted on

Cómo ver en osFoundry qué sesión de Claude Code espera tu permiso

Al terminar tendrás Claude Code corriendo en un panel de terminal, Codex en otro y un par de chats y agentes funcionando al lado. Un solo tablero en osFoundry los muestra todos. Cuando Claude Code se detiene en "Do you want to make this edit?", su tarjeta pasa a la columna Needs you (te necesita) en menos de un segundo. Un clic abre el panel justo en ese prompt. Respondes y la tarjeta vuelve a Running (en ejecución).

Quién hace qué

Claude Code App de escritorio de osFoundry
Inicio de sesión Su propio login de Claude, en su propio proceso No guarda nada de eso. En un agente que ella misma lanzó, elimina la ANTHROPIC_API_KEY heredada para que una ejecución con suscripción no se facture como API
Dónde se ejecuta Un PTY real en la pantalla Terminal, en la carpeta de tu proyecto Es dueña del PTY y mantiene una copia emulada de la pantalla
Quién aprueba Tú, en el propio prompt de permisos de Claude Code Nunca responde por ti. Solo mueve la tarjeta y abre el panel
Cómo se conoce el estado Claude Code dibuja su interfaz como siempre Lee la pantalla cada 700 ms contra reglas publicadas y recibe informes de hooks cuando lanzó ella el agente
Dónde quedan los datos Tus archivos, tu terminal El texto de la pantalla se queda en la memoria de la app en tu Mac. Al terminar una sesión de agente se escribe un resumen en tus archivos de conocimiento

Configuración

  1. Abre la pantalla Terminal (barra lateral Main → Terminal, /terminal) e inicia los agentes como lo harías normalmente. Cada panel es su propio PTY.
   ~/code/shop-api (fix/checkout-retry) $ claude
   ~/code/shop-web $ codex
Enter fullscreen mode Exit fullscreen mode

osFoundry reconoce Claude Code por el programa que ocupa la terminal, o por su pantalla si lo iniciaste con un script envoltorio. No hay nada que configurar.

  1. Abre Sessions (barra lateral Main → Sessions, /sessions). Cada chat, agente individual, equipo, bucle y sesión de terminal es una tarjeta. Las columnas son Running, Needs you, Paused (en pausa), Idle (inactiva), Done (terminada) y Failed (fallida). No puedes arrastrar una tarjeta a una columna para fijar su estado; la columna depende de lo que informa el runtime.

El tablero Sessions de osFoundry con las columnas Running, Needs you, Paused, Idle y Done; shop-api de Claude Code está en Needs you (datos de ejemplo)

  1. Haz clic en Filter (pasa a decir Filtered cuando hay un filtro activo) y marca Needs me only (solo lo que me necesita). Los tipos (Chat, Agent, Team, Loop, Terminal) y el rango de tiempo se quedan como estaban.

El menú Filter del tablero Sessions, con Needs me only debajo de Mine only (datos de ejemplo)

Quedan dos tarjetas: un chat que hizo una pregunta y la terminal de Claude Code en shop-api.

El tablero filtrado por Needs me only: la tarjeta de Claude Code de shop-api y el chat Pricing page layout (datos de ejemplo)

Un chat llega aquí cuando su mensaje más reciente termina en una pregunta que sigue esperando respuesta. Una terminal llega aquí cuando su estado es blocked, que es lo que muestra el siguiente paso.

  1. Haz clic en la tarjeta shop-api. La pantalla Terminal se abre en ese panel con el prompt todavía visible. El riel de la izquierda marca Claude Code como "Needs you · shop-api" y Codex como "Working · shop-web".

Claude Code en un panel de terminal de osFoundry, detenido en "Do you want to make this edit to charge.ts?" (datos de ejemplo)

Con varios paneles abiertos, Mod+. (⌘. en un Mac) salta al siguiente agente que te necesita. La barra de estado lo indica: "⌘. to jump to what needs you".

  1. Responde en el panel como lo harías en cualquier otro sitio: Enter en 1. Yes. Claude Code sigue trabajando y, en la siguiente pasada, el riel y el tablero lo vuelven a mostrar como Working / Running.

El mismo panel después de responder: la edición se aplica, se ejecutan los tests y Claude Code informa del arreglo (datos de ejemplo)

  1. Cuando una sesión de agente ha terminado y está en Idle, arrastra su tarjeta a Done. La app pregunta antes.

El diálogo de fin de sesión: "It is summarised into your knowledge files first, then filed away. Nothing is deleted." (datos de ejemplo)

Al confirmar, se escribe el resumen y después se termina la sesión. Si el resumen falla, la sesión se queda donde estaba. Una sesión en ejecución no se puede soltar en Done de ninguna manera: "This session is still running. Pause it first, then end it." (primero hay que pausarla y luego terminarla).

Una ejecución real

Ejemplo. El panel de las capturas y lo que concluye osFoundry de cada pantalla. Los veredictos salen del archivo de reglas de Claude Code, claude.toml, que la app incluye y que también se publica en 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
Enter fullscreen mode Exit fullscreen mode
en pantalla                   state     regla que coincidió                                      tarjeta
spinner, "esc to interrupt"   working   esc to interrupt                                         Running
el prompt de arriba           blocked   Do you want to (proceed|continue|make this edit|create)  Needs you
  ... pulsas Enter en "1. Yes"
spinner otra vez              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

La regla blocked está por encima de la regla working a propósito. Mientras hay un prompt abierto, el pie de Claude Code puede seguir diciendo "esc to interrupt", y gana la primera regla que coincide.

Dónde está el límite

osFoundry nunca responde un prompt por ti. Otros agentes pueden escribir en un panel con la herramienta runtime_send de la app, pero esta rechaza un panel que está esperando una decisión. Responder pasa por una herramienta con otro nombre, runtime_answer, y tú confirmas cada respuesta. La comprobación se hace con una lectura nueva de la pantalla en el momento de escribir, no con la última pasada, así que un prompt que apareció hace un instante no puede tragarse pulsaciones pensadas como texto normal.

Una pantalla que osFoundry no puede leer se informa como Idle, nunca como Needs you. El comentario en detect.rs da el motivo: una sola falsa alarma y la gente deja de fiarse del indicador, y a partir de ahí las alarmas verdaderas también se pierden. Por eso, cuando una regla no está segura, la app informa de menos, no de más.

Las reglas son datos, no código. Un archivo de reglas descargado puede cambiar qué patrones coinciden y nada más. No puede cambiar qué programa se ejecuta. Tu propia versión va en ~/.osfoundry/agent-detection/claude.toml.

El texto de la terminal se queda en la memoria de la app de escritorio. Solo una sesión que terminas deja rastro fuera del panel: su resumen en tus archivos de conocimiento, escrito antes de que nada se archive.

Siguiente paso

Inicia un segundo Claude Code en otra carpeta, dale a los dos una tarea que requiera una edición y deja el tablero Sessions filtrado por Needs me only mientras haces otra cosa. Si todavía no tienes la app de escritorio, está en la página de descarga.

Top comments (0)