Escribir claude ya activa el gate
En Linux, en un shell bash o zsh con la shell integration activada (viene así por defecto), escribir claude sin argumentos no arranca el agente crudo. TYBA intercepta el comando antes de que nazca el proceso y arranca claude con los hooks de aprobación, env filtrado y, cuando la carpeta lo permite, jaula.
Todo pasa en el mismo panel: sin botón, sin cerrar nada, sin sesión nueva. El agente corre como hijo de tu shell — cuando sale, volvés al prompt desde donde lo escribiste.
La primera vez, un toast avisa del cambio:
TYBA now jails + gates when you run claude. To run without it, use command claude.
Interceptar antes es lo que lo hace posible. Los hooks de aprobación y la jaula solo se montan en el momento en que nace el proceso; a un
claude que ya arrancó crudo no hay forma de colgárselos después. Para llegar antes, la shell integration define una función de shell llamada claude — type claude muestra lo que hace.Cuándo entra la jaula
El gate aplica siempre: un comando de riesgo pide aprobación en cualquier carpeta. La jaula, que limita lo que el agente lee y escribe, solo entra cuando la carpeta está dentro de un repositorio git cuya raíz es una carpeta visible de tu home:
En los otros casos no existe una raíz segura para la jaula. Sin repositorio no hay límite que trazar; y un repositorio en la home, bajo una carpeta oculta o fuera de la home dejaría al alcance del agente justo lo que la jaula protege — claves, tokens, la config de otros programas. TYBA no finge protección: arranca con gate, sin jaula, y lo dice en una franja ámbar arriba de la sesión:
claude is gated, but not jailed — the folder isn’t under a repo visible under home.La misma franja aparece cuando el sistema no deja montar la jaula — sin user namespaces, por ejemplo. El gate sigue aplicando.
Correrlo sin TYBA
Dos formas, y las dos arrancan el agente sin gate, como en una terminal común:command claudesaltea la función y ejecuta el binario directo.claudecon cualquier argumento —claude --resume,claude -p "…"— también arranca crudo. Solo elclaudepelado pasa por el gate: los argumentos cambian cómo arranca el agente, y TYBA no los pasa al camino protegido.
claude arranca crudo en vez de no arrancar: una terminal que se niega a ejecutar lo que escribiste está rota. En todos esos casos TYBA detecta el agente sin gate y avisa, como se describe abajo.
Dónde no aplica
- Windows y macOS — escribir
claudeen el shell no pasa por el gate. - fish, PowerShell y cmd — la función solo existe en bash y zsh.
- Shell integration desactivada — la función no se instala, ni en zsh ni en bash.
codex— soloclaudepasa por el gate cuando se escribe.
Agente sin gate: TYBA lo detecta y avisa
Cuando un agente conocido (claude, codex) empieza a correr sin gate dentro de una sesión de shell, aparece una franja ámbar arriba de esa sesión:
⚠ claude running without TYBA’s gate — no approval inbox, no sandbox [Reopen managed] [Ignore]La franja es por sesión, no por ventana: si tenés un split con dos shells, solo el que está corriendo el agente muestra el aviso.
La detección observa los procesos de la terminal — no depende de shell integration. Funciona con zsh, bash, fish, y con
claude instalado por cualquier camino.Reabrir gestionado
El botón Reopen managed hace el único camino que existe para darle gate a un agente que ya está corriendo: termina el proceso crudo y arranca uno nuevo, gestionado, en la misma carpeta. No hay forma de inyectar las protecciones en un proceso que ya arrancó — los hooks se leen cuando el agente bootea. Por eso pide confirmación antes. Qué pasa:1
Confirmación
TYBA te avisa que va a terminar el agente actual. No pasa nada sin tu ok.
2
Cierre quirúrgico
Solo muere el agente —
SIGTERM, un instante de gracia, SIGKILL para lo que quede. Tu shell sobrevive y vuelve al prompt.3
Sesión gestionada
Arranca una sesión nueva en la misma carpeta, con inbox, sandbox y captura de subagentes.
Cuándo no se puede
La carpeta tiene que ser un repositorio git. Una sesión gestionada es repo-céntrica — es lo que da el panel de git, el diff y el alcance de la jaula.claude corriendo en una carpeta sin git muestra un error claro, y el aviso sigue ahí.
Ignorar
Ignore esconde el aviso para ese proceso. Un agente nuevo en el mismo shell avisa de nuevo — y recargar la ventana trae el aviso de vuelta, a propósito: la sesión sigue sin gate, y TYBA no finge lo contrario. Lo que no desaparece es el sello sin gate en el panel de sesiones. Mientras ese agente corra sin protección, el sello queda. Unclaude que TYBA arrancó con gate no muestra el sello — con o sin jaula.
El panel Agentes funciona en los dos casos
Los subagentes de unclaude escrito en el shell aparecen en el panel Agentes, con o sin gate. Con gate, llegan por los hooks, como en una sesión de agente. Sin gate, TYBA lee el transcript del disco — es la única protección que sobrevive al camino crudo, y es de solo lectura: muestra lo que pasa, no intercepta nada.
Ver también
- Claude Code y Codex — cómo TYBA arranca un agente gestionado
- Shell integration — qué inyecta en el shell, y cómo desactivarla
- Subagentes — el panel Agentes y el árbol de ejecución
- Clasificación de riesgo — qué frena el gate de aprobación