Referencia de comandos de la CLI de ZeusLock

Todos los comandos de la CLI de ZeusLock en una página: qué hace cada uno, qué cambia, opciones y valores por defecto, ejemplos y códigos de salida.

Todos los comandos de la CLI de ZeusLock, con lo que hacen, lo que cambian y lo que devuelven. La CLI cubre el mismo alcance que el panel — incidentes, agentes, políticas, usuarios, claves, Shadow AI, MCP y SIEM — más dos cosas que el panel no puede hacer: analizar contenido desde un terminal y bloquear un commit de Git antes de que los secretos salgan de un portátil.

Instalación

Requiere Node.js 22.12 o superior. El paquete se publica como zeuslock-dlp-cli e instala un único ejecutable llamado zeuslock.

npm install -g zeuslock-dlp-cli@latest
zeuslock --version
zeuslock --help

Para ejecutarla una vez sin instalar: npm exec --package zeuslock-dlp-cli@latest -- zeuslock status.

Dos credenciales, a propósito

La CLI usa dos credenciales distintas, y elegir la equivocada es el motivo más común de que un comando falle.

CredencialPrefijoActúa comoLo usan
Token de acceso CLI personalzlu_Usted, con su rolComandos de datos: incidentes, agentes, usuarios, claves, tokens, políticas, Shadow AI, MCP, extensiones, deploy
Clave API de organizaciónzl_La organizaciónComandos de contenido y máquina: scan, anonymize, hook run, siem pull/tail, verificación de licencia en status

Un token personal nunca se acepta en comandos de contenido, y una clave de organización nunca se acepta en comandos de datos. La separación es deliberada: los comandos de contenido se ejecutan desatendidos en CI, donde una credencial ligada a una persona dejaría de funcionar en cuanto esa persona se marche.

Obtener un token de acceso CLI personal

La CLI no inicia sesión con correo y contraseña. El backend exige un reto reCAPTCHA al iniciar sesión, que un terminal no puede resolver. Genere un token desde la página CLI del panel, o desde una máquina ya autenticada con zeuslock tokens create.

zeuslock auth login --token zlu_your_cli_access_token
zeuslock whoami

Guardar la clave API de organización

zeuslock auth api-key set zl_your_org_api_key
zeuslock auth api-key status

Opciones globales

OpciónValoresPredeterminadoQué hace
--token <zlu_…>zlu_…ningunoUsa este token en una sola invocación. Debe ir antes del subcomando: zeuslock --token zlu_… whoami.
-V, --version——Muestra la versión instalada.
-h, --help——Funciona en todos los comandos y subcomandos.

Variables de entorno

VariableQué hace
ZEUSLOCK_API_URLURL del backend. Por defecto https://api.zeuslock.ai. Use https://api-staging.zeuslock.ai para staging.
ZEUSLOCK_API_TOKENToken de acceso CLI personal para comandos de usuario. Ideal para CI.
ZEUSLOCK_API_KEYClave API de organización para comandos de contenido y máquina.
ZEUSLOCK_CONFIG_DIRSustituye dónde guarda sus archivos la CLI.

Precedencia de credenciales

Si hay más de una, la CLI usa la primera aplicable.

#Comandos de usuarioComandos de contenido
1--token zlu_…--api-key zl_…
2ZEUSLOCK_API_TOKENZEUSLOCK_API_KEY
3Token guardado con auth login --tokenClave guardada con auth api-key set

Códigos de salida

Cada comando devuelve 0 si tiene éxito y 1 si falla, por lo que cualquier comando puede condicionar un paso de CI. Cuatro comandos devuelven un código distinto de cero significativo, que refleja un hallazgo y no un error: son los que conviene integrar en un pipeline.

ComandoDistinto de cero significa
scanEl contenido sensible alcanzó el umbral --fail-on.
hook runEl commit debe bloquearse.
rules diffEl archivo de política local difiere del estado en vivo.
deploy agent-verifyNingún agente coincide, o no está en el estado esperado.
status --require-licenseFallo de salud, disponibilidad o validación de licencia.

Salida

Los comandos imprimen tablas alineadas por defecto. Añada --json para salida legible por máquina — todos los comandos que devuelven datos lo admiten, y el formato es estable. siem pull usa JSONL por defecto (un evento por línea), que es lo que ingieren los colectores SIEM. La CLI nunca imprime un token o clave guardados salvo que use --show-secret.

Dónde guarda sus archivos la CLI

ArchivoContenido
auth.jsonSu token de acceso CLI, modo 0600.
api-key.jsonLa clave API de organización guardada, modo 0600.
siem-cursors.jsonPosiciones de reanudación de siem tail, una por nombre de cursor.

