agenteye) est un client terminal pour votre déploiement AgentEye. Elle interroge vos données (sessions, journaux d’événements, évaluations) et administre l’organisation (clés API, utilisateurs, paramètres, alertes, incidents, requêtes sauvegardées) — tout ce que fait le tableau de bord, depuis un script ou un agent de codage. Chaque commande accepte un indicateur --json, ce qui la rend aussi bien adaptée à une utilisation humaine en ligne de commande qu’à un agent de codage (Claude Code, Cursor) qui l’exécute et analyse le résultat.
Il s’agit de la CLIagenteye, un outil distinct du démon collecteur (agenteye-collector). La CLI communique avec votre tableau de bord ; le collecteur envoie les événements au serveur. Consultez Installation du collecteur pour le collecteur.
Installation
La CLI est publiée sur PyPI public sous le nomagenteye. Comme le SDK Python AgentEye utilise également le nom de distribution agenteye, installez la CLI dans un environnement isolé (pipx ou uv tool) pour éviter tout conflit dans un même virtualenv :
pip install agenteye fonctionne également si vous n’installez pas le SDK Python dans le même environnement. La CLI nécessite Python 3.10+ et n’a pas besoin de jeton GitHub ; c’est un paquet public.
La commande installée est agenteye :
Authentification
La CLI s’authentifie auprès du tableau de bord via un code à usage unique envoyé par e-mail :~/.agenteye/cli.json (accessible uniquement par vous, mode 0600) et est valide 24 heures par défaut. À expiration, relancez agenteye login.
whoami ne génère jamais d’erreur en cas de session manquante ou expirée — il indique logged_in: false à la place, ce qui permet à un script ou agent de vérifier l’état d’authentification sans risque (il peut tout de même retourner un code non nul si aucune URL de base n’est définie ou si le tableau de bord est inaccessible).
Prérequis : votre e-mail doit être autorisé à se connecter au tableau de bord (contactez votre administrateur AgentEye), et le tableau de bord doit être accessible à son URL de base (voir Configuration). Si vous demandez un code et qu’il n’arrive pas, votre e-mail n’est probablement pas encore activé pour l’accès au tableau de bord.
Choisir son organisation (multi-tenant)
Si votre compte appartient à plusieurs organisations, choisissez l’organisation active lors de la connexion — elle est sauvegardée et utilisée pour toutes les commandes ultérieures :--org entièrement. Si vous appartenez à plusieurs et n’en choisissez pas, la CLI les liste et vous demande de relancer avec --org <slug>. L’organisation active est transmise au tableau de bord à chaque requête, et vos permissions sont résolues par organisation — agenteye whoami affiche l’organisation active, vos permissions dans celle-ci, ainsi que toutes vos appartenances.
Configuration
| Paramètre | Indicateur | Variable d’environnement | Valeur par défaut |
|---|---|---|---|
| URL de base du tableau de bord | --base-url | AGENTEYE_DASHBOARD_URL | requis (aucune valeur par défaut) |
| Organisation/tenant actif | --org | AGENTEYE_ORG | choisi à la connexion ; sauvegardé dans ~/.agenteye/cli.json |
| Jeton de session | --token | AGENTEYE_CLI_TOKEN | depuis ~/.agenteye/cli.json |
| Sortie JSON | --json | AGENTEYE_CLI_JSON | désactivé |
| Ignorer la vérification TLS | --insecure / --secure | AGENTEYE_INSECURE | désactivé (sauvegardé à la connexion) |
| Délai d’attente des requêtes (secondes) | --timeout | — | 30 |
| Désactiver la télémétrie d’utilisation | (aucun) | AGENTEYE_ANALYTICS_DISABLED (ou DO_NOT_TRACK) | désactivé (télémétrie activée) |
--base-url https://agenteye.example.com), soit une fois via l’environnement (elle est également sauvegardée après votre première login) :
AGENTEYE_HOME (la même convention utilisée par le SDK et le collecteur) ; s’il est défini, cli.json se trouve dans $AGENTEYE_HOME/cli.json.
TLS auto-signé ou interne
Si votre tableau de bord est servi en HTTPS avec un certificat auto-signé ou interne (par exemple, un nom d’hôte de répartiteur de charge brut), la vérification TLS le rejette avec une erreurCERTIFICATE_VERIFY_FAILED. Passez --insecure pour ignorer la vérification du certificat :
--insecure est sauvegardé dans cli.json lors de la connexion, de sorte que les commandes ultérieures ignorent automatiquement la vérification ; vous n’avez pas à répéter l’indicateur. Passez --secure pour un appel vérifié ponctuel, ou pour réactiver la vérification lors de votre prochaine connexion. La CLI affiche un avertissement sur stderr avant toute commande qui contacte le tableau de bord avec la vérification désactivée. L’ignorance de la vérification supprime la protection contre les attaques de type man-in-the-middle ; assurez-vous de faire confiance au chemin réseau vers votre tableau de bord (VPN, sous-réseau privé, etc.) avant de vous en remettre à cette option.
Télémétrie et confidentialité
La CLI envoie des analyses d’utilisation anonymes au service d’analyse d’Exosphere (PostHog) : quelles commandes sont exécutées (p. ex.sessions, keys create), si elles ont réussi, et combien de temps elles ont pris. Ce signal d’utilisation informe les décisions sur les fonctionnalités à prioriser.
- Aucune donnée d’agent, de session ou d’événement ne quitte jamais votre infrastructure. Seule l’utilisation de la CLI est rapportée : le nom de la commande et de la sous-commande (p. ex.
keys create), les noms des indicateurs utilisés (jamais leurs valeurs), le statut de succès/sortie, et la durée — plus un événement par action pour les mutations (p. ex.api_key_created,query_run) ne portant que des noms/énumérations statiques et des comptages grossiers. Votre URL de tableau de bord, jeton de session, e-mail, slug d’organisation, identifiants de ressources, SQL, secrets de clés et filtres de requêtes ne sont jamais envoyés. Les opérateurs sont identifiés uniquement par un identifiant interne opaque, jamais par e-mail. - La télémétrie est activée par défaut. Pour la désactiver, définissez
AGENTEYE_ANALYTICS_DISABLED=1dans l’environnement de la CLI (la CLI respecte également la convention cross-outilDO_NOT_TRACK=1). - La CLI envoie directement à PostHog (
https://us.i.posthog.com). La machine exécutant la CLI doit avoir un accès sortant vers cet hôte ; si elle est bloquée, la télémétrie ne fait rien silencieusement (l’envoi est limité dans le temps pour ne jamais retarder ni interrompre une commande) et la CLI n’est pas affectée.
Options globales et conventions
Lisez ceci une fois ; cela s’applique à toutes les commandes.- Les options globales se placent AVANT la commande.
agenteye --json sessionsest correct ;agenteye sessions --jsonest une erreur d’utilisation. Les options globales sont--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet, et--no-color. --jsonaffiche du JSON pur sur stdout, et rien d’autre. Les lignes de statut humaines, les avertissements et les erreurs vont sur stderr, de sorte qu’une capture stdout--jsonreste propre pour être transmise àjqmême quand une ligne de statut est affichée. Sans--json, vous obtenez une vue encadrée et colorisée pour les yeux humains.- Découverte avec
--help. Chaque commande et sous-commande dispose de--help(et de l’alias-h) :agenteye -h,agenteye sessions -h,agenteye keys create -h. L’aide de niveau supérieur liste également les codes de sortie et les options globales. Il n’y a pas de surface machine-readable globale ; utilisez--helppar commande, ainsi queagenteye query schemaetagenteye settings schemaspécifiques au domaine pour ces deux registres. - Les confirmations sont ignorées automatiquement pour les scripts et les agents. Les commandes de création/mise à jour/suppression demandent une confirmation dans un terminal interactif, mais ignorent automatiquement cette invite sous
--jsonou quand stdin n’est pas un TTY — les scripts et les agents ne restent donc jamais bloqués. Passez--yes/-ypour l’ignorer explicitement. Comme l’invite ne se déclenche pas pour un agent, celui-ci doit confirmer les actions destructives avec l’humain au préalable. - Pagination : les résultats sont les plus récents en premier et paginés par curseur.
--limit N(alias-n) limite les lignes et vaut 50 par défaut ;--allpagine automatiquement (par blocs de 200 lignes) jusqu’à--limit— ainsi un simple--alls’arrête toujours à 50. Pour un balayage complet, passez une limite explicite élevée :--all --limit 1000.--page-size Ncontrôle le bloc par requête (max 200) ;--cursor <id>reprend depuis lenext_cursord’une page précédente. - Filtres de temps :
--sinceprend une fenêtre relative —15m,1h,6h,24h,7d,30d, ouall(les préréglages du tableau de bord).--from/--toprennent des horodatages UTC ISO-8601 explicites avecTet un fuseau horaire (p. ex.2026-06-01T00:00:00Z) pour une plage personnalisée et remplacent--since; une valeur séparée par un espace ou sans fuseau horaire est une erreur d’utilisation. --fields a,b,c(surevents,sessions,evals,errors) restreint la sortie à ces clés, aussi bien pour le tableau que pour--json. Les noms inconnus sont rejetés avec la liste valide — un moyen simple de découvrir les noms de champs.--file payload.json(ou--file -pour lire stdin) fournit un corps de requête JSON complet quand une ressource a une forme complexe — suralerts create/update,settings set, etusers create/update. Le SQL de requête sauvegardée utilise plutôt--sql @file.sql.- Les filtres multi-valeurs sont séparés par des virgules → correspondance en tant qu’ensemble (union au sein d’un filtre, ET entre les filtres) :
--event-type tool_use,tool_result. Les options Click ne sont pas variadiques, donc--add a béchoue — utilisez--add a,b, répétez l’indicateur (--add a --add b), ou utilisez des guillemets (--add "a b").
Référence des commandes
La CLI dispose de 18 commandes de niveau supérieur. Toutes les commandes de lecture acceptent--json et les options globales ci-dessus ; exécutez agenteye <commande> -h (ou <commande> <sous-commande> -h) pour la liste exhaustive des indicateurs et la forme JSON de chaque commande.
Identité — login · logout · whoami · orgs · version · help
orgs inspecte et change le tenant actif :
Observation (lecture seule) — events · sessions · evals · errors · list
Aucune de ces commandes ne nécessite de confirmation. Filtres partagés : --session-id, --agent-id, --env (pas --environment), et la plage de temps (--since / --from / --to).
--score KEY:MIN..MAX (sur evals, pas sessions) est répétable et combiné en ET ; chaque borne est optionnelle (..0.5 signifie ≤ 0.5, 0.9.. signifie ≥ 0.9). Jusqu’à 20 filtres de score par requête. evals --scores-full retourne l’objet score complet plutôt que le résumé. Pour lire une session de bout en bout, combinez la piste d’événements avec son évaluation :
Gestion (soumise aux permissions) — keys · users · settings · alerts · incidents
keys — Clés API. Le secret est généré localement, envoyé au serveur (qui ne stocke qu’un hachage), et affiché une seule fois lors de la création/régénération — capturez-le immédiatement. Avec --json, il n’apparaît que dans le champ key. Référencées par nom.
(permission-set ∪ --add) − --remove. Les jetons sont slug:action (p. ex. events:read) ou slug:action.action pour en développer plusieurs sur une ressource (events:read.add → events:read, events:add). Préréglages : read-only, standard, admin. Les permissions réservées aux humains (keys:update) ne peuvent pas être accordées à une clé.
users — membres de l’organisation, référencés par e-mail (un identifiant UUID est également accepté).
settings — un registre fixe (vous lisez et modifiez les clés existantes ; vous ne pouvez pas en créer de nouvelles).
alerts — définitions d’alertes, référencées par nom. create prend un NOM positionnel plus des indicateurs ou un corps JSON complet via --file.
incidents — incidents d’alerte, référencés par identifiant (les identifiants courts sont acceptés). show affiche le journal d’activité complet — lisez-le avant d’agir.
Analytique et assistant — query · agent
query — SQL ClickHouse sauvegardé plus un exécuteur ad hoc. Les requêtes sauvegardées sont référencées par nom ; le SQL est validé côté serveur (SELECT/WITH uniquement, délai d’expiration des instructions, limite de lignes).
agent — l’assistant intégré du tableau de bord (le même analyste en lecture seule avec lequel vous pouvez discuter dans le tableau de bord). Les conversations sont référencées par un identifiant court (résolution par préfixe).
Codes de sortie
| Code | Signification |
|---|---|
| 0 | Succès |
| 1 | Erreur inattendue (p. ex. le tableau de bord a retourné un 5xx) |
| 2 | Erreur d’utilisation (arguments invalides, commande/indicateur inconnu, collision de noms) |
| 3 | Impossible d’atteindre le tableau de bord |
| 4 | Non connecté ou session expirée ; exécutez agenteye login |
| 5 | Authentifié, mais votre compte n’a pas la permission requise (le message la nomme) |
| 6 | La ressource demandée est introuvable (p. ex. identifiant de session ou d’incident inconnu) |
4 pour vous demander de vous ré-authentifier, ou sur un 5 pour exposer la permission manquante. Consultez Recettes CLI pour agents pour des modèles de gestion des codes de sortie et des formes de sortie JSON.
Voir aussi
- Recettes CLI pour agents — motifs de requêtes prêts à l’emploi, commandes
jqen une ligne, projections--fields, gestion des codes de sortie et formes de sortie JSON, écrits pour les agents de codage pilotant la CLI. - Compétence CLI AgentEye — packager cette CLI comme une compétence installable Claude Code / Codex pour qu’un agent de codage pilote AgentEye depuis des requêtes en langage naturel.
- Clés API — le modèle de permissions derrière
keys create --add …. - Assistant IA — activation de l’assistant qu’
agent askutilise.

