Toutes les commandes de la CLI ZeusLock : options, valeurs, défauts, identifiants et codes de sortie — scan, incidents, agents, utilisateurs, clés, Shadow AI, MCP, SIEM, deploy et rules.
Référence complète de toutes les commandes de @zeuslock/cli (v0.1.x). Pour l'installation et la première connexion, commencez par le guide de démarrage de la CLI. Chaque commande renvoyant des données accepte --json pour vos scripts, et --help fonctionne sur chaque commande et sous-commande.
Index des commandes
| Commande | Rôle |
|---|
auth login | Connexion e-mail/mot de passe (MFA pris en charge), jetons stockés |
whoami | Affiche l'utilisateur authentifié |
auth api-key set/status/clear | Enregistre, vérifie ou supprime la clé API d'organisation |
status | Contexte CLI, santé du backend, contrôle de licence optionnel |
scan | Analyse un fichier, un dossier ou stdin avec la politique DLP |
anonymize | Anonymise un fichier texte UTF-8 |
hook install / run | Hook Git pre-commit qui analyse les fichiers indexés |
incidents list / stats / export | Incidents, statistiques et export CSV/JSON |
agents list / revoke | Visibilité et révocation de la flotte d'agents |
extensions status | Extensions de navigateur actives |
users list / remove | Gouvernance des utilisateurs de l'organisation |
keys list / create / revoke | Gestion des clés API d'organisation |
shadow-ai stats / tools / users | Données de découverte Shadow AI |
mcp stats / events / servers | Données de surveillance MCP |
siem pull / tail | Récupération d'événements SIEM OCSF (une page ou en continu) |
deploy gpo-config / agent-verify | Artefacts de déploiement et vérification d'enrôlement |
rules get / diff | Export et diff policy-as-code DLP (lecture seule) |
Identifiants et configuration
La CLI utilise volontairement deux identifiants distincts. Les identifiants utilisateur (session de connexion ou jeton d'accès CLI personnel de la page CLI du tableau de bord) pilotent les commandes de données du tableau de bord. La clé API d'organisation (zl_…, page Clés API) pilote les commandes de contenu et SIEM, qui agissent pour l'organisation.
| Identifiant | Utilisé par |
|---|
| Session utilisateur / jeton d'accès CLI | whoami, incidents, agents, extensions, users, keys, shadow-ai, mcp, rules, deploy |
Clé API d'organisation (zl_…) | scan, anonymize, hook run, siem pull/tail, status (license) |
Variables d'environnement
| Variable | Description |
|---|
ZEUSLOCK_API_URL | URL du backend ; défaut https://api.zeuslock.ai |
ZEUSLOCK_API_TOKEN | Jeton Bearer pour les commandes authentifiées utilisateur (ex. jeton d'accès CLI) |
ZEUSLOCK_API_KEY | Clé API d'organisation pour les commandes machine |
ZEUSLOCK_EMAIL / ZEUSLOCK_PASSWORD / ZEUSLOCK_MFA_CODE | Entrées non interactives pour auth login (CI, automatisation) |
ZEUSLOCK_CONFIG_DIR | Remplace le répertoire de configuration utilisateur |
Le répertoire de configuration (macOS ~/Library/Application Support/zeuslock/, Windows %APPDATA%\ZeusLock\, Linux ~/.config/zeuslock/) contient auth.json (jetons de session, 0600), api-key.json (clé d'organisation) et siem-cursors.json (curseurs de tail). Les mots de passe ne sont jamais stockés et la CLI n'affiche jamais les secrets enregistrés.
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
| Option | Valeurs | Défaut | Description |
|---|
--email / -u, --username | E-mail du compte | ZEUSLOCK_EMAIL | Demandé si absent |
--password | — | ZEUSLOCK_PASSWORD | Demandé interactivement si omis ; jamais stocké |
--mfa-code | — | ZEUSLOCK_MFA_CODE | Utilisé si le backend exige la MFA ; sinon demandé |
--recaptcha-token | — | aucune | Pour les backends imposant reCAPTCHA à la connexion |
--api-url | URL | ZEUSLOCK_API_URL | Backend cible de l'authentification |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
auth api-key set / status / clear
set valide la clé via GET /api/rules/sync avant de l'enregistrer ; status montre l'état configuré avec une clé masquée ; clear la supprime. La clé complète n'est jamais réaffichée.
Priorité de la clé pour les commandes machine : option --api-key → ZEUSLOCK_API_KEY → clé enregistrée.
zeuslock status
zeuslock status
zeuslock status --api-key zl_your_key_here --require-license
zeuslock status --json
| Option | Valeurs | Défaut | Description |
|---|
--api-key | Clé API d'organisation | À défaut : ZEUSLOCK_API_KEY, puis la clé enregistrée | Active la validation de licence via /api/v1/validate-license |
--require-license | Booléen | désactivé | Sortie non nulle sauf si santé, disponibilité et licence passent |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
zeuslock scan
zeuslock scan ./secrets.txt
zeuslock scan ./src --fail-on alert
cat prompt.txt | zeuslock scan --stdin --json
Envoie le contenu à POST /api/v1/dlp/analyze sous la politique DLP active de l'organisation. Les dossiers sont parcourus récursivement (.git ignoré) et envoyés par lots de 5 fichiers. Un scan aboutissant à alert/block crée un incident réel — pas de mode simulation.
| Option | Valeurs | Défaut | Description |
|---|
[path] / --stdin | Fichier, dossier ou stdin | requis | Mutuellement exclusifs ; stdin est envoyé comme texte |
--api-key | Clé API d'organisation | À défaut : ZEUSLOCK_API_KEY, puis la clé enregistrée | Envoyée en X-API-Key |
--fail-on | alert, block, never | block | Seuil de code de sortie : alert échoue sur alert+block ; never jamais |
--source / --platform / --hostname / --path / --user-email | Texte libre | cli, cli, nom d'hôte local, /cli/<nom>, aucune | Métadonnées attachées à l'incident |
--include-sensitive | Booléen | désactivé | Inclut les tables d'anonymisation dans la sortie JSON |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
zeuslock anonymize
zeuslock anonymize customer-data.txt --output customer-data.safe.txt
Envoie du texte UTF-8 à POST /api/v1/anonymize et renvoie le texte masqué. Texte uniquement — PDF/images/Office ne sont pas pris en charge par cet endpoint.
| Option | Valeurs | Défaut | Description |
|---|
<file> | Fichier texte UTF-8 | requis | Envoyé comme {"text": …} |
--api-key | Clé API d'organisation | À défaut : ZEUSLOCK_API_KEY, puis la clé enregistrée | Envoyée en X-API-Key |
--output | Chemin accessible en écriture | stdout | Écrit le texte anonymisé dans un fichier |
--include-sensitive-map | Booléen | désactivé | Inclut les substitutions original→masqué dans la sortie JSON |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
zeuslock hook install / run
zeuslock hook install --fail-on alert
zeuslock hook run --json
install écrit .git/hooks/pre-commit (0755, --force pour remplacer un hook existant) ; run analyse les blobs indexés tels qu'ils seront commités (fichiers ajoutés/copiés/modifiés/renommés uniquement) via le même endpoint DLP et bloque le commit au seuil choisi. Les incidents du hook portent source=git_pre_commit, platform=git, method=PRE_COMMIT. install --fail-on never est refusé.
| Option | Valeurs | Défaut | Description |
|---|
--repo | Chemin du dépôt Git | répertoire courant | Résolu via git rev-parse |
install --fail-on | alert, block | alert | Écrit dans le hook généré |
run --fail-on | alert, block, never | alert | Seuil de blocage pour une exécution manuelle |
install --force | Booléen | désactivé | Remplace un hook pre-commit existant |
run --api-key / run --user-email | — | À défaut : ZEUSLOCK_API_KEY, puis la clé enregistrée | Authentification et attribution de l'incident |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
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
| Option | Valeurs | Défaut | Description |
|---|
list/export --days | 7, 30, 90 | 30 | 90 et l'export exigent Business/Enterprise |
stats --days | 1, 7, 30, 365 | 30 | Nécessite le plan Business ou Enterprise |
--severity | critical, warning | aucune | warning couvre high, medium et low |
--search | Texte libre | aucune | Recherche e-mail, URL et type de détection |
--jailbreak | Booléen | désactivé | Uniquement les incidents avec détection jailbreak_attempt |
export --format / --output | csv, json | csv / incidents-<timestamp> | Valeurs de jours arbitraires et --from/--to non pris en charge (parité tableau de bord) |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
zeuslock agents / extensions
zeuslock agents list --status offline --search linux
zeuslock agents revoke AGENT-123 --yes
zeuslock extensions status --json
| Option | Valeurs | Défaut | Description |
|---|
agents list --status | all, online, offline | all | Reflète le sélecteur de statut du tableau de bord |
agents list --search | Texte libre | aucune | Recherche nom d'hôte et plateforme ; update_available si un agent plus récent existe |
agents revoke <agent_id> | Id exact depuis agents list | requis | Ignore la demande de confirmation (nécessaire en script) |
extensions status | — | — | Extensions actives avec compteurs (fenêtre d'activité de 30 minutes) |
--json / --yes | Booléen | désactivé | Sortie JSON exploitable par machine |
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
| Option | Valeurs | Défaut | Description |
|---|
users list --search / --role | Texte libre | aucune | Rôles issus de GET /api/users/roles (selon le plan) |
users remove <user> | Id utilisateur, user_id ou e-mail | requis | Refuse l'auto-suppression et la suppression du dernier admin actif |
keys list --status | all, active, revoked | all | Clés complètes masquées sauf --show-secret |
keys create --name | Texte libre | requis | Affiche la clé complète retournée une fois |
keys revoke <key_id> | Id de clé depuis keys list | requis | Refuse les clés déjà révoquées (un second DELETE supprimerait définitivement) |
--yes / --json | Booléen | désactivé | Ignore la demande de confirmation (nécessaire en script) |
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
Les deux groupes suivent les feature gates du tableau de bord via GET /api/org : Shadow AI exige settings.shadow_ai_enabled ; MCP est actif sauf si settings.mcp_enabled vaut explicitement false. Les événements MCP sont des métadonnées assainies — jamais les prompts bruts.
| Option | Valeurs | Défaut | Description |
|---|
--days | 7, 30, 90 | 30 | Fenêtres du tableau de bord (mcp servers fixé à 90) |
shadow-ai --source | all, endpoint, browser, both | all | Où l'outil a été détecté |
shadow-ai --status / --category | sanctioned/shadow; chatbot, coding_assistant, image_gen, agent, other | all | Valeurs de filtre du tableau de bord |
mcp events --transport / --direction / --decision | http/sse/stdio; client_to_server/server_to_client; allow/alert/block | all | Filtres côté serveur ; page de 50 (parité tableau de bord) |
mcp events --method / --search / --cursor | ex. tools/call ; texte libre ; curseur opaque | aucune | --cursor reprend au next_cursor d'une page --json précédente |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
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
Récupère les événements OCSF via GET /api/v1/siem/events (clé API d'organisation). pull lit une page ; tail interroge en continu et persiste son curseur dans siem-cursors.json, indexé par URL d'API, nom de curseur, catégorie et sévérité — des consommateurs distincts peuvent suivre indépendamment. Sortie JSONL par défaut, idéale pour l'ingestion SIEM.
| Option | Valeurs | Défaut | Description |
|---|
--api-key | Clé API d'organisation | À défaut : ZEUSLOCK_API_KEY, puis la clé enregistrée | Envoyée en X-API-Key |
--since | next_cursor du backend | curseur enregistré (tail) | Un curseur, pas une date |
pull --from / --to / --days | Date ISO, epoch ou nombre de jours | aucune | --days devient start_time ; exclusif avec --from |
--category / --severity | chaîne de catégorie ; unknown–critical | aucune | La sévérité est un minimum ; les événements DLP utilisent la catégorie dlp |
--limit | 1–500 | 100 | Taille de page par requête |
pull --format | jsonl, json | jsonl | JSON enveloppe la page |
tail --interval / --cursor-name / --reset-cursor | secondes ; nom stable ; booléen | 5 / default / off | --reset-cursor ignore le curseur enregistré pour cette exécution |
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 génère des fichiers de déploiement locaux : politiques d'installation forcée Chrome/Edge et JSON ExtensionSettings, le .reg de politique agent Windows (ServerUrl/LicenseKey sous HKLM\SOFTWARE\Policies\ZeusLock), un agent-config.json et un deployment-summary.json sans secret. Les artefacts extension exigent le plan Business/Enterprise. Priorité de la clé : --api-key → --create-key-name → --key-id → l'unique clé active déchiffrable. agent-verify vérifie l'enrôlement/heartbeat via GET /api/agents et sort en erreur si non vérifié — utile après un déploiement GPO.
| Option | Valeurs | Défaut | Description |
|---|
gpo-config --artifact | all, extension, agent | all | Groupes d'artefacts à générer |
gpo-config --browser | all, chrome, edge | all | Artefacts extension uniquement |
gpo-config --output | Répertoire | zeuslock-deploy | Les fichiers homonymes sont écrasés |
gpo-config --api-key / --key-id / --create-key-name | — | aucune | Clé à intégrer dans les fichiers générés (jamais dans le résumé) |
agent-verify --agent-id / --hostname / --platform | id exact ; nom d'hôte insensible à la casse ; windows/macos/linux | aucune | Filtres d'identité sur la flotte |
agent-verify --status | online, offline, any | online | État attendu ; résultats : verified, offline, online, not_found |
--json | Booléen | désactivé | Sortie JSON exploitable par machine |
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
Policy-as-code en lecture seule : get exporte l'état réel en YAML/JSON déterministe (schema_version: zeuslock.rules.v1, champs volatils retirés pour des diffs propres) ; diff compare un fichier local à l'état réel et sort avec le code 1 en cas d'écart — idéal pour un contrôle de dérive en CI. Pas d'import/apply : les politiques se modifient dans le tableau de bord.
| Option | Valeurs | Défaut | Description |
|---|
--scope | policies, default, policy | policies | policies = système de politiques + groupes ; default = ruleset de la politique par défaut ; policy = une politique |
--policy-id | Id de politique backend | requis pour le scope policy | |
get --format / --output | yaml, json | yaml / stdout | |
diff [file] | Export YAML ou JSON | zeuslock.rules.yaml|yml|json | diff --format json pour l'automatisation |
Codes de sortie
| Commande | Non nul quand |
|---|
scan / hook run | La décision backend atteint le seuil --fail-on |
rules diff | Des écarts sont détectés |
deploy agent-verify | La vérification n'est pas verified |
status --require-license | Santé, disponibilité ou licence en échec |
| Toutes les commandes | Erreurs d'authentification ou de requête |