Référence des commandes de la CLI ZeusLock

Toutes les commandes de la CLI ZeusLock sur une page : effet, modifications, options et valeurs par défaut, exemples et codes de sortie.

Toutes les commandes de la CLI ZeusLock, avec leur effet, ce qu'elles modifient et ce qu'elles renvoient. La CLI couvre le même périmètre que le tableau de bord — incidents, agents, politiques, utilisateurs, clés, Shadow AI, MCP et SIEM — plus deux capacités absentes du tableau de bord : analyser du contenu depuis un terminal et bloquer un commit Git avant que des secrets ne quittent un poste.

Installation

Nécessite Node.js 22.12 ou plus récent. Le paquet est publié sous le nom zeuslock-dlp-cli et installe un exécutable unique nommé zeuslock.

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

Pour l'exécuter une fois sans installation : npm exec --package zeuslock-dlp-cli@latest -- zeuslock status.

Deux identifiants, volontairement

La CLI utilise deux identifiants distincts ; choisir le mauvais est la cause la plus fréquente d'échec d'une commande.

IdentifiantPréfixeAgit en tant queUtilisé par
Jeton d'accès CLI personnelzlu_Vous, avec votre rôleCommandes de données : incidents, agents, utilisateurs, clés, jetons, politiques, Shadow AI, MCP, extensions, deploy
Clé API d'organisationzl_L'organisationCommandes de contenu et machine : scan, anonymize, hook run, siem pull/tail, vérification de licence dans status

Un jeton personnel n'est jamais accepté pour les commandes de contenu, et une clé d'organisation n'est jamais acceptée pour les commandes de données. Cette séparation est volontaire : les commandes de contenu s'exécutent sans surveillance en CI, où un identifiant lié à une personne cesserait de fonctionner dès son départ.

Obtenir un jeton d'accès CLI personnel

La CLI ne se connecte pas avec un e-mail et un mot de passe. Le backend impose un contrôle reCAPTCHA à la connexion, qu'un terminal ne peut pas résoudre. Générez un jeton depuis la page CLI du tableau de bord, ou depuis une machine déjà authentifiée avec zeuslock tokens create.

zeuslock auth login --token zlu_your_cli_access_token
zeuslock whoami

Enregistrer la clé API d'organisation

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

Options globales

OptionValeursDéfautEffet
--token <zlu_…>zlu_…aucunUtilise ce jeton pour une seule invocation. Doit précéder la sous-commande : zeuslock --token zlu_… whoami.
-V, --version——Affiche la version installée.
-h, --help——Fonctionne sur chaque commande et sous-commande.

Variables d'environnement

VariableEffet
ZEUSLOCK_API_URLURL du backend. Défaut https://api.zeuslock.ai. Utilisez https://api-staging.zeuslock.ai pour la préproduction.
ZEUSLOCK_API_TOKENJeton d'accès CLI personnel pour les commandes utilisateur. Idéal en CI.
ZEUSLOCK_API_KEYClé API d'organisation pour les commandes de contenu et machine.
ZEUSLOCK_CONFIG_DIRRemplace l'emplacement de stockage de la CLI.

Priorité des identifiants

Si plusieurs sont présents, la CLI utilise le premier applicable.

#Commandes utilisateurCommandes de contenu
1--token zlu_…--api-key zl_…
2ZEUSLOCK_API_TOKENZEUSLOCK_API_KEY
3Jeton enregistré via auth login --tokenClé enregistrée via auth api-key set

Codes de sortie

Chaque commande renvoie 0 en cas de succès et 1 en cas d'échec, ce qui permet de conditionner une étape de CI. Quatre commandes renvoient un code non nul significatif, qui traduit un résultat et non une erreur — ce sont celles à brancher dans un pipeline.

CommandeCode non nul signifie
scanDu contenu sensible a atteint le seuil --fail-on.
hook runLe commit doit être bloqué.
rules diffLe fichier de politique local diffère de l'état en ligne.
deploy agent-verifyAucun agent ne correspond, ou il n'est pas dans l'état attendu.
status --require-licenseSanté, disponibilité ou validation de licence en échec.

Sortie

Les commandes affichent des tableaux alignés par défaut. Ajoutez --json pour une sortie exploitable par machine — toutes les commandes qui renvoient des données le prennent en charge, et le format est stable. siem pull produit du JSONL par défaut (un événement par ligne), format attendu par les collecteurs SIEM. La CLI n'affiche jamais un jeton ou une clé enregistrés, sauf avec --show-secret.

Où la CLI stocke ses fichiers

FichierContenu
auth.jsonVotre jeton d'accès CLI, mode 0600.
api-key.jsonLa clé API d'organisation enregistrée, mode 0600.
siem-cursors.jsonPositions de reprise pour siem tail, une par nom de curseur.