Ubicación: macOS ~/Library/Application Support/zeuslock/, Windows %APPDATA%\ZeusLock\, Linux ~/.config/zeuslock/. El directorio se crea con modo 0700 cuando el sistema de archivos lo admite.

zeuslock auth — Iniciar sesión y guardar credenciales

Guarda su token personal y la clave API de organización en esta máquina, y muestra quién es usted.

zeuslock auth login --token

Valida un token de acceso CLI personal y lo guarda para comandos futuros.

Credencial: Ninguno · Impacto: Escribe archivos locales

El token se verifica contra el backend antes de escribirlo, así un error tipográfico falla de inmediato. Se guarda en auth.json con modo 0600. No hay inicio de sesión con correo y contraseña — vea arriba.

OpciónValoresPredeterminadoQué hace
--token <zlu_…>zlu_[object Object]ningunoEl token de la página CLI del panel. El formato se valida localmente primero.
--api-url <url>URLZEUSLOCK_API_URLBackend contra el que validar, guardado junto al token.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth login --token zlu_your_cli_access_token
zeuslock auth login --token zlu_… --api-url https://api-staging.zeuslock.ai

Un token revocado o caducado devuelve 401. Los tokens no se renuevan: genere uno nuevo y vuelva a ejecutar.

zeuslock auth logout

Elimina el token personal guardado en esta máquina.

Credencial: Ninguno · Impacto: Escribe archivos locales

Borra solo auth.json. Su clave API de organización se mantiene, así que scan, anonymize y los comandos SIEM siguen funcionando. No revoca el token en el servidor — use tokens revoke.

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth logout

zeuslock auth api-key set [key]

Valida una clave API de organización y la guarda para comandos de contenido y SIEM.

Credencial: Clave API de organización · Impacto: Escribe archivos locales

La clave se verifica contra el backend antes de guardarla, así una clave inválida se rechaza de entrada. Se escribe en api-key.json con modo 0600; el valor completo nunca se vuelve a imprimir.

ArgumentoObligatorioDescripción
keyNoLa clave zl_…. Si se omite, la CLI lee ZEUSLOCK_API_KEY o la solicita.
OpciónValoresPredeterminadoQué hace
--api-url <url>URLZEUSLOCK_API_URLBackend al que pertenece la clave; se guarda con ella.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth api-key set zl_your_org_api_key
zeuslock auth api-key set   # prompts, so the key stays out of shell history

zeuslock auth api-key status

Muestra si hay una clave API de organización configurada, y cuál.

Credencial: Ninguno · Impacto: Solo lectura

Imprime el origen, la URL del backend y una clave enmascarada. El valor completo nunca se muestra.

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth api-key status

zeuslock auth api-key clear

Elimina la clave API de organización guardada en esta máquina.

Credencial: Ninguno · Impacto: Escribe archivos locales

Borra api-key.json. La clave sigue siendo válida en el panel — solo se olvida localmente. Los comandos de contenido necesitarán entonces --api-key o ZEUSLOCK_API_KEY.

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth api-key clear

zeuslock auth whoami

Idéntico a zeuslock whoami, para quien lo espera bajo auth.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock auth whoami

zeuslock whoami / status — Quién soy y si algo va mal

zeuslock whoami

Muestra la cuenta con la que actúa la CLI.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Devuelve correo, id de usuario, rol, id de organización, estado y la URL del backend. Es el primer comando ante un error de permisos inexplicable: dice con qué cuenta y en qué entorno está realmente.

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock whoami
zeuslock whoami --json
zeuslock --token zlu_… whoami   # check a token without saving it

zeuslock status

Muestra la configuración local, la salud y disponibilidad del backend, y la validez de la licencia.

Credencial: Clave API de organización (para la verificación de licencia) · Impacto: Solo lectura

Un comando que responde "¿soy yo o es el servicio?". La salud y disponibilidad se comprueban sin credenciales; la licencia solo si hay una clave API de organización. Use --require-license en CI para que un backend degradado haga fallar el trabajo.

OpciónValoresPredeterminadoQué hace
--api-key <key>zl_…ZEUSLOCK_API_KEYClave usada en la verificación de licencia.
--require-licenseBooleanodesactivadoSale distinto de cero salvo que salud, disponibilidad y licencia sean correctas.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock status
zeuslock status --json
zeuslock status --require-license   # CI gate

zeuslock scan — Comprobar contenido antes de que llegue a una IA

zeuslock scan [path]

Analiza un archivo, un directorio o texto canalizado con la política DLP de su organización.

Credencial: Clave API de organización · Impacto: Solo lectura

