Reach

zn-gate reach montre ce que vos agents de code peuvent atteindre sur cette machine (noms seulement, jamais de valeurs), avec la commande qui corrige chaque constat. Lecture seule.

Voir le .md

zn-gate reach répond à une question : que peuvent atteindre les agents de code de cette machine ? Il indique quels agents zn protège, les noms des secrets des fichiers .env d’un dossier, les fichiers d’identifiants de votre dossier personnel, les variables d’environnement qui contiennent un secret, et ce que zn audit trouve dans les serveurs MCP et la configuration des agents. Chaque constat donne la commande qui le corrige.

npx -y zn-gate reach

Lancez-le dans le dossier où vous travaillez. Il n’envoie rien, ne démarre aucun hook et ne modifie rien.

Ce qu’il vérifie

  • Agents : Claude Code, Codex CLI, Cursor et OpenCode. Il indique si chacun est présent sur la machine et si zn le protège pour votre utilisateur ou seulement pour un projet. Il utilise la vérification d’installation de zn-gate check et ne démarre aucun hook.
  • Fichiers .env du dossier : les noms de leurs secrets, jamais les valeurs. Un fichier qui est un lien n’est pas suivi.
  • Fichiers d’identifiants de votre dossier personnel, comme ~/.aws/credentials, les clés SSH, ~/.npmrc et ~/.kube/config. zn vérifie seulement s’ils existent. Il ne les ouvre jamais.
  • Variables d’environnement dont le nom ou la valeur ressemble à un secret : noms seulement.
  • Serveurs MCP et configuration des agents de ce dossier et de votre utilisateur, avec les mêmes règles que zn audit.

Exemple

Sur une machine où les trois agents sont protégés, le rapport est court :

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.

Quand quelque chose demande une action, chaque constat a un niveau de gravité, une courte explication et la commande qui le corrige. Voici la sortie réelle d’une exécution sur un projet fictif (secrets et fichier d’identifiants AWS fictifs) :

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.

Le niveau dépend de l’installation. Un .env ou un fichier d’identifiants est high ou medium quand un agent présent sur la machine n’est pas encore protégé par zn. Il est low quand aucun agent n’est encore installé, et information seulement quand zn protège tous les agents qu’il trouve. Les variables d’environnement sont toujours low.

Options

Option Ce qu’elle fait
[path] Le dossier à vérifier. Par défaut, le dossier courant
--json Le même rapport au format JSON
--sarif Le rapport au format SARIF 2.1.0, pour le code scanning. Les constats sur des fichiers du dossier vérifié sont des résultats (un .env avec des secrets qu’un agent peut lire est ZNR002). Les agents, les fichiers d’identifiants et les variables d’environnement sont des notifications de l’exécution
--fail-on high|medium|low|none Sort avec le code 1 si un constat de ce niveau ou plus est trouvé. Par défaut, none : reach reste un rapport qui sort avec 0. Une erreur d’utilisation ou un échec sort avec 2
--remember Garde les compteurs de cette exécution (high, medium, low et la date) dans ~/.zn/reach-last.json, pour que la prochaine exécution avec --remember affiche leurs valeurs précédentes. Sans cette option, reach n’écrit rien

Ce qu’il ne fait jamais

  • Il n’affiche jamais une valeur secrète et n’ouvre jamais un fichier d’identifiants.
  • Il n’envoie rien sur le réseau et ne démarre aucun hook.
  • Il n’écrit rien, sauf si vous passez --remember.

Si la vérification manque de temps sur un grand dossier, le rapport l’indique. npx -y zn-gate audit --include-home vérifie tout.

Sa place dans la mise en route

  1. zn-gate reach montre ce que vos agents peuvent atteindre aujourd’hui.
  2. npx -y zn-gate init protège chaque agent. Démarrage rapide
  3. npx -y zn-gate check vérifie que zn empêche votre agent de lire un .env de test. Check
  4. npx -y zn-gate env shadow .env déplace les secrets en clair d’un fichier .env dans le coffre local.

Pour corriger un constat, lancez la commande affichée. Pour les agents non protégés, c’est npx -y zn-gate init. Pour les variables d’environnement, lancez npx -y zn-gate secret set NAME dans votre propre terminal, puis écrivez __ZN_NAME__ à l’endroit où la valeur doit aller.