Emplacement : macOS ~/Library/Application Support/zeuslock/, Windows %APPDATA%\ZeusLock\, Linux ~/.config/zeuslock/. Le répertoire est créé en 0700 lorsque le système de fichiers le permet.

zeuslock auth — Connexion et stockage des identifiants

Enregistre votre jeton personnel et la clé API d'organisation sur cette machine, et indique qui vous êtes.

zeuslock auth login --token

Valide un jeton d'accès CLI personnel et l'enregistre pour les commandes suivantes.

Identifiant: Aucun · Effet: Écrit des fichiers locaux

Le jeton est vérifié auprès du backend avant écriture : une faute de frappe échoue tout de suite. Il est enregistré dans auth.json en mode 0600. La connexion par e-mail et mot de passe n'existe pas — voir plus haut.

OptionValeursDéfautEffet
--token <zlu_…>zlu_[object Object]aucunLe jeton de la page CLI du tableau de bord. Le format est validé localement.
--api-url <url>URLZEUSLOCK_API_URLBackend de validation, stocké avec le jeton.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock auth login --token zlu_your_cli_access_token
zeuslock auth login --token zlu_… --api-url https://api-staging.zeuslock.ai

Un jeton révoqué ou expiré renvoie 401. Les jetons ne se renouvellent pas : générez-en un nouveau et relancez.

zeuslock auth logout

Supprime le jeton personnel enregistré sur cette machine.

Identifiant: Aucun · Effet: Écrit des fichiers locaux

Supprime uniquement auth.json. La clé API d'organisation est conservée : scan, anonymize et les commandes SIEM continuent de fonctionner. Le jeton n'est pas révoqué côté serveur — utilisez tokens revoke.

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock auth logout

zeuslock auth api-key set [key]

Valide une clé API d'organisation et l'enregistre pour les commandes de contenu et SIEM.

Identifiant: Clé API d'organisation · Effet: Écrit des fichiers locaux

La clé est vérifiée auprès du backend avant enregistrement : une clé invalide est rejetée d'emblée. Écrite dans api-key.json en mode 0600 ; la valeur complète n'est jamais réaffichée.

ArgumentRequisDescription
keyNonLa clé zl_…. Si omise, la CLI lit ZEUSLOCK_API_KEY ou la demande.
OptionValeursDéfautEffet
--api-url <url>URLZEUSLOCK_API_URLBackend auquel la clé appartient ; stocké avec elle.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
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

Indique si une clé API d'organisation est configurée, et laquelle.

Identifiant: Aucun · Effet: Lecture seule

Affiche la source, l'URL du backend et une clé masquée. La valeur complète n'est jamais affichée.

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock auth api-key status

zeuslock auth api-key clear

Supprime la clé API d'organisation enregistrée sur cette machine.

Identifiant: Aucun · Effet: Écrit des fichiers locaux

Supprime api-key.json. La clé reste valide dans le tableau de bord — elle est seulement oubliée localement. Les commandes de contenu exigeront ensuite --api-key ou ZEUSLOCK_API_KEY.

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock auth api-key clear

zeuslock auth whoami

Identique à zeuslock whoami, pour ceux qui l'attendent sous auth.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock auth whoami

zeuslock whoami / status — Qui suis-je, et tout va-t-il bien

zeuslock whoami

Affiche le compte sous lequel la CLI agit actuellement.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Renvoie l'e-mail, l'identifiant, le rôle, l'organisation, le statut et l'URL du backend. La première commande à lancer devant une erreur de permission inexpliquée : elle indique le compte et l'environnement réels.

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock whoami
zeuslock whoami --json
zeuslock --token zlu_… whoami   # check a token without saving it

zeuslock status

Affiche la configuration locale, la santé et la disponibilité du backend, et la validité de la licence.

Identifiant: Clé API d'organisation (pour la vérification de licence) · Effet: Lecture seule

Une commande pour répondre à « est-ce moi ou le service ? ». La santé et la disponibilité sont vérifiées sans identifiants ; la licence uniquement si une clé API d'organisation est disponible. Utilisez --require-license en CI pour faire échouer le job si le backend est dégradé.

OptionValeursDéfautEffet
--api-key <key>zl_…ZEUSLOCK_API_KEYClé utilisée pour la vérification de licence.
--require-licenseBooléendésactivéSortie non nulle sauf si santé, disponibilité et licence sont toutes valides.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock status
zeuslock status --json
zeuslock status --require-license   # CI gate

zeuslock scan — Vérifier du contenu avant qu'il n'atteigne un outil d'IA

zeuslock scan [path]