Devuelve la misma decisión que el agente y la extensión — allow, alert o block — y registra un incidente cuando encuentra algo, de modo que la actividad del terminal aparece en el panel junto a la del navegador. Los directorios se recorren localmente, se omite .git y los archivos se envían en lotes de cinco. El código de salida sigue a --fail-on, lo que permite usarlo como barrera de CI.

ArgumentoObligatorioDescripción
pathNoArchivo o directorio a analizar. Obligatorio salvo con --stdin; ambos son excluyentes.
OpciónValoresPredeterminadoQué hace
--stdinBooleanodesactivadoLee texto de la entrada estándar en lugar de una ruta.
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClave API de organización para autenticar esta llamada.
--fail-on <decision>alert | block | neverblockQué decisión hace que el comando salga distinto de cero. alert es estricto (falla en alertas y bloqueos), never siempre sale 0 para ejecuciones informativas.
--source <source>Cualquier textocliEtiqueta de origen registrada en el incidente.
--platform <platform>Cualquier textocliEtiqueta de plataforma enviada con la solicitud. La columna de plataforma del incidente se deriva de la URL, por lo que este valor no se guarda en él.
--hostname <hostname>Cualquier textonombre de host localNombre de host registrado en el incidente.
--path <path>Cualquier texto/cli/<file>Etiqueta de destino registrada en el incidente; se normaliza para empezar por barra.
--user-email <email>Cualquier textoningunoAtribuye el incidente a una persona en vez de dejarlo anónimo. Conviene en CI.
--include-sensitiveBooleanodesactivadoIncluye el mapa de anonimización del backend en la salida JSON. Contiene los valores originales: trate esa salida como sensible.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock scan ./secrets.txt
zeuslock scan ./src --fail-on alert
cat prompt.txt | zeuslock scan --stdin --json
zeuslock scan ./build --fail-on never --user-email ci@example.com

Cada análisis que encuentra algo crea un incidente en el panel. Analizar un árbol grande repetidamente en CI llenará la cronología de incidentes: acote la ruta.

zeuslock anonymize — Eliminar valores sensibles de un texto

zeuslock anonymize <file>

Sustituye los valores sensibles de un archivo de texto UTF-8 por equivalentes realistas.

Credencial: Clave API de organización · Impacto: Solo lectura

A diferencia de scan, esta reescribe el contenido en vez de juzgarlo, y no registra ningún incidente. Los sustitutos son valores plausibles de la misma forma — un número de tarjeta se convierte en otro de aspecto válido — así el texto sigue sirviendo como prompt o dato de prueba. Úselo para compartir un documento real con un LLM externo sin filtrar los valores reales.

ArgumentoObligatorioDescripción
fileSíArchivo de texto UTF-8 a anonimizar.
OpciónValoresPredeterminadoQué hace
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClave API de organización para autenticar esta llamada.
--output <path>Ruta escribiblesalida estándarEscribe el texto anonimizado en un archivo en vez de imprimirlo.
--include-sensitive-mapBooleanodesactivadoIncluye los pares original/enmascarado en la salida JSON. Esto revela los valores reales: trátelo en consecuencia.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock anonymize customer-data.txt
zeuslock anonymize customer-data.txt --output customer-data.safe.txt
zeuslock anonymize customer-data.txt --json

zeuslock hook — Bloquear secretos en el commit, no en la revisión

Instala un hook pre-commit de Git que analiza el contenido preparado y rechaza el commit cuando la política DLP lo indica.

zeuslock hook install

Escribe el hook pre-commit de ZeusLock en un repositorio.

Credencial: Ninguno · Impacto: Escribe archivos locales

Crea .git/hooks/pre-commit con modo 0755, que llama a zeuslock hook run. Se niega a sobrescribir un hook existente salvo con --force, así que no destruirá en silencio el hook de otra herramienta. El hook es local al clon — no se comparte por Git, cada persona lo instala una vez.

OpciónValoresPredeterminadoQué hace
--repo <path>Rutarepositorio actualRepositorio destino.
--fail-on <decision>alert | blockalertUmbral escrito en el hook. Por defecto estricto: las alertas también detienen el commit.
--forceBooleanodesactivadoReemplaza un hook pre-commit existente.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock hook install
zeuslock hook install --fail-on block --force

zeuslock hook run

Analiza los cambios preparados y decide si el commit puede continuar.

Credencial: Clave API de organización · Impacto: Solo lectura

Lee los blobs preparados, no el árbol de trabajo, así que se analiza exactamente lo que se enviaría — editar un archivo después de prepararlo no permite colar contenido. Solo se analizan archivos añadidos, copiados, modificados y renombrados; se ignoran los no rastreados, no preparados y eliminados, igual que el historial. Sale distinto de cero para detener el commit.

