Referencia de comandos de la CLI

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

ComandoFunción
auth loginInicio de sesión con correo/contraseña (MFA compatible), tokens guardados
whoamiMuestra el usuario autenticado
auth api-key set/status/clearGuarda, comprueba o elimina la clave API de organización
statusContexto de la CLI, salud del backend, comprobación de licencia opcional
scanAnaliza un archivo, directorio o stdin con la política DLP
anonymizeAnonimiza un archivo de texto UTF-8
hook install / runHook pre-commit de Git que analiza los archivos preparados
incidents list / stats / exportIncidentes, estadísticas y exportación CSV/JSON
agents list / revokeVisibilidad y revocación de la flota de agentes
extensions statusExtensiones de navegador activas
users list / removeGobernanza de usuarios de la organización
keys list / create / revokeGestión de claves API de organización
shadow-ai stats / tools / usersDatos de descubrimiento de Shadow AI
mcp stats / events / serversDatos de monitorización MCP
siem pull / tailRecuperación de eventos SIEM OCSF (una página o sondeo continuo)
deploy gpo-config / agent-verifyArtefactos de despliegue y verificación de inscripción
rules get / diffExportació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.

CredencialUsado por
Sesión de usuario / token de acceso CLIwhoami, 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

VariableDescripción
ZEUSLOCK_API_URLURL del backend; por defecto https://api.zeuslock.ai
ZEUSLOCK_API_TOKENToken Bearer para comandos autenticados de usuario (p. ej. token de acceso CLI)
ZEUSLOCK_API_KEYClave API de organización para comandos de máquina
ZEUSLOCK_EMAIL / ZEUSLOCK_PASSWORD / ZEUSLOCK_MFA_CODEEntradas no interactivas para auth login (CI, automatización)
ZEUSLOCK_CONFIG_DIRSustituye 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ónValoresPredeterminadoDescripción
--email / -u, --usernameCorreo de la cuentaZEUSLOCK_EMAILSe solicita si falta
--passwordZEUSLOCK_PASSWORDSe solicita interactivamente si se omite; nunca se guarda
--mfa-codeZEUSLOCK_MFA_CODESe usa cuando el backend exige MFA; si no, se solicita
--recaptcha-tokenningunoPara backends que exigen reCAPTCHA al iniciar sesión
--api-urlURLZEUSLOCK_API_URLBackend contra el que autenticarse
--jsonBooleanodesactivadoSalida 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-keyZEUSLOCK_API_KEY → clave guardada.

zeuslock status