Analyse un fichier, un répertoire ou du texte redirigé avec la politique DLP de votre organisation.

Identifiant: Clé API d'organisation · Effet: Lecture seule

Renvoie la même décision que l'agent et l'extension — allow, alert ou block — et enregistre un incident en cas de détection : l'activité du terminal apparaît donc dans le tableau de bord aux côtés de l'activité navigateur. Les répertoires sont parcourus localement, .git est ignoré, les fichiers sont envoyés par lots de cinq. Le code de sortie suit --fail-on, ce qui permet d'en faire une barrière de CI.

ArgumentRequisDescription
pathNonFichier ou répertoire à analyser. Requis sauf avec --stdin ; les deux sont exclusifs.
OptionValeursDéfautEffet
--stdinBooléendésactivéLit le texte sur l'entrée standard au lieu d'un chemin.
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClé API d'organisation pour authentifier cet appel.
--fail-on <decision>alert | block | neverblockDécision qui fait échouer la commande. alert est strict (échoue sur alerte et blocage), never sort toujours en 0 pour un usage informatif.
--source <source>Tout textecliLibellé de source enregistré sur l'incident.
--platform <platform>Tout textecliLibellé de plateforme envoyé avec la requête. La colonne plateforme de l'incident étant déduite de l'URL, cette valeur n'y est pas enregistrée.
--hostname <hostname>Tout textenom d'hôte localNom d'hôte enregistré sur l'incident.
--path <path>Tout texte/cli/<file>Libellé de destination enregistré sur l'incident ; normalisé pour commencer par une barre oblique.
--user-email <email>Tout texteaucunAttribue l'incident à une personne au lieu de le laisser anonyme. Utile en CI.
--include-sensitiveBooléendésactivéInclut la table d'anonymisation du backend dans la sortie JSON. Elle contient les valeurs d'origine : traitez cette sortie comme sensible.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
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

Chaque analyse qui détecte quelque chose crée un incident. Analyser un grand arbre en boucle en CI remplira la chronologie des incidents : restreignez le chemin.

zeuslock anonymize — Retirer les valeurs sensibles d'un texte

zeuslock anonymize <file>

Remplace les valeurs sensibles d'un fichier texte UTF-8 par des substituts réalistes.

Identifiant: Clé API d'organisation · Effet: Lecture seule

Contrairement à scan, cette commande réécrit le contenu au lieu de le juger, et n'enregistre aucun incident. Les substituts ont la même forme — un numéro de carte devient un autre numéro plausible — le texte reste donc exploitable comme prompt ou jeu de test. Utile pour partager un document réel avec un LLM externe sans divulguer les vraies valeurs.

ArgumentRequisDescription
fileOuiFichier texte UTF-8 à anonymiser.
OptionValeursDéfautEffet
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClé API d'organisation pour authentifier cet appel.
--output <path>Chemin accessible en écrituresortie standardÉcrit le texte anonymisé dans un fichier au lieu de l'afficher.
--include-sensitive-mapBooléendésactivéInclut les correspondances original/masqué dans la sortie JSON. Cela révèle les vraies valeurs : traitez-les en conséquence.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock anonymize customer-data.txt
zeuslock anonymize customer-data.txt --output customer-data.safe.txt
zeuslock anonymize customer-data.txt --json

zeuslock hook — Bloquer les secrets au commit, pas à la relecture

Installe un hook Git pre-commit qui analyse le contenu indexé et refuse le commit si la politique DLP l'exige.

zeuslock hook install

Écrit le hook pre-commit ZeusLock dans un dépôt.

Identifiant: Aucun · Effet: Écrit des fichiers locaux

Crée .git/hooks/pre-commit en 0755, appelant zeuslock hook run. Il refuse d'écraser un hook existant sans --force : il ne détruira donc pas silencieusement le hook d'un autre outil. Le hook est local au clone — il n'est pas partagé via Git, chaque développeur l'installe une fois.

OptionValeursDéfautEffet
--repo <path>Chemindépôt courantDépôt cible.
--fail-on <decision>alert | blockalertSeuil inscrit dans le hook. Par défaut strict : les alertes bloquent aussi le commit.
--forceBooléendésactivéRemplace un hook pre-commit existant.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock hook install
zeuslock hook install --fail-on block --force

zeuslock hook run

Analyse les modifications indexées et décide si le commit peut aboutir.

Identifiant: Clé API d'organisation · Effet: Lecture seule

Lit les blobs indexés, pas la copie de travail : ce qui est analysé correspond exactement à ce qui serait commité — modifier un fichier après l'avoir indexé ne permet pas de contourner le contrôle. Seuls les fichiers ajoutés, copiés, modifiés et renommés sont analysés ; les fichiers non suivis, non indexés et supprimés sont ignorés, tout comme l'historique. Sortie non nulle pour arrêter le commit.