OpciónValoresPredeterminadoQué hace
--repo <path>Rutarepositorio actualRepositorio a analizar.
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClave API de organización para autenticar esta llamada.
--fail-on <decision>alert | block | neveralertUmbral que detiene el commit.
--user-email <email>Cualquier textoningunoAtribuye el incidente a una persona.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock hook run
zeuslock hook run --fail-on block --json
git commit -m 'feature'   # the hook runs automatically

El hook necesita una clave API de organización al hacer commit. Guarde una con `auth api-key set` para que funcione desde una GUI de Git, donde no suele haber variables de entorno.

zeuslock incidents — Qué se detectó y con qué frecuencia

Los mismos datos que la página Incidentes del panel. Los filtros se aplican localmente tras obtener una ventana de días, por eso los valores de días son fijos.

zeuslock incidents list

Lista incidentes recientes con filtros equivalentes al panel.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Los prompts limpios se ocultan, igual que en el panel: una fila se conserva solo si tiene hallazgos, fue bloqueada o tiene una acción distinta de allowed. --days 90 requiere plan Business o Enterprise.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial. Otros valores se rechazan antes de la solicitud.
--severity <level>critical | warningningunoLa gravedad sigue el resultado de la política, no la puntuación del detector: critical significa solicitud bloqueada, warning todo lo demás. Coincide con lo que muestra el panel.
--search <text>Cualquier textoningunoFiltra por correo, URL o tipo de hallazgo.
--jailbreakBooleanodesactivadoConserva solo incidentes con un hallazgo de intento de jailbreak.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock incidents list --days 7
zeuslock incidents list --severity critical
zeuslock incidents list --jailbreak --json

zeuslock incidents stats

Muestra estadísticas agregadas de incidentes.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Desglose por gravedad, tipos de datos detectados, cronología diaria y uso por plataforma de IA — las cifras del resumen del panel, en una pantalla.

OpciónValoresPredeterminadoQué hace
--days <days>1 | 7 | 30 | 36530Ventana estadística. 365 requiere plan Business o Enterprise.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock incidents stats
zeuslock incidents stats --days 365 --json

zeuslock incidents export

Escribe los incidentes filtrados en un archivo CSV o JSON.

Credencial: Token de acceso CLI personal · Impacto: Escribe archivos locales

Genera el archivo de evidencia que pide un auditor. El CSV incluye severity (el resultado de política que muestra el panel) y risk_level (la puntuación bruta del detector) — difieren legítimamente, y conservar ambos evita perder información. La exportación requiere plan Business o Enterprise.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--severity <level>critical | warningningunoLa gravedad sigue el resultado de la política, no la puntuación del detector: critical significa solicitud bloqueada, warning todo lo demás. Coincide con lo que muestra el panel.
--search <text>Cualquier textoningunoFiltra por correo, URL o tipo de hallazgo.
--jailbreakBooleanodesactivadoConserva solo incidentes con un hallazgo de intento de jailbreak.
--format <format>csv | jsoncsvFormato de salida.
--output <path>Ruta escribibleincidents-<timestamp>.<ext>Archivo de destino.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock incidents export --days 7
zeuslock incidents export --days 30 --severity critical --format json --output incidents.json

zeuslock agents / extensions — ¿Está la flota realmente protegida?

zeuslock agents list

Lista los agentes de escritorio inscritos y su estado de latido.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Muestra host, plataforma, versión, estado en línea y último latido, más un marcador update_available si hay una versión más reciente. Un agente cuenta como en línea si se comunicó en los últimos cinco minutos. Así se detectan las máquinas que dejaron de reportar.

OpciónValoresPredeterminadoQué hace
--status <status>all | online | offlineallFiltro de latido.
--search <text>Cualquier textoningunoBusca solo en host y plataforma.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock agents list
zeuslock agents list --status offline
zeuslock agents list --search windows --json

zeuslock agents revoke <agent_id>

Revoca un agente de escritorio inscrito.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

El agente pierde su inscripción y deja de ser de confianza para el backend. Úselo cuando se pierda o retire un portátil. Pide confirmación salvo que use --yes.

ArgumentoObligatorioDescripción
agent_idSíId exacto de agents list.
OpciónValoresPredeterminadoQué hace
-y, --yesBooleanodesactivadoOmite la confirmación. Obligatorio en scripts y CI.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock agents revoke AGENT-123
zeuslock agents revoke AGENT-123 --yes --json

zeuslock extensions status

Muestra las extensiones de navegador activas.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Cuenta extensiones y usuarios vistos en los últimos 30 minutos. Un recuento bajo frente a una flota grande suele indicar que la política de instalación forzada no llegó a esos navegadores.

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock extensions status --json

zeuslock users / keys / tokens — Quién tiene acceso, y con qué

