Référence des commandes CLI

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

CommandeRôle
auth loginConnexion e-mail/mot de passe (MFA pris en charge), jetons stockés
whoamiAffiche l'utilisateur authentifié
auth api-key set/status/clearEnregistre, vérifie ou supprime la clé API d'organisation
statusContexte CLI, santé du backend, contrôle de licence optionnel
scanAnalyse un fichier, un dossier ou stdin avec la politique DLP
anonymizeAnonymise un fichier texte UTF-8
hook install / runHook Git pre-commit qui analyse les fichiers indexés
incidents list / stats / exportIncidents, statistiques et export CSV/JSON
agents list / revokeVisibilité et révocation de la flotte d'agents
extensions statusExtensions de navigateur actives
users list / removeGouvernance des utilisateurs de l'organisation
keys list / create / revokeGestion des clés API d'organisation
shadow-ai stats / tools / usersDonnées de découverte Shadow AI
mcp stats / events / serversDonnées de surveillance MCP
siem pull / tailRécupération d'événements SIEM OCSF (une page ou en continu)
deploy gpo-config / agent-verifyArtefacts de déploiement et vérification d'enrôlement
rules get / diffExport 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.

IdentifiantUtilisé par
Session utilisateur / jeton d'accès CLIwhoami, 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

VariableDescription
ZEUSLOCK_API_URLURL du backend ; défaut https://api.zeuslock.ai
ZEUSLOCK_API_TOKENJeton Bearer pour les commandes authentifiées utilisateur (ex. jeton d'accès CLI)
ZEUSLOCK_API_KEYClé API d'organisation pour les commandes machine
ZEUSLOCK_EMAIL / ZEUSLOCK_PASSWORD / ZEUSLOCK_MFA_CODEEntrées non interactives pour auth login (CI, automatisation)
ZEUSLOCK_CONFIG_DIRRemplace 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

OptionValeursDéfautDescription
--email / -u, --usernameE-mail du compteZEUSLOCK_EMAILDemandé si absent
--passwordZEUSLOCK_PASSWORDDemandé interactivement si omis ; jamais stocké
--mfa-codeZEUSLOCK_MFA_CODEUtilisé si le backend exige la MFA ; sinon demandé
--recaptcha-tokenaucunePour les backends imposant reCAPTCHA à la connexion
--api-urlURLZEUSLOCK_API_URLBackend cible de l'authentification
--jsonBooléendé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-keyZEUSLOCK_API_KEY → clé enregistrée.

zeuslock status

zeuslock status
zeuslock status --api-key zl_your_key_here --require-license
zeuslock status --json
OptionValeursDéfautDescription
--api-keyClé API d'organisationÀ défaut : ZEUSLOCK_API_KEY, puis la clé enregistréeActive la validation de licence via /api/v1/validate-license
--require-licenseBooléendésactivéSortie non nulle sauf si santé, disponibilité et licence passent
--jsonBooléendé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.

OptionValeursDéfautDescription
[path] / --stdinFichier, dossier ou stdinrequisMutuellement exclusifs ; stdin est envoyé comme texte
--api-keyClé API d'organisationÀ défaut : ZEUSLOCK_API_KEY, puis la clé enregistréeEnvoyée en X-API-Key
--fail-onalert, block, neverblockSeuil de code de sortie : alert échoue sur alert+block ; never jamais
--source / --platform / --hostname / --path / --user-emailTexte librecli, cli, nom d'hôte local, /cli/<nom>, aucuneMétadonnées attachées à l'incident
--include-sensitiveBooléendésactivéInclut les tables d'anonymisation dans la sortie JSON
--jsonBooléendé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.

OptionValeursDéfautDescription
<file>Fichier texte UTF-8requisEnvoyé comme {"text": …}
--api-keyClé API d'organisationÀ défaut : ZEUSLOCK_API_KEY, puis la clé enregistréeEnvoyée en X-API-Key
--outputChemin accessible en écriturestdoutÉcrit le texte anonymisé dans un fichier
--include-sensitive-mapBooléendésactivéInclut les substitutions original→masqué dans la sortie JSON
--jsonBooléendé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é.

OptionValeursDéfautDescription
--repoChemin du dépôt Gitrépertoire courantRésolu via git rev-parse
install --fail-onalert, blockalertÉcrit dans le hook généré
run --fail-onalert, block, neveralertSeuil de blocage pour une exécution manuelle
install --forceBooléendésactivéRemplace un hook pre-commit existant
run --api-key / run --user-emailÀ défaut : ZEUSLOCK_API_KEY, puis la clé enregistréeAuthentification et attribution de l'incident
--jsonBooléendé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
OptionValeursDéfautDescription
list/export --days7, 30, 903090 et l'export exigent Business/Enterprise
stats --days1, 7, 30, 36530Nécessite le plan Business ou Enterprise
--severitycritical, warningaucunewarning couvre high, medium et low
--searchTexte libreaucuneRecherche e-mail, URL et type de détection
--jailbreakBooléendésactivéUniquement les incidents avec détection jailbreak_attempt
export --format / --outputcsv, jsoncsv / incidents-<timestamp>Valeurs de jours arbitraires et --from/--to non pris en charge (parité tableau de bord)
--jsonBooléendé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
OptionValeursDéfautDescription
agents list --statusall, online, offlineallReflète le sélecteur de statut du tableau de bord
agents list --searchTexte libreaucuneRecherche nom d'hôte et plateforme ; update_available si un agent plus récent existe
agents revoke <agent_id>Id exact depuis agents listrequisIgnore la demande de confirmation (nécessaire en script)
extensions statusExtensions actives avec compteurs (fenêtre d'activité de 30 minutes)
--json / --yesBooléendé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
OptionValeursDéfautDescription
users list --search / --roleTexte libreaucuneRôles issus de GET /api/users/roles (selon le plan)
users remove <user>Id utilisateur, user_id ou e-mailrequisRefuse l'auto-suppression et la suppression du dernier admin actif
keys list --statusall, active, revokedallClés complètes masquées sauf --show-secret
keys create --nameTexte librerequisAffiche la clé complète retournée une fois
keys revoke <key_id>Id de clé depuis keys listrequisRefuse les clés déjà révoquées (un second DELETE supprimerait définitivement)
--yes / --jsonBooléendé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.

OptionValeursDéfautDescription
--days7, 30, 9030Fenêtres du tableau de bord (mcp servers fixé à 90)
shadow-ai --sourceall, endpoint, browser, bothallOù l'outil a été détecté
shadow-ai --status / --categorysanctioned/shadow; chatbot, coding_assistant, image_gen, agent, otherallValeurs de filtre du tableau de bord
mcp events --transport / --direction / --decisionhttp/sse/stdio; client_to_server/server_to_client; allow/alert/blockallFiltres côté serveur ; page de 50 (parité tableau de bord)
mcp events --method / --search / --cursorex. tools/call ; texte libre ; curseur opaqueaucune--cursor reprend au next_cursor d'une page --json précédente
--jsonBooléendé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.

OptionValeursDéfautDescription
--api-keyClé API d'organisationÀ défaut : ZEUSLOCK_API_KEY, puis la clé enregistréeEnvoyée en X-API-Key
--sincenext_cursor du backendcurseur enregistré (tail)Un curseur, pas une date
pull --from / --to / --daysDate ISO, epoch ou nombre de joursaucune--days devient start_time ; exclusif avec --from
--category / --severitychaîne de catégorie ; unknowncriticalaucuneLa sévérité est un minimum ; les événements DLP utilisent la catégorie dlp
--limit1500100Taille de page par requête
pull --formatjsonl, jsonjsonlJSON enveloppe la page
tail --interval / --cursor-name / --reset-cursorsecondes ; nom stable ; booléen5 / 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.

OptionValeursDéfautDescription
gpo-config --artifactall, extension, agentallGroupes d'artefacts à générer
gpo-config --browserall, chrome, edgeallArtefacts extension uniquement
gpo-config --outputRépertoirezeuslock-deployLes fichiers homonymes sont écrasés
gpo-config --api-key / --key-id / --create-key-nameaucuneClé à intégrer dans les fichiers générés (jamais dans le résumé)
agent-verify --agent-id / --hostname / --platformid exact ; nom d'hôte insensible à la casse ; windows/macos/linuxaucuneFiltres d'identité sur la flotte
agent-verify --statusonline, offline, anyonlineÉtat attendu ; résultats : verified, offline, online, not_found
--jsonBooléendé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.

OptionValeursDéfautDescription
--scopepolicies, default, policypoliciespolicies = système de politiques + groupes ; default = ruleset de la politique par défaut ; policy = une politique
--policy-idId de politique backendrequis pour le scope policy
get --format / --outputyaml, jsonyaml / stdout
diff [file]Export YAML ou JSONzeuslock.rules.yaml|yml|jsondiff --format json pour l'automatisation

Codes de sortie

CommandeNon nul quand
scan / hook runLa décision backend atteint le seuil --fail-on
rules diffDes écarts sont détectés
deploy agent-verifyLa vérification n'est pas verified
status --require-licenseSanté, disponibilité ou licence en échec
Toutes les commandesErreurs d'authentification ou de requête