OptionValeursDéfautEffet
--repo <path>Chemindépôt courantDépôt à analyser.
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClé API d'organisation pour authentifier cet appel.
--fail-on <decision>alert | block | neveralertSeuil qui bloque le commit.
--user-email <email>Tout texteaucunAttribue l'incident à une personne.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock hook run
zeuslock hook run --fail-on block --json
git commit -m 'feature'   # the hook runs automatically

Le hook a besoin d'une clé API d'organisation au moment du commit. Enregistrez-la avec `auth api-key set` pour qu'il fonctionne depuis une interface Git graphique, où les variables d'environnement sont souvent absentes.

zeuslock incidents — Ce qui a été détecté, et à quelle fréquence

Les mêmes données que la page Incidents du tableau de bord. Les filtres sont appliqués localement après récupération d'une fenêtre : les valeurs de jours sont donc fixes.

zeuslock incidents list

Liste les incidents récents avec les filtres du tableau de bord.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Les prompts propres sont masqués, comme dans le tableau de bord : une ligne n'est conservée que si elle a des détections, a été bloquée, ou porte une action différente de allowed. --days 90 exige un plan Business ou Enterprise.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique. Les autres valeurs sont rejetées avant la requête.
--severity <level>critical | warningaucunLa gravité suit le résultat de la politique, pas le score du détecteur : critical signifie requête bloquée, warning tout le reste. Cela correspond à l'affichage du tableau de bord.
--search <text>Tout texteaucunFiltre sur l'e-mail, l'URL ou le type de détection.
--jailbreakBooléendésactivéNe garde que les incidents contenant une tentative de jailbreak.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock incidents list --days 7
zeuslock incidents list --severity critical
zeuslock incidents list --jailbreak --json

zeuslock incidents stats

Affiche des statistiques agrégées d'incidents.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Répartition par gravité, types de données détectés, chronologie quotidienne et usage par plateforme d'IA — les chiffres de la vue d'ensemble, sur un seul écran.

OptionValeursDéfautEffet
--days <days>1 | 7 | 30 | 36530Fenêtre statistique. 365 exige un plan Business ou Enterprise.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock incidents stats
zeuslock incidents stats --days 365 --json

zeuslock incidents export

Écrit les incidents filtrés dans un fichier CSV ou JSON.

Identifiant: Jeton d'accès CLI personnel · Effet: Écrit des fichiers locaux

Produit le fichier de preuve demandé par un auditeur. Le CSV contient à la fois severity (résultat de politique affiché) et risk_level (score brut du détecteur) — ils diffèrent légitimement, les conserver tous deux évite toute perte. L'export exige un plan Business ou Enterprise.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--severity <level>critical | warningaucunLa gravité suit le résultat de la politique, pas le score du détecteur : critical signifie requête bloquée, warning tout le reste. Cela correspond à l'affichage du tableau de bord.
--search <text>Tout texteaucunFiltre sur l'e-mail, l'URL ou le type de détection.
--jailbreakBooléendésactivéNe garde que les incidents contenant une tentative de jailbreak.
--format <format>csv | jsoncsvFormat de sortie.
--output <path>Chemin accessible en écritureincidents-<timestamp>.<ext>Fichier de destination.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock incidents export --days 7
zeuslock incidents export --days 30 --severity critical --format json --output incidents.json

zeuslock agents / extensions — La flotte est-elle réellement protégée

zeuslock agents list

Liste les agents installés et leur état de heartbeat.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Affiche nom d'hôte, plateforme, version, état en ligne et dernier heartbeat, plus un marqueur update_available si une version plus récente existe. Un agent est en ligne s'il a communiqué dans les cinq dernières minutes. C'est ainsi qu'on repère les machines silencieuses.

OptionValeursDéfautEffet
--status <status>all | online | offlineallFiltre de heartbeat.
--search <text>Tout texteaucunRecherche uniquement le nom d'hôte et la plateforme.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock agents list
zeuslock agents list --status offline
zeuslock agents list --search windows --json

zeuslock agents revoke <agent_id>

Révoque un agent installé.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

L'agent perd son enrôlement et n'est plus reconnu par le backend. À utiliser pour un poste perdu ou mis hors service. La commande demande confirmation sauf avec --yes.

ArgumentRequisDescription
agent_idOuiIdentifiant exact issu de agents list.
OptionValeursDéfautEffet
-y, --yesBooléendésactivéIgnore la confirmation. Requis en script et en CI.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock agents revoke AGENT-123
zeuslock agents revoke AGENT-123 --yes --json

zeuslock extensions status