Tres cosas distintas: personas, claves API de organización y tokens CLI personales. Eliminar a una persona no revoca una clave que creó.

zeuslock users list

Lista las personas de su organización.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Muestra correo, rol, estado, indicador de actividad y fecha de creación. Los roles se validan contra los que expone su plan, así que un rol inválido se rechaza en vez de no coincidir con nada.

OpciónValoresPredeterminadoQué hace
--search <text>Cualquier textoningunoFiltro local por correo, rol, estado y nombre.
--role <role>admin, user, viewer…ningunoValidado contra los roles que expone su plan.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock users list
zeuslock users list --role admin
zeuslock users list --search alice --json

zeuslock users remove <user>

Elimina a una persona de la organización.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

Se aplican dos protecciones en el servidor, no anulables: no puede eliminarse a sí mismo ni al último administrador activo. Acepta un id o un correo, resuelto antes contra la lista de usuarios.

ArgumentoObligatorioDescripción
userSíId de usuario o correo.
OpciónValoresPredeterminadoQué hace
-y, --yesBooleanodesactivadoOmite la confirmación. Obligatorio en scripts y CI.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock users remove departing@example.com
zeuslock users remove user-uuid --yes --json

zeuslock keys list

Lista las claves API de organización.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Los valores se enmascaran por defecto. --show-secret solo imprime valores completos de claves que el backend aún puede descifrar; las antiguas pueden mostrarse siempre enmascaradas.

OpciónValoresPredeterminadoQué hace
--status <status>all | active | revokedallFiltro local de estado.
--show-secretBooleanodesactivadoRevela los valores completos disponibles.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock keys list
zeuslock keys list --status active
zeuslock keys list --show-secret --json

zeuslock keys create --name <name>

Crea una nueva clave API de organización.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

La clave completa se devuelve una sola vez, en esta respuesta. Cópiela de inmediato: la CLI no podrá volver a mostrarla si el backend deja de devolverla.

OpciónValoresPredeterminadoQué hace
--name <name>Cualquier textoningunoObligatorio. Nómbrela según dónde se usará, para poder revocarla con confianza después.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock keys create --name ci-pipeline
zeuslock keys create --name fleet-deploy --json

zeuslock keys revoke <key_id>

Revoca una clave API de organización activa.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

Todo lo que use la clave deja de funcionar de inmediato: agentes configurados con ella, trabajos de CI, hooks. La CLI se niega a actuar sobre una clave ya revocada, porque un segundo delete destruye el registro de forma permanente en vez de revocarlo.

ArgumentoObligatorioDescripción
key_idSíId de keys list.
OpciónValoresPredeterminadoQué hace
-y, --yesBooleanodesactivadoOmite la confirmación. Obligatorio en scripts y CI.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock keys revoke key-uuid --yes

zeuslock tokens list

Lista sus tokens de acceso CLI personales.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Muestra nombre, valor enmascarado, estado, caducidad y último uso. La columna de último uso es la forma más rápida de encontrar tokens que se pueden revocar sin riesgo.

OpciónValoresPredeterminadoQué hace
--status <status>all | active | revoked | expiredallFiltro local de estado.
--show-secretBooleanodesactivadoRevela los valores completos cuando el backend los devuelve.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock tokens list
zeuslock tokens list --status expired

zeuslock tokens create --name <name>

Crea un token de acceso CLI personal.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

El token zlu_… completo se devuelve una sola vez. Es la alternativa programable a la página CLI del panel — útil para emitir un token de corta duración a un trabajo de CI desde una máquina ya autenticada.

OpciónValoresPredeterminadoQué hace
--name <name>1-255 caracteresningunoObligatorio. Identifica el token en la lista.
--expires-in-days <days>1-365predeterminado del backend (90)Duraciones cortas son mejores para CI. Los valores fuera de rango se rechazan localmente.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock tokens create --name work-laptop
zeuslock tokens create --name ci-job --expires-in-days 30 --json

zeuslock tokens revoke <token_id>

Revoca un token de acceso CLI personal.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

El token devuelve 401 desde la siguiente solicitud. El registro se conserva y sigue visible como revocado — es el paso a usar cuando se pierde un portátil.

ArgumentoObligatorioDescripción
token_idSíId de tokens list.
OpciónValoresPredeterminadoQué hace
-y, --yesBooleanodesactivadoOmite la confirmación. Obligatorio en scripts y CI.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock tokens revoke token-uuid --yes

zeuslock tokens purge <token_id>

Elimina permanentemente un token CLI ya revocado.

Credencial: Token de acceso CLI personal · Impacto: Cambia el estado de la organización

