Conectar (comprobación en la nube opcional)

zn-gate connect activa la comprobación opcional en la nube con Galvanize 2 mediante una clave de API solo de análisis guardada en el llavero de tu sistema. zn-gate disconnect la elimina y puede revocarla en usezn.com.

Ver .md
npx -y zn-gate connect

(o zn-gate connect si lo instalaste con npm i -g zn-gate).

zn-gate funciona por completo en tu ordenador, no necesita cuenta y por defecto no envía nada. Este comando es opcional. Añade una sola cosa: cuando tú o tu agente usáis la herramienta analyze_prompt (o zn-gate analyze), el texto, con los secretos detectados ya ocultos, también lo comprueba el clasificador Galvanize 2 de usezn.com. Los hooks, la protección de archivos y secretos, el shield y todos los demás comandos siguen siendo locales y nunca lo usan.

Qué hace zn-gate connect

  1. Solo se ejecuta en un terminal en el que estás escribiendo tú. Si lo lanzó un agente de IA, se niega.
  2. Te explica qué va a cambiar y te pide confirmación.
  3. Abre usezn.com/connect en tu navegador. Crea una cuenta gratuita (o inicia sesión) y crea allí una clave de API solo de análisis. La página de conexión lo hace por ti.
  4. De vuelta en el terminal, pega la clave en el campo oculto. Lo que escribes no se muestra, y la clave nunca se toma de la línea de comandos ni de una variable de entorno.
  5. Comprueba la clave una vez con https://api.usezn.com. Solo se envía la clave, como cabecera de la petición, a esa única dirección y mediante una conexión TLS verificada.
  6. Guarda la clave y muestra sus cuatro últimos caracteres para que puedas reconocerla.

Qué claves acepta

connect solo acepta una clave limitada a analizar texto. Una clave así no puede leer tu uso, ni listar, crear o revocar otras claves, ni usar el panel, de modo que una copia filtrada sirve de poco. Una clave de acceso completo se rechaza, con un aviso que remite a la página de conexión. También se rechaza una clave que el servidor no acepta o que no se pudo comprobar (sin respuesta, un error). En todos estos casos no se guarda nada.

Dónde se guarda la clave

Solo en uno de estos sitios, nunca en un archivo:

  • El llavero de tu sistema: el Llavero de macOS, el Administrador de credenciales de Windows o el Secret Service de Linux (GNOME Keyring, KWallet).
  • La bóveda de zn, cuando tu sistema no tiene llavero y la bóveda está desbloqueada (zn unlock). La bóveda la cifra.

Si no hay ninguno disponible (por ejemplo, Linux sin sesión de escritorio), no se guarda nada y zn-gate connect lo dice. Aun así puedes definir ZN_CLOUD=1 y ZN_API_KEY en tu shell tú mismo.

~/.zn/config.json solo anota que te conectaste, dónde se guarda la clave y sus cuatro últimos caracteres. Nunca contiene la clave. La comprobación en la nube se activa desde ese registro solo cuando la clave guardada termina en esos cuatro caracteres, así que un registro escrito a mano no hace nada. Una clave guardada solo se envía a https://api.usezn.com: --url y ZN_API_URL se ignoran para ella. Si el registro existe pero la clave guardada no se puede leer, los prompts se comprueban en local y zn-gate lo dice una vez.

Los hooks de zn rechazan las vías directas para que tu agente lea la clave guardada, como los comandos que piden al llavero del sistema las entradas de zn o el código que la carga mediante los módulos de zn. Los propios comandos connect y disconnect se rechazan cuando los ejecuta un agente, y zn oculta el formato de la clave (zn_ seguido de 48 caracteres) en lo que ve el agente.

Es una barrera, no un muro de bóveda: un programa que se ejecuta como tú todavía puede pedir la clave al llavero, igual que cualquier entrada del llavero. Por eso connect solo acepta una clave limitada a analizar texto, y por eso puedes revocarla en cualquier momento.

Ver y cambiar el estado

  • zn-gate status muestra si hay una clave conectada y de dónde viene (ZN_API_KEY, --key, el llavero o la bóveda), nunca la clave. También muestra el motor de detección y si la comprobación opcional en la nube está activada.
  • zn-gate connect --reconnect sustituye la clave guardada.
  • zn-gate disconnect elimina la clave de este ordenador y desactiva la comprobación en la nube.
  • Una clave en --key o ZN_API_KEY se usa en lugar de la guardada solo si además defines ZN_CLOUD=1; sin ella se usa la clave guardada y se ignoran ZN_API_KEY y ZN_API_URL. ZN_LOCAL_ONLY=true o --local-only desactiva la comprobación en la nube aunque estés conectado.

Desconectar y revocar la clave

Si hay una clave guardada, zn-gate disconnect pregunta si quieres revocarla también en usezn.com, para que deje de funcionar en todas partes. La respuesta por defecto es no, y solo un sí explícito envía algo: una petición con la clave a https://api.usezn.com, por la misma conexión verificada que usa connect.

  • La copia local se elimina en todos los casos, aunque la petición falle. Si falla, el comando lo dice y te remite a usezn.com/api-keys, donde puedes revocar la clave tú mismo.
  • zn-gate disconnect --revoke se salta la pregunta, y --no-revoke nunca revoca y no hace ninguna llamada de red.
  • Si la clave guardada no se puede leer, no se elimina nada. Entonces --no-revoke elimina solo la copia local.
  • Igual que connect, el comando solo se ejecuta en tu propio terminal. Sin terminal, o desde un agente de IA, se niega y no cambia nada, así que no se revoca nada.

Si algo falla

  • Se niega a ejecutarse: solo se ejecuta en un terminal en el que escribes tú. Abre tu propio terminal y ejecútalo ahí, no a través de un agente de IA ni de un script.
  • La clave se rechaza: usa la página de conexión para crear una clave solo de análisis y vuelve a ejecutar zn-gate connect.
  • No se pudo comprobar la clave (sin respuesta, un error): revisa tu conexión y vuelve a intentarlo.
  • Dice que no se guardó nada porque no hay llavero: desbloquea la bóveda con zn unlock y vuelve a ejecutar zn-gate connect, o define tú mismo ZN_CLOUD=1 y ZN_API_KEY en tu shell.
  • Quieres parar: ejecuta zn-gate disconnect.

Qué se envía

Solo el texto de las llamadas a analyze_prompt y zn-gate analyze, después de que zn-gate quite los secretos que detecta (en esta vía no se quitan los datos personales), y la clave como cabecera de la petición. La salida de las herramientas, los argumentos de las llamadas a herramientas y las descripciones de herramientas nunca se envían. Consulta Qué sale de tu máquina.