Affiche les extensions de navigateur actuellement actives.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Compte les extensions et utilisateurs vus dans les 30 dernières minutes. Un total faible face à une grande flotte signifie généralement que la politique d'installation forcée n'a pas atteint ces navigateurs.

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock extensions status --json

zeuslock users / keys / tokens — Qui a accès, et avec quoi

Trois choses distinctes : les personnes, les clés API d'organisation et les jetons CLI personnels. Supprimer une personne ne révoque pas une clé qu'elle a créée.

zeuslock users list

Liste les personnes de votre organisation.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Affiche e-mail, rôle, statut, indicateur d'activité et date de création. Les rôles sont validés contre ceux réellement exposés par votre plan : un rôle invalide est rejeté au lieu de ne rien correspondre.

OptionValeursDéfautEffet
--search <text>Tout texteaucunFiltre local sur e-mail, rôle, statut et nom affiché.
--role <role>admin, user, viewer…aucunValidé selon les rôles exposés par votre plan.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock users list
zeuslock users list --role admin
zeuslock users list --search alice --json

zeuslock users remove <user>

Retire une personne de l'organisation.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

Deux garde-fous côté serveur, non contournables : vous ne pouvez pas vous retirer vous-même, ni retirer le dernier administrateur actif. Accepte un identifiant ou un e-mail, résolu au préalable via la liste des utilisateurs.

ArgumentRequisDescription
userOuiIdentifiant ou adresse e-mail.
OptionValeursDéfautEffet
-y, --yesBooléendésactivéIgnore la confirmation. Requis en script et en CI.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock users remove departing@example.com
zeuslock users remove user-uuid --yes --json

zeuslock keys list

Liste les clés API d'organisation.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Les valeurs sont masquées par défaut. --show-secret n'affiche en clair que les clés encore déchiffrables côté backend ; les plus anciennes restent masquées.

OptionValeursDéfautEffet
--status <status>all | active | revokedallFiltre de statut local.
--show-secretBooléendésactivéRévèle les valeurs complètes disponibles.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock keys list
zeuslock keys list --status active
zeuslock keys list --show-secret --json

zeuslock keys create --name <name>

Crée une nouvelle clé API d'organisation.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

La clé complète est renvoyée une seule fois, dans cette réponse. Copiez-la immédiatement : la CLI ne pourra pas la réafficher si le backend cesse de la fournir.

OptionValeursDéfautEffet
--name <name>Tout texteaucunRequis. Nommez-la d'après son usage, pour pouvoir la révoquer sans hésiter plus tard.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock keys create --name ci-pipeline
zeuslock keys create --name fleet-deploy --json

zeuslock keys revoke <key_id>

Révoque une clé API d'organisation active.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

Tout ce qui utilise la clé cesse de fonctionner immédiatement : agents configurés avec elle, jobs CI, hooks. La CLI refuse d'agir sur une clé déjà révoquée, car un second delete détruit définitivement l'enregistrement au lieu de le révoquer.

ArgumentRequisDescription
key_idOuiIdentifiant issu de keys list.
OptionValeursDéfautEffet
-y, --yesBooléendésactivéIgnore la confirmation. Requis en script et en CI.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock keys revoke key-uuid --yes

zeuslock tokens list

Liste vos jetons d'accès CLI personnels.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Affiche nom, valeur masquée, statut, expiration et dernière utilisation. La colonne de dernière utilisation est le moyen le plus rapide de repérer les jetons révocables sans risque.

OptionValeursDéfautEffet
--status <status>all | active | revoked | expiredallFiltre de statut local.
--show-secretBooléendésactivéRévèle les valeurs complètes lorsque le backend les renvoie.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock tokens list
zeuslock tokens list --status expired

zeuslock tokens create --name <name>

Crée un jeton d'accès CLI personnel.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

Le jeton zlu_… complet est renvoyé une seule fois. C'est l'alternative scriptable à la page CLI du tableau de bord — utile pour émettre un jeton court destiné à un job CI depuis une machine déjà authentifiée.

OptionValeursDéfautEffet
--name <name>1 à 255 caractèresaucunRequis. Identifie le jeton dans la liste.
--expires-in-days <days>1-365défaut du backend (90)Une durée courte est préférable en CI. Les valeurs hors plage sont rejetées localement.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock tokens create --name work-laptop
zeuslock tokens create --name ci-job --expires-in-days 30 --json

zeuslock tokens revoke <token_id>

Révoque un jeton d'accès CLI personnel.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

Le jeton renvoie 401 dès la requête suivante. L'enregistrement est conservé et reste visible comme révoqué — c'est l'étape à privilégier en cas de perte d'un poste.