Elimina el registro por completo, así que desaparece de la lista y de cualquier vista de auditoría. El token debe estar revocado antes — la CLI se niega a purgar uno activo, lo que hace imposible destruir por accidente una credencial en uso en un solo paso.

ArgumentoObligatorioDescripción
token_idSíId de un token revocado.
OpciónValoresPredeterminadoQué hace
-y, --yesBooleanodesactivadoOmite la confirmación. Obligatorio en scripts y CI.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock tokens revoke token-uuid --yes
zeuslock tokens purge token-uuid --yes

zeuslock rules — Política como código

Exporta el estado de las políticas a un archivo revisable y detecta desviaciones. Solo lectura — la CLI nunca reescribe políticas.

zeuslock rules get

Exporta el estado actual de las políticas DLP como YAML o JSON.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

La salida está normalizada: orden determinista y campos volátiles como created_at, updated_at y org_id eliminados, así que dos exportaciones de una política sin cambios son idénticas byte a byte. Eso hace que el archivo sea apto para versionar y comparar.

OpciónValoresPredeterminadoQué hace
--scope <scope>policies | default | policypoliciespolicies exporta todas las políticas visibles y los grupos de asignación; default solo la política por defecto; policy un único documento.
--policy-id <id>Cualquier textoningunoObligatorio con --scope policy.
--format <format>yaml | jsonyamlFormato de exportación.
--output <path>Ruta escribiblesalida estándarEscribe en un archivo en vez de imprimir.
zeuslock rules get --output zeuslock.rules.yaml
zeuslock rules get --scope default --format json
zeuslock rules get --scope policy --policy-id default

zeuslock rules diff [file]

Compara un archivo de política local con el estado en vivo.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Sale 0 si coinciden y 1 si difieren, mostrando un diff por ruta. Ejecútelo en CI contra una exportación versionada para detectar cambios de política hechos en el panel sin revisión.

ArgumentoObligatorioDescripción
fileNoYAML o JSON exportado. Por defecto zeuslock.rules.yaml, luego .yml, luego .json.
OpciónValoresPredeterminadoQué hace
--scope <scope>policies | default | policypoliciesDebe coincidir con el ámbito registrado en el archivo.
--policy-id <id>Cualquier textoningunoObligatorio con --scope policy.
--format <format>text | jsontextFormato de salida del diff.
zeuslock rules diff zeuslock.rules.yaml
zeuslock rules diff --scope default zeuslock.default.rules.yaml
zeuslock rules diff policy.json --scope policy --policy-id default --format json

zeuslock siem — Enviar eventos a su SIEM

Recupera eventos DLP en formato OCSF. Estos comandos solo leen — los destinos SIEM como Splunk, Sentinel y Elastic se configuran en el panel.

zeuslock siem pull

Recupera una página de eventos OCSF.

Credencial: Clave API de organización · Impacto: Solo lectura

Imprime JSONL por defecto — un evento por línea — que es lo que ingieren los colectores SIEM. La respuesta incluye un next_cursor; devuélvalo con --since para paginar. Úselo para recargas y consultas puntuales.

OpciónValoresPredeterminadoQué hace
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClave API de organización para esta llamada.
--since <cursor>Cadena de cursorningunoUn next_cursor de una respuesta anterior. No es una fecha.
--from <time>Fecha/hora ISO o epochningunoInicio de la ventana.
--to <time>Fecha/hora ISO o epochningunoFin de la ventana.
--days <n>Entero positivoningunoRetrocede tantos días. Excluyente con --from.
--category <value>dlpningunoCategoría del evento. Los eventos actuales usan dlp.
--severity <level>unknown | low | medium | high | criticalningunoSe trata como gravedad mínima, no coincidencia exacta.
--limit <n>1-500100Tamaño de página. Se valida antes de la solicitud.
--format <format>jsonl | jsonjsonljsonl se canaliza a colectores; json devuelve un sobre con next_cursor.
zeuslock siem pull --limit 100
zeuslock siem pull --days 7 --severity high --category dlp
zeuslock siem pull --format json | jq .next_cursor

zeuslock siem tail

Sondea continuamente y emite los eventos nuevos según llegan.

Credencial: Clave API de organización · Impacto: Lee continuamente hasta detenerse

Se ejecuta hasta que lo detenga, guardando su posición en siem-cursors.json tras cada sondeo, así un reinicio reanuda sin duplicar ni omitir eventos. No hay un endpoint de streaming detrás — hace sondeo. Dé a cada consumidor su propio --cursor-name para que dos pipelines no compitan por una posición.