zeuslock status
zeuslock status --api-key zl_your_key_here --require-license
zeuslock status --json
OpciónValoresPredeterminadoDescripción
--api-keyClave API de organizaciónSi falta: ZEUSLOCK_API_KEY, luego la clave guardadaActiva la validación de licencia vía /api/v1/validate-license
--require-licenseBooleanodesactivadoSale con código distinto de cero salvo que salud, disponibilidad y licencia pasen
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
[path] / --stdinArchivo, directorio o stdinobligatorioMutuamente excluyentes; stdin se envía como texto
--api-keyClave API de organizaciónSi falta: ZEUSLOCK_API_KEY, luego la clave guardadaSe envía como X-API-Key
--fail-onalert, block, neverblockUmbral del código de salida: alert falla con alert+block; never nunca
--source / --platform / --hostname / --path / --user-emailTexto librecli, cli, hostname local, /cli/<nombre>, ningunoMetadatos adjuntos al incidente
--include-sensitiveBooleanodesactivadoIncluye los mapas de anonimización en la salida JSON
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
<file>Archivo de texto UTF-8obligatorioSe envía como {"text": …}
--api-keyClave API de organizaciónSi falta: ZEUSLOCK_API_KEY, luego la clave guardadaSe envía como X-API-Key
--outputRuta escribiblestdoutEscribe el texto anonimizado en un archivo
--include-sensitive-mapBooleanodesactivadoIncluye las sustituciones original→enmascarado en la salida JSON
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
--repoRuta del repositorio Gitdirectorio actualResuelto vía git rev-parse
install --fail-onalert, blockalertEscrito en el hook generado
run --fail-onalert, block, neveralertUmbral de bloqueo para una ejecución manual
install --forceBooleanodesactivadoReemplaza un hook pre-commit existente
run --api-key / run --user-emailSi falta: ZEUSLOCK_API_KEY, luego la clave guardadaAutenticación y atribución del incidente
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
list/export --days7, 30, 903090 y la exportación requieren Business/Enterprise
stats --days1, 7, 30, 36530Requiere el plan Business o Enterprise
--severitycritical, warningningunowarning incluye high, medium y low
--searchTexto libreningunoBusca correo, URL y tipo de hallazgo
--jailbreakBooleanodesactivadoSolo incidentes con hallazgo jailbreak_attempt
export --format / --outputcsv, jsoncsv / incidents-<timestamp>No se admiten valores de días arbitrarios ni --from/--to (paridad con el panel)
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
agents list --statusall, online, offlineallRefleja el selector de estado del panel
agents list --searchTexto libreningunoBusca hostname y plataforma; update_available si hay un agente más nuevo
agents revoke <agent_id>Id exacto de agents listobligatorioOmite la confirmación (necesario en scripts)
extensions statusExtensiones activas con recuentos (ventana de actividad de 30 minutos)
--json / --yesBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
users list --search / --roleTexto libreningunoRoles de GET /api/users/roles (según el plan)
users remove <user>Id de usuario, user_id o correoobligatorioRechaza la autoeliminación y eliminar al último admin activo
keys list --statusall, active, revokedallClaves completas ocultas salvo --show-secret
keys create --nameTexto libreobligatorioImprime la clave completa devuelta una vez
keys revoke <key_id>Id de clave de keys listobligatorioRechaza claves ya revocadas (un segundo DELETE eliminaría permanentemente)
--yes / --jsonBooleanodesactivadoOmite 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ónValoresPredeterminadoDescripción
--days7, 30, 9030Ventanas del panel (mcp servers fijo en 90)
shadow-ai --sourceall, endpoint, browser, bothallDónde se detectó la herramienta
shadow-ai --status / --categorysanctioned/shadow; chatbot, coding_assistant, image_gen, agent, otherallValores de filtro del panel
mcp events --transport / --direction / --decisionhttp/sse/stdio; client_to_server/server_to_client; allow/alert/blockallFiltros del lado del servidor; página de 50 (paridad con el panel)
mcp events --method / --search / --cursorp. ej. tools/call; texto libre; cursor opaconinguno--cursor continúa desde el next_cursor de una página --json anterior
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
--api-keyClave API de organizaciónSi falta: ZEUSLOCK_API_KEY, luego la clave guardadaSe envía como X-API-Key
--sincenext_cursor del backendcursor guardado (tail)Un cursor, no una fecha
pull --from / --to / --daysFecha ISO, epoch o número de díasninguno--days se convierte en start_time; excluyente con --from
--category / --severitycadena de categoría; unknowncriticalningunoLa severidad es un mínimo; los eventos DLP usan la categoría dlp
--limit1500100Tamaño de página por solicitud
pull --formatjsonl, jsonjsonlJSON envuelve la página
tail --interval / --cursor-name / --reset-cursorsegundos; nombre estable; booleano5 / 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ónValoresPredeterminadoDescripción
gpo-config --artifactall, extension, agentallGrupos de artefactos a generar
gpo-config --browserall, chrome, edgeallSolo artefactos de extensión
gpo-config --outputDirectoriozeuslock-deployLos archivos homónimos se sobrescriben
gpo-config --api-key / --key-id / --create-key-nameningunoClave a incrustar en los archivos generados (nunca en el resumen)
agent-verify --agent-id / --hostname / --platformid exacto; hostname sin distinción de mayúsculas; windows/macos/linuxningunoFiltros de identidad sobre la flota
agent-verify --statusonline, offline, anyonlineEstado esperado; resultados: verified, offline, online, not_found
--jsonBooleanodesactivadoSalida 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ónValoresPredeterminadoDescripción
--scopepolicies, default, policypoliciespolicies = sistema de políticas + grupos; default = ruleset de la política por defecto; policy = una política
--policy-idId de política del backendobligatorio para el scope policy
get --format / --outputyaml, jsonyaml / stdout
diff [file]Exportación YAML o JSONzeuslock.rules.yaml|yml|jsondiff --format json para automatización

Códigos de salida

ComandoDistinto de cero cuando
scan / hook runLa decisión del backend alcanza el umbral --fail-on
rules diffSe encuentran diferencias
deploy agent-verifyLa verificación no es verified
status --require-licenseFalla salud, disponibilidad o licencia
Todos los comandosErrores de autenticación o de solicitud