ArgumentRequisDescription
token_idOuiIdentifiant issu de tokens list.
OptionValeursDéfautEffet
-y, --yesBooléendésactivéIgnore la confirmation. Requis en script et en CI.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock tokens revoke token-uuid --yes

zeuslock tokens purge <token_id>

Supprime définitivement un jeton CLI déjà révoqué.

Identifiant: Jeton d'accès CLI personnel · Effet: Modifie l'état de l'organisation

Supprime totalement l'enregistrement : il disparaît de la liste et de toute vue d'audit. Le jeton doit d'abord être révoqué — la CLI refuse de purger un jeton actif, ce qui rend impossible la destruction accidentelle d'un identifiant en usage.

ArgumentRequisDescription
token_idOuiIdentifiant d'un jeton révoqué.
OptionValeursDéfautEffet
-y, --yesBooléendésactivéIgnore la confirmation. Requis en script et en CI.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock tokens revoke token-uuid --yes
zeuslock tokens purge token-uuid --yes

zeuslock rules — Politique en tant que code

Exporte l'état des politiques dans un fichier relisible et détecte les écarts. Lecture seule — la CLI ne réécrit jamais les politiques.

zeuslock rules get

Exporte l'état actuel des politiques DLP en YAML ou JSON.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

La sortie est normalisée : ordre déterministe et champs volatils comme created_at, updated_at et org_id supprimés ; deux exports d'une politique inchangée sont donc identiques octet pour octet. C'est ce qui rend le fichier commitable et comparable.

OptionValeursDéfautEffet
--scope <scope>policies | default | policypoliciespolicies exporte toutes les politiques visibles et les groupes d'affectation ; default la seule politique par défaut ; policy un document unique.
--policy-id <id>Tout texteaucunRequis avec --scope policy.
--format <format>yaml | jsonyamlFormat d'export.
--output <path>Chemin accessible en écrituresortie standardÉcrit dans un fichier au lieu d'afficher.
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]

Compare un fichier de politique local à l'état en ligne.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Sort en 0 en cas de correspondance et 1 en cas d'écart, avec un diff par chemin. À exécuter en CI contre un export versionné pour détecter les modifications de politique non relues.

ArgumentRequisDescription
fileNonYAML ou JSON exporté. Par défaut zeuslock.rules.yaml, puis .yml, puis .json.
OptionValeursDéfautEffet
--scope <scope>policies | default | policypoliciesDoit correspondre au scope enregistré dans le fichier.
--policy-id <id>Tout texteaucunRequis avec --scope policy.
--format <format>text | jsontextFormat de sortie du 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 — Alimenter votre SIEM en événements

Récupère les événements DLP au format OCSF. Ces commandes lisent uniquement — les destinations SIEM (Splunk, Sentinel, Elastic) se configurent dans le tableau de bord.

zeuslock siem pull

Récupère une page d'événements OCSF.

Identifiant: Clé API d'organisation · Effet: Lecture seule

Affiche du JSONL par défaut — un événement par ligne — format directement ingéré par les collecteurs SIEM. La réponse contient un next_cursor ; renvoyez-le via --since pour paginer. À utiliser pour les reprises et requêtes ponctuelles.

OptionValeursDéfautEffet
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClé API d'organisation pour cet appel.
--since <cursor>Chaîne de curseuraucunUn next_cursor d'une réponse précédente. Ce n'est pas une date.
--from <time>Date/heure ISO ou epochaucunDébut de la fenêtre.
--to <time>Date/heure ISO ou epochaucunFin de la fenêtre.
--days <n>Entier positifaucunRemonte de ce nombre de jours. Exclusif avec --from.
--category <value>dlpaucunCatégorie d'événement. Les événements actuels utilisent dlp.
--severity <level>unknown | low | medium | high | criticalaucunTraité comme une gravité minimale, pas une correspondance exacte.
--limit <n>1-500100Taille de page. Validée avant la requête.
--format <format>jsonl | jsonjsonljsonl se redirige vers les collecteurs ; json renvoie une enveloppe avec 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

Interroge en continu et émet les nouveaux événements au fil de l'eau.

Identifiant: Clé API d'organisation · Effet: Lecture continue jusqu'à l'arrêt

S'exécute jusqu'à l'arrêt, en enregistrant sa position dans siem-cursors.json après chaque interrogation : un redémarrage reprend sans doublon ni perte. Il n'y a pas de flux temps réel derrière — c'est du polling. Donnez à chaque consommateur son propre --cursor-name pour éviter que deux pipelines se disputent la même position.

