Reach

O zn-gate reach mostra o que os seus agentes de código podem alcançar nesta máquina (só nomes, nunca valores), com o comando que corrige cada achado. Só leitura.

Ver .md

zn-gate reach responde a uma pergunta: o que os agentes de código desta máquina podem alcançar? Mostra quais agentes o zn protege, os nomes dos segredos nos arquivos .env de uma pasta, os arquivos de credenciais da sua pasta pessoal, as variáveis de ambiente que contêm um segredo e o que o zn audit encontra nos servidores MCP e na configuração dos agentes. Cada achado traz o comando que o corrige.

npx -y zn-gate reach

Execute-o na pasta em que você trabalha. Ele não envia nada, não inicia nenhum hook e não altera nada.

O que ele verifica

  • Agentes: Claude Code, Codex CLI, Cursor e OpenCode. Mostra se cada um está nesta máquina e se o zn o protege para o seu usuário ou só para um projeto. Usa a verificação de instalação do zn-gate check e não inicia nenhum hook.
  • Arquivos .env da pasta: os nomes dos segredos, nunca os valores. Um arquivo que é um link não é seguido.
  • Arquivos de credenciais da sua pasta pessoal, como ~/.aws/credentials, chaves SSH, ~/.npmrc e ~/.kube/config. O zn só verifica se existem. Nunca os abre.
  • Variáveis de ambiente cujo nome ou valor parece um segredo: só os nomes.
  • Servidores MCP e configuração dos agentes desta pasta e do seu usuário, com as mesmas regras do zn audit.

Exemplo

Em uma máquina onde os três agentes estão protegidos, o relatório é curto:

zn-gate reach: what can the coding agents on this machine reach?
Read: agent settings in your home folder and this folder, .env files here, names of environment variables. Nothing was sent anywhere.

AGENTS
  Claude Code  protected by zn (run `zn-gate check` to test it)
  Codex CLI    protected by zn (run `zn-gate check` to test it)
  Cursor       protected by zn (run `zn-gate check` to test it)
  OpenCode     not found on this machine

Nothing to fix. Your agents run with zn-gate.

Quando há algo a revisar, cada achado tem uma gravidade, uma explicação curta e o comando que o corrige. Esta é a saída real de uma execução em um projeto fictício (segredos e arquivo de credenciais AWS fictícios):

zn-gate reach: what can the coding agents on this machine reach?
Read: agent settings in your home folder and this folder, .env files here, names of environment variables. Nothing was sent anywhere.

AGENTS
  Claude Code  not protected
  Codex CLI    not found on this machine
  Cursor       not found on this machine
  OpenCode     not found on this machine
  HIGH   Claude Code is on this machine and zn does not protect it
         It can read any file and run any command you allow.
         Fix: npx -y zn-gate init

WHAT THEY CAN REACH (secrets and credential files an agent could read; names only, never values)
  HIGH   .env in this folder has 2 secrets (OPENAI_API_KEY, DATABASE_URL)
         Claude Code can read them today.
         Fix: npx -y zn-gate env shadow .env
  MEDIUM 1 credential file in your home folder (~/.aws/credentials)
         Claude Code can read them today.
         Fix: npx -y zn-gate init

NEXT: fix the high ones
  1. npx -y zn-gate init
  2. npx -y zn-gate env shadow .env

2 high, 1 medium, 0 low.

A gravidade depende da instalação. Um .env ou um arquivo de credenciais é high ou medium quando há na máquina um agente que o zn ainda não protege. É low quando nenhum agente está instalado ainda, e apenas informativo quando o zn protege todos os agentes que encontra. As variáveis de ambiente são sempre low.

Opções

Opção O que faz
[path] A pasta a verificar. Padrão: a pasta atual
--json O mesmo relatório em JSON
--sarif O relatório em SARIF 2.1.0, para code scanning. Os achados sobre arquivos da pasta verificada são resultados (um .env com segredos que um agente pode ler é ZNR002). Agentes, arquivos de credenciais e variáveis de ambiente são notificações da execução
--fail-on high|medium|low|none Sai com código 1 quando encontra um achado desse nível ou acima. O padrão, none, mantém o reach como um relatório que sai com 0. Um erro de uso ou uma falha sai com 2
--remember Guarda os totais desta execução (high, medium, low e a data) em ~/.zn/reach-last.json, para que a próxima execução com --remember mostre como eles estavam. Sem a opção, o reach não grava nada

O que ele nunca faz

  • Nunca mostra um valor secreto e nunca abre um arquivo de credenciais.
  • Não envia nada pela rede e não inicia nenhum hook.
  • Não grava nada, a menos que você use --remember.

Se a verificação ficar sem tempo em uma pasta grande, o relatório avisa que alguns arquivos não foram verificados. npx -y zn-gate audit --include-home verifica todos.

Onde ele entra na configuração

  1. zn-gate reach mostra o que os seus agentes podem alcançar hoje.
  2. npx -y zn-gate init protege cada agente. Início rápido
  3. npx -y zn-gate check testa se o zn impede o seu agente de ler um .env de teste. Check
  4. npx -y zn-gate env shadow .env move os segredos em texto puro de um arquivo .env para o cofre local.

Para corrigir um achado, execute o comando que ele mostra. Para os agentes que não estão protegidos, é npx -y zn-gate init. Para as variáveis de ambiente, execute npx -y zn-gate secret set NAME no seu próprio terminal e escreva __ZN_NAME__ onde o valor deve ir.