OpciónValoresPredeterminadoQué hace
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClave API de organización para esta llamada.
--since <cursor>Cadena de cursorcursor guardadoSustituye la posición guardada en esta ejecución.
--category <value>dlpningunoTambién forma parte de la identidad del cursor.
--severity <level>unknown…criticalningunoGravedad mínima; también parte de la identidad del cursor.
--limit <n>1-500100Tamaño de página por sondeo.
--interval <seconds>Número positivo5Segundos entre sondeos.
--cursor-name <name>Cualquier textodefaultEspacio de nombres de la posición guardada de este consumidor.
--reset-cursorBooleanodesactivadoIgnora la posición guardada y reproduce desde el principio.
--max-polls <count>Entero positivoningunoSe detiene tras ese número de ciclos en vez de ejecutarse indefinidamente. Útil en un cron.
zeuslock siem tail --category dlp
zeuslock siem tail --cursor-name splunk-prod --interval 10
zeuslock siem tail --max-polls 12 --interval 5   # ~1 minute, then exit

zeuslock shadow-ai — Herramientas de IA que nadie aprobó

Vista de solo lectura de la página Shadow AI del panel. Disponible solo si Shadow AI está habilitado en su organización; si no, los comandos lo indican y no llaman a la API de datos.

zeuslock shadow-ai stats

Totales KPI del uso de herramientas de IA no aprobadas.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Totales y variación entre periodos, para saber si el uso en la sombra crece tras anunciar una política.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--source <source>all | endpoint | browser | bothallDónde se observó el uso.
--status <status>all | sanctioned | shadowallshadow significa que la herramienta no está aprobada.
--category <category>all | chatbot | coding_assistant | image_gen | agent | otherallCategoría de herramienta.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock shadow-ai stats
zeuslock shadow-ai stats --days 7 --status shadow --category chatbot

zeuslock shadow-ai tools

Lista las herramientas de IA detectadas en su entorno.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Herramienta, categoría, estado de política, origen, número de usuarios, de conexiones y puntuación de riesgo — la lista para decidir qué aprobar o bloquear.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--source <source>all | endpoint | browser | bothallDónde se observó el uso.
--status <status>all | sanctioned | shadowallshadow significa que la herramienta no está aprobada.
--category <category>all | chatbot | coding_assistant | image_gen | agent | otherallCategoría de herramienta.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock shadow-ai tools --status shadow
zeuslock shadow-ai tools --category coding_assistant --json

zeuslock shadow-ai users

Lista las personas que usan herramientas de IA en la sombra.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Usuario, número de herramientas distintas y la más usada. Sirve para encontrar equipos que necesitan una alternativa aprobada, no para señalar personas.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock shadow-ai users --days 7 --json

zeuslock mcp — Actividad de Model Context Protocol

A qué se conectaron los agentes de IA y qué se les permitió hacer. El backend solo guarda metadatos saneados y hashes no reversibles, así que aquí nunca se exponen prompts ni cargas de herramientas.

zeuslock mcp stats

Totales KPI de la actividad MCP.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Eventos, llamadas a herramientas, bloqueos y alertas, servidores activos y usuarios afectados, agrupados por transporte, dirección y método.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock mcp stats --days 7 --json

zeuslock mcp events

Lista eventos de auditoría MCP individuales.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Paginado a 50 filas. Siga next_cursor con --cursor para recorrer una ventana mayor.

OpciónValoresPredeterminadoQué hace
--days <days>7 | 30 | 9030Ventana de historial.
--transport <transport>all | http | sse | stdioallCómo se conectó el agente.
--direction <direction>all | client_to_server | server_to_clientallDirección del mensaje.
--decision <decision>all | allow | alert | blockallQué decidió la política.
--method <method>tools/call…ningunoNombre exacto del método MCP.
--search <text>Cualquier textoningunoBusca servidor, herramienta, usuario, método, host y ruta.
--cursor <cursor>Cadena de cursorningunoContinúa desde una página anterior.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock mcp events --decision block
zeuslock mcp events --transport stdio --method tools/call --json

zeuslock mcp servers

Lista los servidores MCP descubiertos en su entorno.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Un inventario sin duplicados sobre una ventana fija de 90 días — la respuesta a "¿a qué ha conectado alguien un agente?".

OpciónValoresPredeterminadoQué hace
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock mcp servers --json

zeuslock deploy — Desplegar en una flota y luego comprobarlo

zeuslock deploy generate (alias: gpo-config)

Genera los archivos de configuración gestionada que inscriben máquinas automáticamente.

Credencial: Token de acceso CLI personal · Impacto: Escribe archivos locales

Solo escribe archivos locales — no se envía nada a Active Directory, Intune ni Jamf. Distribúyalos con la herramienta que ya use y las máquinas llegarán apuntando a su organización, sin configuración por usuario. Los archivos con la clave API se escriben con modo 0600; la clave nunca se imprime ni se escribe en deployment-summary.json.