OptionValeursDéfautEffet
--api-key <key>zl_…[object Object]ZEUSLOCK_API_KEYClé API d'organisation pour cet appel.
--since <cursor>Chaîne de curseurcurseur enregistréRemplace la position enregistrée pour cette exécution.
--category <value>dlpaucunFait aussi partie de l'identité du curseur.
--severity <level>unknown…criticalaucunGravité minimale ; fait aussi partie de l'identité du curseur.
--limit <n>1-500100Taille de page par interrogation.
--interval <seconds>Nombre positif5Secondes entre deux interrogations.
--cursor-name <name>Tout textedefaultEspace de noms de la position enregistrée pour ce consommateur.
--reset-cursorBooléendésactivéIgnore la position enregistrée et rejoue depuis le début.
--max-polls <count>Entier positifaucunS'arrête après ce nombre de cycles au lieu de tourner indéfiniment. Utile en tâche planifiée.
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 — Outils d'IA non approuvés

Vue en lecture seule de la page Shadow AI. Disponible uniquement si Shadow AI est activé pour votre organisation ; sinon les commandes l'indiquent sans appeler l'API de données.

zeuslock shadow-ai stats

Indicateurs clés d'utilisation d'outils d'IA non approuvés.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Totaux et évolution d'une période à l'autre, pour savoir si l'usage non approuvé progresse après une annonce de politique.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--source <source>all | endpoint | browser | bothallOrigine de l'observation.
--status <status>all | sanctioned | shadowallshadow signifie que l'outil n'est pas approuvé.
--category <category>all | chatbot | coding_assistant | image_gen | agent | otherallCatégorie d'outil.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock shadow-ai stats
zeuslock shadow-ai stats --days 7 --status shadow --category chatbot

zeuslock shadow-ai tools

Liste les outils d'IA détectés dans votre environnement.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Outil, catégorie, statut de politique, source, nombre d'utilisateurs, de connexions et score de risque — la liste à traiter pour décider quoi autoriser ou bloquer.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--source <source>all | endpoint | browser | bothallOrigine de l'observation.
--status <status>all | sanctioned | shadowallshadow signifie que l'outil n'est pas approuvé.
--category <category>all | chatbot | coding_assistant | image_gen | agent | otherallCatégorie d'outil.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock shadow-ai tools --status shadow
zeuslock shadow-ai tools --category coding_assistant --json

zeuslock shadow-ai users

Liste les personnes utilisant des outils d'IA non approuvés.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Utilisateur, nombre d'outils distincts et outil le plus utilisé. Destiné à repérer les équipes qui ont besoin d'une alternative approuvée, pas à désigner des personnes.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock shadow-ai users --days 7 --json

zeuslock mcp — Activité Model Context Protocol

Ce à quoi les agents d'IA se sont connectés et ce qu'ils ont été autorisés à faire. Le backend ne stocke que des métadonnées assainies et des empreintes non réversibles : ni prompts ni charges utiles ne sont exposés ici.

zeuslock mcp stats

Indicateurs clés de l'activité MCP.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Événements, appels d'outils, blocages et alertes, serveurs actifs et utilisateurs concernés, groupés par transport, direction et méthode.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock mcp stats --days 7 --json

zeuslock mcp events

Liste les événements d'audit MCP.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Paginé à 50 lignes. Suivez next_cursor via --cursor pour parcourir une fenêtre plus large.

OptionValeursDéfautEffet
--days <days>7 | 30 | 9030Fenêtre d'historique.
--transport <transport>all | http | sse | stdioallMode de connexion de l'agent.
--direction <direction>all | client_to_server | server_to_clientallDirection du message.
--decision <decision>all | allow | alert | blockallDécision de la politique.
--method <method>tools/call…aucunNom exact de la méthode MCP.
--search <text>Tout texteaucunRecherche serveur, outil, utilisateur, méthode, nom d'hôte et chemin.
--cursor <cursor>Chaîne de curseuraucunContinue depuis une page précédente.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock mcp events --decision block
zeuslock mcp events --transport stdio --method tools/call --json

zeuslock mcp servers

Liste les serveurs MCP découverts dans votre environnement.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Un inventaire dédoublonné sur une fenêtre fixe de 90 jours — la réponse à « à quoi un agent s'est-il connecté ? ».

OptionValeursDéfautEffet
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock mcp servers --json

zeuslock deploy — Déployer sur une flotte, puis le prouver

zeuslock deploy generate (alias: gpo-config)

Génère les fichiers de configuration managée qui enrôlent les machines automatiquement.

Identifiant: Jeton d'accès CLI personnel · Effet: Écrit des fichiers locaux

N'écrit que des fichiers locaux — rien n'est envoyé à Active Directory, Intune ou Jamf. Déployez-les avec l'outil de votre choix : les machines arrivent déjà rattachées à votre organisation, sans configuration par utilisateur. Les fichiers contenant la clé API sont en mode 0600 ; la clé n'est jamais affichée ni écrite dans deployment-summary.json.

