Digitar claude já liga o gate
No Linux, num shell bash ou zsh com a shell integration ligada — o padrão —, digitar claude sem argumentos não sobe o agente cru. O TYBA intercepta o comando antes de o processo nascer e sobe o claude com os hooks de aprovação, env filtrado e, quando a pasta permite, jaula.
Tudo acontece no mesmo painel: sem botão, sem encerrar nada, sem sessão nova. O agente roda como filho do seu shell — quando ele sai, você volta ao prompt de onde digitou.
Na primeira vez, um toast avisa da mudança:
Agora o TYBA dá jaula + gate quando você roda claude. Para rodar sem, use command claude.
Interceptar antes é o que torna isso possível. Os hooks de aprovação e a jaula só se montam no momento em que o processo nasce; num
claude que já subiu cru, não há como pendurá-los depois. Para chegar antes, a shell integration define uma função de shell chamada claude — type claude mostra o que ela faz.Quando entra a jaula
O gate vale sempre: comando de risco pede aprovação em qualquer pasta. A jaula, que limita o que o agente lê e escreve, só entra quando a pasta está dentro de um repositório git cuja raiz é uma pasta visível da sua home:
Nos outros casos não existe uma raiz segura para a jaula. Sem repositório, não há limite a traçar; e um repositório na home, sob pasta oculta ou fora dela deixaria ao alcance do agente justamente o que a jaula protege — chaves, tokens, a config de outros programas. O TYBA não finge proteção: sobe com gate, sem jaula, e diz isso numa faixa âmbar no topo da sessão:
claude está com gate, mas sem jaula — a pasta não está sob um repositório visível na home.A mesma faixa aparece quando o sistema não deixa montar a jaula — sem user namespaces, por exemplo. O gate continua valendo.
Rodar sem o TYBA
Dois jeitos, e os dois sobem o agente sem gate, como num terminal comum:command claudepula a função e roda o binário direto.claudecom qualquer argumento —claude --resume,claude -p "…"— também sobe cru. Só oclaudepuro passa pelo gate: argumentos mudam como o agente sobe, e o TYBA não os repassa ao caminho protegido.
claude sobe cru em vez de não subir: um terminal que se recusa a rodar o que você digitou está quebrado. Em todos esses casos o TYBA percebe o agente sem gate e avisa, como descrito abaixo.
Onde não vale
- Windows e macOS — digitar
claudeno shell não passa pelo gate. - fish, PowerShell e cmd — a função só existe em bash e zsh.
- Shell integration desligada — a função não é instalada, nem no zsh nem no bash.
codex— só oclaudepassa pelo gate quando digitado.
Agente sem gate: o TYBA percebe e avisa
Quando um agente conhecido (claude, codex) começa a rodar sem gate dentro de uma sessão de shell, aparece uma tarja âmbar no topo daquela sessão:
⚠ claude está rodando fora do TYBA. Reabrir aqui liga a inbox de aprovações e o sandbox. [Reabrir com gate] [Agora não]A tarja é por sessão, não por janela: se você tem um split com dois shells, só o que está rodando o agente mostra o aviso.
A detecção observa os processos do terminal — não depende de shell integration. Funciona com zsh, bash, fish, e com o
claude instalado por qualquer caminho.Reabrir com gate
O botão faz o único caminho que existe para dar gate a um agente já rodando: encerra o processo cru e sobe um novo, gerenciado, na mesma pasta. Não há como injetar as proteções num processo que já nasceu — os hooks são lidos no boot do agente. Por isso ele pede confirmação antes. O que acontece:1
Confirmação
O TYBA avisa que vai encerrar o agente atual. Nada acontece sem o seu ok.
2
Encerramento cirúrgico
Só o agente morre —
SIGTERM, um instante de espera, SIGKILL no que sobrar. O seu shell sobrevive e volta para o prompt.3
Sessão gerenciada
Uma sessão nova sobe na mesma pasta, com inbox, sandbox e captura de subagentes.
Quando não dá
A pasta precisa ser um repositório git. Sessão gerenciada é repo-centrada — é o que dá o painel de git, o diff e o alcance da jaula.claude rodando numa pasta sem git mostra erro claro, e o aviso continua ali.
Agora não
Esconde o aviso para aquele processo. Um agente novo no mesmo shell avisa de novo — e recarregar a janela traz o aviso de volta, de propósito: a sessão continua sem gate, e o TYBA não finge o contrário. O que não some é o selo sem gate no painel de sessões. Enquanto aquele agente estiver rodando sem proteção, o selo fica. Umclaude que o TYBA subiu com gate não mostra o selo — com ou sem jaula.
O painel Agentes funciona nos dois casos
Os subagentes de umclaude digitado no shell aparecem no painel Agentes com ou sem gate. Com gate, eles chegam pelos hooks, como numa sessão de agente. Sem gate, o TYBA lê o transcript no disco — é a única proteção que sobrevive ao caminho cru, e ela é só de leitura: mostra o que está acontecendo, não intercepta nada.
Veja também
- Claude Code e Codex — como o TYBA sobe um agente gerenciado
- Shell integration — o que ela injeta no shell, e como desligar
- Subagentes — o painel Agentes e a árvore de execução
- Classificação de risco — o que o gate de aprovação segura