zn-gate para o Gemini CLI
Instale os hooks experimentais do zn para o Gemini CLI: eles bloqueiam a leitura e a escrita de arquivos secretos e os comandos de shell que lidam com segredos antes de a ferramenta rodar.
O suporte ao Gemini CLI é experimental. Trate-o como uma primeira camada: o zn pode bloquear uma chamada, mas não consegue esconder o que uma ferramenta devolve (veja os Limites abaixo).
O Google substituiu o Gemini CLI pelo Antigravity CLI para contas gratuitas e Google One em 18 de junho de 2026. O Antigravity agora é a primeira escolha para novas instalações; o zn-gate continua compatível com o Gemini CLI.
Você precisa do Node.js 18 ou mais recente. Cole cada linha em um terminal e pressione Enter depois de cada uma:
npm install -g zn-gate
zn hooks install gemini
No macOS e no Linux, se npm install -g falhar com EACCES, siga o guia do npm sobre como corrigir erros de permissão.
Corrija sem direitos de administrador:
mkdir -p ~/.npm-global && npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
Se usar bash, escreva em ~/.bashrc em vez de ~/.zshrc.
Depois, abra um novo terminal e execute npx -y zn-gate init. Um gerenciador de versões do Node.js, como o nvm, também evita o problema.
Depois, abra uma nova sessão do Gemini CLI. O zn adiciona seu hook a ~/.gemini/settings.json. Vai atualizar depois? Veja Atualizar o zn-gate.
Só para um projeto
Execute zn hooks install gemini --project dentro do projeto. Ele grava .gemini/settings.json nesse projeto, e não na sua pasta pessoal. O Gemini CLI trata um hook de projeto como não confiável até você aprová-lo, e o hook executa o zn a partir do seu PATH, então todas as pessoas que abrirem o projeto precisam ter o zn-gate instalado.
O que você recebe
- O zn verifica cada chamada de ferramenta antes de ela rodar.
- Leituras e escritas de arquivos secretos, como arquivos
.envcom valores, são bloqueadas pelo caminho do arquivo. - Comandos de shell que lidam com segredos são bloqueados. Para um comando que usa um marcador
__ZN_<NAME>__, o zn o bloqueia e diz ao modelo a linha exata dezn run -- ...que deve usar no lugar. - Uma busca em uma pasta que imprimiria segredos em texto simples é bloqueada. Informe um caminho mais específico.
- O agente não consegue editar os arquivos de configuração do Gemini CLI.
- O zn nunca aprova uma chamada por você. Quando ele não tem objeção, vale a aprovação do próprio Gemini CLI.
Limites
- O que uma ferramenta devolve não é alterado. Um valor que um comando imprime, ou que está em um arquivo que o agente pode ler, continua chegando ao modelo. Mantenha seus segredos no cofre.
- O zn bloqueia o que perguntaria. Os hooks do Gemini CLI não conseguem pedir confirmação a você, então o zn bloqueia o que recusaria e também o que perguntaria, com o motivo e como aprovar. Para todo o resto, vale a aprovação do próprio Gemini CLI.
- Um segredo colado em um prompt digitado não é verificado.
- O Gemini CLI deixa uma chamada rodar quando um hook falha ou estoura o tempo, então o zn bloqueia a chamada no lugar. No Gemini CLI, só uma recusa explícita bloqueia. O zn define um timeout de 15 segundos no seu hook (o padrão do próprio Gemini CLI é de 60 segundos), e uma verificação ainda em execução após 11 segundos é respondida com um bloqueio. Em uma instalação de usuário, um pequeno script de inicialização, e em uma instalação de projeto, uma proteção de inicialização, respondem com um bloqueio a um hook que falha (inclusive quando o Node.js com o qual o zn foi instalado tiver sumido).
- Configurações podem desligar o hook.
hooksConfig.enabled: false, um nome de hook emhooksConfig.disablede o comando/hooks disableo desligam. Ozn-gate checkavisa. - O zn foi verificado com o Gemini CLI 0.64.0 e um modelo simulado, não com todas as versões.
Confira se funciona
Em um novo terminal, execute zn-gate check. Ele deve mostrar OK para o Gemini CLI. O que significa a saída.
No PowerShell do Windows, se o npm disser "running scripts is disabled on this system", use npm.cmd e zn.cmd no lugar: veja Instalar.
Como remover
Execute zn hooks uninstall gemini no seu próprio terminal (acrescente --project para uma instalação de projeto).