OptionValeursDéfautEffet
--artifact <set>all | extension | agentallFichiers à générer. Les artefacts d'extension exigent un plan Business ou Enterprise.
--browser <browser>all | chrome | edgeallS'applique uniquement aux artefacts d'extension.
--output <dir>Cheminzeuslock-deployRépertoire de sortie. Les fichiers de même nom sont écrasés.
--api-key <key>zl_…aucunClé à intégrer. Priorité la plus haute.
--key-id <id>Tout texteaucunUtilise une clé existante de keys list.
--create-key-name <name>Tout texteaucunCrée une nouvelle clé et l'intègre. Modifie l'état de l'organisation.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
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 votre organisation a plusieurs clés actives, la commande refuse de deviner — précisez --key-id, --api-key ou --create-key-name.

La configuration de l'extension est livrée en deux fichiers distincts à dessein : la politique navigateur contrôle l'installation, la clé API voyage dans le fichier de configuration managée. Déployez les deux, sinon l'extension s'installe puis demande à chaque utilisateur de la configurer.

zeuslock deploy agent-verify

Confirme que les machines se sont bien enrôlées et communiquent.

Identifiant: Jeton d'accès CLI personnel · Effet: Lecture seule

Sort en code non nul si aucun agent correspondant n'est dans l'état attendu, ce qui permet de conditionner un script de déploiement. Renvoie verified, offline, online ou not_found — la distinction entre « jamais arrivé » et « arrivé puis silencieux » indique si le problème vient du déploiement ou de la machine.

OptionValeursDéfautEffet
--agent-id <id>Tout texteaucunCorrespondance exacte d'identifiant.
--hostname <name>Tout texteaucunCorrespondance exacte du nom d'hôte, insensible à la casse.
--platform <platform>windows | macos | linuxaucunFiltre de plateforme.
--status <status>online | offline | anyonlineÉtat attendu. Utilisez any pour vérifier l'enrôlement sans exiger un heartbeat actif.
--jsonBooléendésactivéAffiche du JSON exploitable au lieu d'un tableau.
zeuslock deploy agent-verify --hostname LAPTOP-01
zeuslock deploy agent-verify --platform windows --status any --json

Dépannage

MessageSignificationAction
Not logged in. Run `zeuslock auth login` first.Aucun jeton personnel enregistré sur cette machine.Générez-en un sur la page CLI et lancez zeuslock auth login --token zlu_….
invalid CLI tokenLe jeton est révoqué, expiré, ou appartient à un autre environnement.Les jetons sont propres à un environnement : un jeton de préproduction renvoie 401 en production. Vérifiez ZEUSLOCK_API_URL, puis émettez un nouveau jeton.
API key is required.Une commande de contenu a été lancée sans clé API d'organisation.Un jeton personnel ne convient pas pour scan, anonymize, hook run ni SIEM. Lancez zeuslock auth api-key set.
Multiple active API keys are available.deploy generate ne devine pas quelle clé intégrer.Précisez --key-id, --api-key ou --create-key-name.
Une commande exige 90 ou 365 jours et refuse.Les longues fenêtres d'historique et l'export dépendent du plan.Un plan Business ou Enterprise est requis. Les fenêtres courtes restent disponibles.
Une commande semble bloquée.siem tail interroge jusqu'à l'arrêt ; c'est normal.Ctrl-C, ou utilisez --max-polls pour une exécution bornée.

Travailler en préproduction

Les identifiants sont propres à chaque environnement et ne sont pas interchangeables. Pointez la CLI vers la préproduction et authentifiez-vous avec un jeton de préproduction.

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

Ce que la CLI ne fait volontairement pas

La CLI reflète le tableau de bord et le backend au lieu d'inventer des fonctions. Les éléments suivants sont volontairement absents, pour éviter de les chercher :

AbsentRaison
Connexion e-mail/mot de passeL'endpoint de connexion impose un reCAPTCHA qu'un terminal ne peut pas résoudre.
Appliquer ou modifier des politiquesrules se limite à l'export et au diff ; les modifications restent dans le tableau de bord, où elles sont relues.
Configurer les destinations SIEMLes connexions Splunk, Sentinel et Elastic se gèrent dans le tableau de bord. La CLI lit seulement les événements.
Rotation d'une clé ou d'un jeton en une étapeIl n'existe pas d'endpoint de rotation atomique. Créez le remplacement, basculez le trafic, puis révoquez l'ancien.
Suppression d'utilisateurs en masseLe backend supprime un utilisateur à la fois, et les garde-fous s'appliquent à chacun.
Génération d'installeursdeploy generate produit des fichiers de configuration. Téléchargez les installeurs depuis le tableau de bord.