Conectar (verificação na nuvem opcional)
O zn-gate connect ativa a verificação opcional na nuvem com o Galvanize 2, usando uma chave de API só de análise guardada no chaveiro do seu sistema. O zn-gate disconnect a remove e pode revogá-la em usezn.com.
npx -y zn-gate connect
(ou zn-gate connect se você o instalou com npm i -g zn-gate).
O zn-gate funciona por completo no seu computador, não precisa de conta e, por padrão, não envia nada. Este comando é opcional. Ele acrescenta uma só coisa: quando você ou o seu agente usam a ferramenta analyze_prompt (ou zn-gate analyze), o texto, com os segredos detectados já ocultos, também é verificado pelo classificador Galvanize 2 em usezn.com. Os hooks, a proteção de arquivos e segredos, o shield e todos os outros comandos continuam locais e nunca o usam.
O que o zn-gate connect faz
- Só roda em um terminal em que você está digitando. Se um agente de IA o iniciou, ele se recusa.
- Diz o que vai mudar e pede a sua confirmação.
- Abre usezn.com/connect no seu navegador. Crie uma conta gratuita (ou entre) e crie lá uma chave de API só de análise. A página de conexão faz isso por você.
- De volta ao terminal, cole a chave no campo oculto. O que você digita não aparece, e a chave nunca é lida da linha de comando nem de uma variável de ambiente.
- Ele verifica a chave uma vez com
https://api.usezn.com. Só a chave é enviada, como cabeçalho da requisição, a esse único endereço, por uma conexão TLS verificada. - Ele guarda a chave e mostra os quatro últimos caracteres para você reconhecê-la.
Quais chaves ele aceita
O connect só aceita uma chave limitada a analisar texto. Uma chave assim não pode ler o seu uso, listar, criar ou revogar outras chaves, nem usar o painel, então uma cópia vazada pouco ajuda. Uma chave de acesso total é recusada, com um aviso que aponta para a página de conexão. Uma chave que o servidor rejeita, ou que não pôde ser verificada (sem resposta, um erro), também é recusada. Em todos esses casos nada é guardado.
Onde a chave fica guardada
Só em um destes lugares, nunca em um arquivo:
- O chaveiro do seu sistema: o Chaveiro do macOS, o Gerenciador de Credenciais do Windows ou o Secret Service do Linux (GNOME Keyring, KWallet).
- O cofre do zn, quando o seu sistema não tem chaveiro e o cofre está desbloqueado (
zn unlock). O cofre a criptografa.
Se nenhum dos dois estiver disponível (por exemplo, Linux sem sessão de desktop), nada é guardado e o zn-gate connect avisa. Você ainda pode definir ZN_CLOUD=1 e ZN_API_KEY no seu shell por conta própria.
O ~/.zn/config.json registra apenas que você se conectou, onde a chave está guardada e os seus quatro últimos caracteres. Ele nunca contém a chave. A verificação na nuvem só liga a partir desse registro quando a chave guardada termina nesses quatro caracteres, então um registro escrito à mão não faz nada. Uma chave guardada só é enviada a https://api.usezn.com: --url e ZN_API_URL são ignorados para ela. Se o registro existir mas a chave guardada não puder ser lida, os prompts são verificados localmente e o zn-gate avisa uma vez.
Os hooks do zn recusam os caminhos diretos para o seu agente ler a chave guardada, como comandos que pedem ao chaveiro do sistema as entradas do zn ou código que a carrega pelos módulos do zn. Os próprios comandos connect e disconnect são recusados quando um agente os executa, e o zn oculta o formato da chave (zn_ seguido de 48 caracteres) no que o agente vê.
Isso é uma barreira, não uma parede de cofre: um programa executado como você ainda pode pedir a chave ao chaveiro, como acontece com qualquer entrada do chaveiro. Por isso o connect só aceita uma chave limitada a analisar texto, e por isso você pode revogá-la a qualquer momento.
Ver e mudar o estado
zn-gate statusmostra se há uma chave conectada e de onde ela vem (ZN_API_KEY,--key, o chaveiro ou o cofre), nunca a chave. Mostra também o mecanismo de detecção e se a verificação opcional na nuvem está ligada.zn-gate connect --reconnectsubstitui a chave guardada.zn-gate disconnectremove a chave deste computador e desliga a verificação na nuvem.- Uma chave em
--keyouZN_API_KEYsó é usada no lugar da guardada se você também definirZN_CLOUD=1; sem isso, a chave guardada é usada eZN_API_KEYeZN_API_URLsão ignorados.ZN_LOCAL_ONLY=trueou--local-onlydesliga a verificação na nuvem mesmo com a conexão feita.
Desconectar e revogar a chave
Se houver uma chave guardada, o zn-gate disconnect pergunta se você também quer revogá-la em usezn.com, para que ela pare de funcionar em todo lugar. A resposta padrão é não, e só um sim explícito envia alguma coisa: uma requisição com a chave a https://api.usezn.com, pela mesma conexão verificada que o connect usa.
- A cópia local é removida em todos os casos, mesmo que a requisição falhe. Se falhar, o comando avisa e aponta para usezn.com/api-keys, onde você mesmo pode revogar a chave.
zn-gate disconnect --revokepula a pergunta, e--no-revokenunca revoga e não faz nenhuma chamada de rede.- Se a chave guardada não puder ser lida, nada é removido. Nesse caso,
--no-revokeremove só a cópia local. - Como o
connect, o comando só roda no seu próprio terminal. Sem terminal, ou a partir de um agente de IA, ele se recusa e não muda nada, então nada é revogado.
Se algo falhar
- Ele se recusa a rodar: só roda em um terminal em que você digita. Abra o seu próprio terminal e execute lá, não por meio de um agente de IA nem de um script.
- A chave é recusada: use a página de conexão para criar uma chave só de análise e rode
zn-gate connectde novo. - Não foi possível verificar a chave (sem resposta, um erro): confira a sua conexão e tente de novo.
- Ele diz que nada foi guardado porque não há chaveiro: desbloqueie o cofre com
zn unlocke rodezn-gate connectde novo, ou definaZN_CLOUD=1eZN_API_KEYno seu shell por conta própria. - Você quer parar: rode
zn-gate disconnect.
O que é enviado
Só o texto das chamadas a analyze_prompt e zn-gate analyze, depois que o zn-gate remove os segredos que detecta (nesse caminho os dados pessoais não são removidos), e a chave como cabeçalho da requisição. A saída das ferramentas, os argumentos das chamadas de ferramentas e as descrições de ferramentas nunca são enviados. Veja O que sai da sua máquina.