Todos los comandos de la CLI de ZeusLock: opciones, valores, predeterminados, credenciales y códigos de salida — scan, incidentes, agentes, usuarios, claves, Shadow AI, MCP, SIEM, deploy y rules.
Referencia completa de todos los comandos de @zeuslock/cli (v0.1.x). Para la instalación y el primer inicio de sesión, empiece por la guía de inicio rápido de la CLI. Todos los comandos que devuelven datos aceptan --json para scripts, y --help funciona en cada comando y subcomando.
Índice de comandos
| Comando | Función |
|---|
auth login | Inicio de sesión con correo/contraseña (MFA compatible), tokens guardados |
whoami | Muestra el usuario autenticado |
auth api-key set/status/clear | Guarda, comprueba o elimina la clave API de organización |
status | Contexto de la CLI, salud del backend, comprobación de licencia opcional |
scan | Analiza un archivo, directorio o stdin con la política DLP |
anonymize | Anonimiza un archivo de texto UTF-8 |
hook install / run | Hook pre-commit de Git que analiza los archivos preparados |
incidents list / stats / export | Incidentes, estadísticas y exportación CSV/JSON |
agents list / revoke | Visibilidad y revocación de la flota de agentes |
extensions status | Extensiones de navegador activas |
users list / remove | Gobernanza de usuarios de la organización |
keys list / create / revoke | Gestión de claves API de organización |
shadow-ai stats / tools / users | Datos de descubrimiento de Shadow AI |
mcp stats / events / servers | Datos de monitorización MCP |
siem pull / tail | Recuperación de eventos SIEM OCSF (una página o sondeo continuo) |
deploy gpo-config / agent-verify | Artefactos de despliegue y verificación de inscripción |
rules get / diff | Exportación y diff de políticas DLP como código (solo lectura) |
Credenciales y configuración
La CLI usa deliberadamente dos credenciales distintas. Las credenciales de usuario (sesión de inicio o token de acceso CLI personal de la página CLI del panel) manejan los comandos de datos del panel. La clave API de organización (zl_…, página Claves API) maneja los comandos de contenido y SIEM, que actúan para la organización.
| Credencial | Usado por |
|---|
| Sesión de usuario / token de acceso CLI | whoami, incidents, agents, extensions, users, keys, shadow-ai, mcp, rules, deploy |
Clave API de organización (zl_…) | scan, anonymize, hook run, siem pull/tail, status (license) |
Variables de entorno
| Variable | Descripción |
|---|
ZEUSLOCK_API_URL | URL del backend; por defecto https://api.zeuslock.ai |
ZEUSLOCK_API_TOKEN | Token Bearer para comandos autenticados de usuario (p. ej. token de acceso CLI) |
ZEUSLOCK_API_KEY | Clave API de organización para comandos de máquina |
ZEUSLOCK_EMAIL / ZEUSLOCK_PASSWORD / ZEUSLOCK_MFA_CODE | Entradas no interactivas para auth login (CI, automatización) |
ZEUSLOCK_CONFIG_DIR | Sustituye el directorio de configuración del usuario |
El directorio de configuración (macOS ~/Library/Application Support/zeuslock/, Windows %APPDATA%\ZeusLock\, Linux ~/.config/zeuslock/) contiene auth.json (tokens de sesión, 0600), api-key.json (clave de organización) y siem-cursors.json (cursores de tail). Las contraseñas nunca se guardan y la CLI nunca imprime secretos almacenados.
zeuslock auth
zeuslock auth login --email admin@example.com
zeuslock whoami
zeuslock auth api-key set zl_your_org_api_key
zeuslock auth api-key status
auth login
| Opción | Valores | Predeterminado | Descripción |
|---|
--email / -u, --username | Correo de la cuenta | ZEUSLOCK_EMAIL | Se solicita si falta |
--password | — | ZEUSLOCK_PASSWORD | Se solicita interactivamente si se omite; nunca se guarda |
--mfa-code | — | ZEUSLOCK_MFA_CODE | Se usa cuando el backend exige MFA; si no, se solicita |
--recaptcha-token | — | ninguno | Para backends que exigen reCAPTCHA al iniciar sesión |
--api-url | URL | ZEUSLOCK_API_URL | Backend contra el que autenticarse |
--json | Booleano | desactivado | Salida JSON legible por máquina |
auth api-key set / status / clear
set valida la clave con GET /api/rules/sync antes de guardarla; status muestra el estado con la clave enmascarada; clear la elimina. La clave completa nunca se vuelve a imprimir.
Precedencia de la clave para comandos de máquina: opción --api-key → ZEUSLOCK_API_KEY → clave guardada.
zeuslock status
zeuslock status
zeuslock status --api-key zl_your_key_here --require-license
zeuslock status --json
| Opción | Valores | Predeterminado | Descripción |
|---|
--api-key | Clave API de organización | Si falta: ZEUSLOCK_API_KEY, luego la clave guardada | Activa la validación de licencia vía /api/v1/validate-license |
--require-license | Booleano | desactivado | Sale con código distinto de cero salvo que salud, disponibilidad y licencia pasen |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock scan
zeuslock scan ./secrets.txt
zeuslock scan ./src --fail-on alert
cat prompt.txt | zeuslock scan --stdin --json
Envía el contenido a POST /api/v1/dlp/analyze bajo la política DLP activa de la organización. Los directorios se recorren recursivamente (.git omitido) y se suben en lotes de 5 archivos. Un escaneo con resultado alert/block crea un incidente real — no hay simulación.
| Opción | Valores | Predeterminado | Descripción |
|---|
[path] / --stdin | Archivo, directorio o stdin | obligatorio | Mutuamente excluyentes; stdin se envía como texto |
--api-key | Clave API de organización | Si falta: ZEUSLOCK_API_KEY, luego la clave guardada | Se envía como X-API-Key |
--fail-on | alert, block, never | block | Umbral del código de salida: alert falla con alert+block; never nunca |
--source / --platform / --hostname / --path / --user-email | Texto libre | cli, cli, hostname local, /cli/<nombre>, ninguno | Metadatos adjuntos al incidente |
--include-sensitive | Booleano | desactivado | Incluye los mapas de anonimización en la salida JSON |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock anonymize
zeuslock anonymize customer-data.txt --output customer-data.safe.txt
Envía texto UTF-8 a POST /api/v1/anonymize y devuelve el texto enmascarado. Solo texto — PDF/imágenes/Office no son compatibles con este endpoint.
| Opción | Valores | Predeterminado | Descripción |
|---|
<file> | Archivo de texto UTF-8 | obligatorio | Se envía como {"text": …} |
--api-key | Clave API de organización | Si falta: ZEUSLOCK_API_KEY, luego la clave guardada | Se envía como X-API-Key |
--output | Ruta escribible | stdout | Escribe el texto anonimizado en un archivo |
--include-sensitive-map | Booleano | desactivado | Incluye las sustituciones original→enmascarado en la salida JSON |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock hook install / run
zeuslock hook install --fail-on alert
zeuslock hook run --json
install escribe .git/hooks/pre-commit (0755, --force para reemplazar un hook existente); run analiza los blobs preparados tal como se confirmarán (solo archivos añadidos/copiados/modificados/renombrados) vía el mismo endpoint DLP y bloquea el commit según el umbral. Los incidentes del hook llevan source=git_pre_commit, platform=git, method=PRE_COMMIT. install --fail-on never se rechaza.
| Opción | Valores | Predeterminado | Descripción |
|---|
--repo | Ruta del repositorio Git | directorio actual | Resuelto vía git rev-parse |
install --fail-on | alert, block | alert | Escrito en el hook generado |
run --fail-on | alert, block, never | alert | Umbral de bloqueo para una ejecución manual |
install --force | Booleano | desactivado | Reemplaza un hook pre-commit existente |
run --api-key / run --user-email | — | Si falta: ZEUSLOCK_API_KEY, luego la clave guardada | Autenticación y atribución del incidente |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock incidents list / stats / export
zeuslock incidents list --days 7 --severity critical
zeuslock incidents stats --days 30
zeuslock incidents export --days 30 --format csv --output incidents.csv
| Opción | Valores | Predeterminado | Descripción |
|---|
list/export --days | 7, 30, 90 | 30 | 90 y la exportación requieren Business/Enterprise |
stats --days | 1, 7, 30, 365 | 30 | Requiere el plan Business o Enterprise |
--severity | critical, warning | ninguno | warning incluye high, medium y low |
--search | Texto libre | ninguno | Busca correo, URL y tipo de hallazgo |
--jailbreak | Booleano | desactivado | Solo incidentes con hallazgo jailbreak_attempt |
export --format / --output | csv, json | csv / incidents-<timestamp> | No se admiten valores de días arbitrarios ni --from/--to (paridad con el panel) |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock agents / extensions
zeuslock agents list --status offline --search linux
zeuslock agents revoke AGENT-123 --yes
zeuslock extensions status --json
| Opción | Valores | Predeterminado | Descripción |
|---|
agents list --status | all, online, offline | all | Refleja el selector de estado del panel |
agents list --search | Texto libre | ninguno | Busca hostname y plataforma; update_available si hay un agente más nuevo |
agents revoke <agent_id> | Id exacto de agents list | obligatorio | Omite la confirmación (necesario en scripts) |
extensions status | — | — | Extensiones activas con recuentos (ventana de actividad de 30 minutos) |
--json / --yes | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock users / keys
zeuslock users list --role admin
zeuslock users remove departing@example.com --yes
zeuslock keys list --status active
zeuslock keys create --name rotation-2026-08
zeuslock keys revoke <key_id> --yes
| Opción | Valores | Predeterminado | Descripción |
|---|
users list --search / --role | Texto libre | ninguno | Roles de GET /api/users/roles (según el plan) |
users remove <user> | Id de usuario, user_id o correo | obligatorio | Rechaza la autoeliminación y eliminar al último admin activo |
keys list --status | all, active, revoked | all | Claves completas ocultas salvo --show-secret |
keys create --name | Texto libre | obligatorio | Imprime la clave completa devuelta una vez |
keys revoke <key_id> | Id de clave de keys list | obligatorio | Rechaza claves ya revocadas (un segundo DELETE eliminaría permanentemente) |
--yes / --json | Booleano | desactivado | Omite la confirmación (necesario en scripts) |
zeuslock shadow-ai / mcp
zeuslock shadow-ai stats --days 30
zeuslock shadow-ai tools --source endpoint --status shadow
zeuslock shadow-ai users --days 7
zeuslock mcp stats
zeuslock mcp events --transport stdio --decision block --method tools/call
zeuslock mcp servers
Ambos grupos siguen los feature gates del panel vía GET /api/org: Shadow AI exige settings.shadow_ai_enabled; MCP está activo salvo que settings.mcp_enabled sea explícitamente false. Los eventos MCP son solo metadatos saneados — nunca los prompts sin procesar.
| Opción | Valores | Predeterminado | Descripción |
|---|
--days | 7, 30, 90 | 30 | Ventanas del panel (mcp servers fijo en 90) |
shadow-ai --source | all, endpoint, browser, both | all | Dónde se detectó la herramienta |
shadow-ai --status / --category | sanctioned/shadow; chatbot, coding_assistant, image_gen, agent, other | all | Valores de filtro del panel |
mcp events --transport / --direction / --decision | http/sse/stdio; client_to_server/server_to_client; allow/alert/block | all | Filtros del lado del servidor; página de 50 (paridad con el panel) |
mcp events --method / --search / --cursor | p. ej. tools/call; texto libre; cursor opaco | ninguno | --cursor continúa desde el next_cursor de una página --json anterior |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock siem pull / tail
zeuslock siem pull --api-key zl_your_key_here --severity high --limit 100
zeuslock siem tail --category dlp --interval 10 --cursor-name splunk-prod
Recupera eventos OCSF vía GET /api/v1/siem/events (clave API de organización). pull lee una página; tail sondea continuamente y persiste su cursor en siem-cursors.json, indexado por URL de API, nombre de cursor, categoría y severidad — consumidores distintos pueden seguir de forma independiente. Salida JSONL por defecto, ideal para ingestión SIEM.
| Opción | Valores | Predeterminado | Descripción |
|---|
--api-key | Clave API de organización | Si falta: ZEUSLOCK_API_KEY, luego la clave guardada | Se envía como X-API-Key |
--since | next_cursor del backend | cursor guardado (tail) | Un cursor, no una fecha |
pull --from / --to / --days | Fecha ISO, epoch o número de días | ninguno | --days se convierte en start_time; excluyente con --from |
--category / --severity | cadena de categoría; unknown–critical | ninguno | La severidad es un mínimo; los eventos DLP usan la categoría dlp |
--limit | 1–500 | 100 | Tamaño de página por solicitud |
pull --format | jsonl, json | jsonl | JSON envuelve la página |
tail --interval / --cursor-name / --reset-cursor | segundos; nombre estable; booleano | 5 / default / off | --reset-cursor ignora el cursor guardado en esta ejecución |
zeuslock deploy gpo-config / agent-verify
zeuslock deploy gpo-config --api-key zl_your_key_here --output zeuslock-deploy
zeuslock deploy gpo-config --artifact agent --create-key-name fleet-deploy
zeuslock deploy agent-verify --hostname CLIENT01 --status online
gpo-config genera archivos de despliegue locales: políticas de instalación forzada Chrome/Edge y JSON ExtensionSettings, el .reg de política del agente Windows (ServerUrl/LicenseKey bajo HKLM\SOFTWARE\Policies\ZeusLock), un agent-config.json y un deployment-summary.json sin secretos. Los artefactos de extensión requieren el plan Business/Enterprise. Precedencia de la clave: --api-key → --create-key-name → --key-id → la única clave activa descifrable. agent-verify comprueba inscripción/heartbeat vía GET /api/agents y sale con error si no se verifica — útil tras un despliegue GPO.
| Opción | Valores | Predeterminado | Descripción |
|---|
gpo-config --artifact | all, extension, agent | all | Grupos de artefactos a generar |
gpo-config --browser | all, chrome, edge | all | Solo artefactos de extensión |
gpo-config --output | Directorio | zeuslock-deploy | Los archivos homónimos se sobrescriben |
gpo-config --api-key / --key-id / --create-key-name | — | ninguno | Clave a incrustar en los archivos generados (nunca en el resumen) |
agent-verify --agent-id / --hostname / --platform | id exacto; hostname sin distinción de mayúsculas; windows/macos/linux | ninguno | Filtros de identidad sobre la flota |
agent-verify --status | online, offline, any | online | Estado esperado; resultados: verified, offline, online, not_found |
--json | Booleano | desactivado | Salida JSON legible por máquina |
zeuslock rules get / diff
zeuslock rules get --output zeuslock.rules.yaml
zeuslock rules get --scope policy --policy-id default --format json
zeuslock rules diff zeuslock.rules.yaml
Políticas como código de solo lectura: get exporta el estado real como YAML/JSON determinista (schema_version: zeuslock.rules.v1, campos volátiles eliminados para diffs limpios); diff compara un archivo local con el estado real y sale con código 1 si hay diferencias — ideal para control de deriva en CI. No hay import/apply: las políticas se cambian en el panel.
| Opción | Valores | Predeterminado | Descripción |
|---|
--scope | policies, default, policy | policies | policies = sistema de políticas + grupos; default = ruleset de la política por defecto; policy = una política |
--policy-id | Id de política del backend | obligatorio para el scope policy | |
get --format / --output | yaml, json | yaml / stdout | |
diff [file] | Exportación YAML o JSON | zeuslock.rules.yaml|yml|json | diff --format json para automatización |
Códigos de salida
| Comando | Distinto de cero cuando |
|---|
scan / hook run | La decisión del backend alcanza el umbral --fail-on |
rules diff | Se encuentran diferencias |
deploy agent-verify | La verificación no es verified |
status --require-license | Falla salud, disponibilidad o licencia |
| Todos los comandos | Errores de autenticación o de solicitud |