OpciónValoresPredeterminadoQué hace
--artifact <set>all | extension | agentallQué archivos generar. Los artefactos de extensión requieren plan Business o Enterprise.
--browser <browser>all | chrome | edgeallSolo se aplica a los artefactos de extensión.
--output <dir>Rutazeuslock-deployDirectorio de salida. Los archivos con el mismo nombre se sobrescriben.
--api-key <key>zl_…ningunoClave a incrustar. Máxima precedencia.
--key-id <id>Cualquier textoningunoUsa una clave existente de keys list.
--create-key-name <name>Cualquier textoningunoCrea una clave nueva y la incrusta. Cambia el estado de la organización.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock deploy generate --key-id key-uuid
zeuslock deploy generate --artifact agent --output ./rollout
zeuslock deploy generate --artifact extension --browser chrome --create-key-name fleet-2026

Si su organización tiene más de una clave activa, el comando no adivina — indique --key-id, --api-key o --create-key-name.

La configuración de la extensión se entrega en dos archivos separados a propósito: la política del navegador controla la instalación, mientras que la clave API viaja en el archivo de configuración gestionada. Despliegue ambos, o la extensión se instalará y luego pedirá a cada usuario que la configure.

zeuslock deploy agent-verify

Confirma que las máquinas se inscribieron y están comunicando.

Credencial: Token de acceso CLI personal · Impacto: Solo lectura

Sale distinto de cero salvo que exista un agente coincidente en el estado esperado, así puede condicionar un script de despliegue. Devuelve verified, offline, online o not_found — distinguir entre "nunca llegó" y "llegó y se calló" indica si falla el despliegue o la máquina.

OpciónValoresPredeterminadoQué hace
--agent-id <id>Cualquier textoningunoCoincidencia exacta de id.
--hostname <name>Cualquier textoningunoCoincidencia exacta de host, sin distinguir mayúsculas.
--platform <platform>windows | macos | linuxningunoFiltro de plataforma.
--status <status>online | offline | anyonlineEstado esperado. Use any para comprobar la inscripción sin exigir latido activo.
--jsonBooleanodesactivadoImprime JSON legible por máquina en lugar de una tabla.
zeuslock deploy agent-verify --hostname LAPTOP-01
zeuslock deploy agent-verify --platform windows --status any --json

Solución de problemas

Qué veQué significaQué hacer
Not logged in. Run `zeuslock auth login` first.No hay token personal guardado en esta máquina.Genere uno en la página CLI y ejecute zeuslock auth login --token zlu_….
invalid CLI tokenEl token está revocado, caducado o pertenece a otro entorno.Los tokens son específicos del entorno: un token de staging devuelve 401 en producción. Revise ZEUSLOCK_API_URL y emita un token nuevo.
API key is required.Un comando de contenido se ejecutó sin clave API de organización.Un token personal no sirve para scan, anonymize, hook run ni SIEM. Ejecute zeuslock auth api-key set.
Multiple active API keys are available.deploy generate no adivina qué clave incrustar.Indique --key-id, --api-key o --create-key-name.
Un comando pide 90 o 365 días y se niega.Las ventanas largas y la exportación dependen del plan.Se requiere Business o Enterprise. Las ventanas cortas siguen funcionando.
Un comando se queda colgado.siem tail sondea hasta detenerse; es lo esperado.Pulse Ctrl-C, o use --max-polls para una ejecución acotada.

Trabajar contra staging

Las credenciales son específicas de cada entorno y no se intercambian. Apunte la CLI a staging y autentíquese con un token de staging.

export ZEUSLOCK_API_URL="https://api-staging.zeuslock.ai"
zeuslock auth login --token zlu_your_staging_token
zeuslock status

Lo que la CLI deliberadamente no hace

La CLI refleja el panel y el backend en lugar de inventar funciones. Lo siguiente falta a propósito, para que no lo busque:

No disponibleMotivo
Inicio de sesión con correo y contraseñaEl endpoint de inicio de sesión exige un reCAPTCHA que un terminal no puede resolver.
Aplicar o editar políticasrules solo exporta y compara; los cambios de política se hacen en el panel, donde se revisan.
Configurar destinos SIEMLas conexiones de Splunk, Sentinel y Elastic se gestionan en el panel. La CLI solo lee eventos.
Rotar una clave o token en un pasoNo hay un endpoint de rotación atómica. Cree el reemplazo, mueva el tráfico y luego revoque el anterior.
Eliminación masiva de usuariosEl backend elimina un usuario a la vez, y las protecciones se aplican a cada uno.
Generación de instaladoresdeploy generate produce archivos de configuración. Descargue los instaladores desde el panel.