agenteye interroga i tuoi dati (sessioni, registri di eventi, valutazioni) e amministra la tua organizzazione (chiavi API, utenti, impostazioni, avvisi, incidenti, query salvate), quindi usalo quando desideri automatizzare un controllo, integrare l’osservabilità in CI, o permettere a un agente di codifica di ispezionare la produzione. Ogni comando supporta un flag --json, quindi funziona ugualmente bene per te al prompt o per un agente di codifica (Claude Code, Cursor) che esegue e analizza il risultato.
Con un solo binario puoi:
- Leggere i tuoi dati:
sessions,events,evals,errors(filtra per ora, agente, ambiente, punteggio). - Gestire la tua organizzazione:
keys,users,settings,alerts,incidents. - Eseguire analitiche: SQL salvate e un motore di query ad hoc (
query). - Chiedere all’assistente AI: lo stesso analista di sola lettura con cui chatti nella dashboard (
agent).
Nota: Questo è il CLIagenteye, uno strumento diverso dal daemon del collettore (agenteye-collector). Il CLI comunica con la tua dashboard; il collettore invia gli eventi al server.
Avvio rapido
Dai nulla al tuo primo risultato in quattro righe. Punta il CLI sulla tua dashboard, accedi, conferma chi sei, quindi estrai l’ultimo giorno di esecuzioni:jq per affettarlo, o elimina --json per una tabella colorata e riquadrata. Ogni riga riporta lo stato dell’esecuzione e, se un valutatore l’ha valutata, i punteggi delle sue metriche (abbreviati qui):
Installazione
Il CLI è un pacchetto PyPI pubblico denominatoagenteye. Installalo in un ambiente isolato in modo che abbia sempre le sue dipendenze:
agenteye:
Nota: L’SDK Python di Failproof AI Observability utilizza anche il nome di distribuzioneagenteye. L’installazione del CLI conpipxouv tool(piuttosto chepip installin un virtualenv condiviso) impedisce conflitti tra i due. Un semplicepip install agenteyeva bene solo se l’SDK non è installato nello stesso ambiente.
Autenticazione
Il CLI si autentica alla dashboard con un codice monouso inviato per email:~/.agenteye/cli.json (leggibile solo da te, modalità 0600) ed è valido per 24 ore per impostazione predefinita. Quando scade, esegui di nuovo agenteye login.
whoami non genera mai errori per una sessione mancante o scaduta; invece riporta logged_in: false, quindi uno script o agente può controllare lo stato di autenticazione in sicurezza (può comunque uscire con codice diverso da zero se nessuna URL di base è impostata o la dashboard non è raggiungibile).
Requisiti: la tua email deve essere autorizzata ad accedere alla dashboard (chiedi all’amministratore di Failproof AI Observability), e la dashboard deve essere raggiungibile al suo URL di base (vedi Configurazione). Se richiedi un codice e nessuno arriva, probabilmente la tua email non è ancora abilitata per l’accesso alla dashboard.
Scelta della tua organizzazione (multi-tenant)
Se il tuo account appartiene a più di un’organizzazione, scegli quello attivo al login; viene salvato e utilizzato per ogni comando successivo:--org. Se appartieni a più organizzazioni e non ne scegli una, il CLI le elenca e ti chiede di eseguire di nuovo con --org <slug>. L’organizzazione attiva viene inviata alla dashboard ad ogni richiesta, e i tuoi permessi vengono risolti per organizzazione; agenteye whoami mostra l’organizzazione attiva, i tuoi permessi in essa, e tutti i tuoi memberships.
Configurazione
L’ordine di risoluzione è flag → variabile di ambiente → file di configurazione. Non c’è valore predefinito; devi puntare il CLI sulla tua dashboard, sia per comando (
--base-url https://agenteye.example.com) che una volta tramite l’ambiente (viene anche salvato dopo il tuo primo login):
AGENTEYE_HOME (la stessa convenzione utilizzata dall’SDK e dal collettore); se impostato, cli.json si trova in $AGENTEYE_HOME/cli.json.
TLS autofirmato o interno
Se la tua dashboard è servita su HTTPS con un certificato autofirmato o interno (ad esempio, un nome host di bilanciamento del carico non elaborato), la verifica TLS lo rifiuta con un erroreCERTIFICATE_VERIFY_FAILED. Passa --insecure per saltare la verifica del certificato:
--insecure è salvato in cli.json quando accedi, quindi i comandi successivi saltano la verifica automaticamente; non devi ripetere il flag. Passa --secure per una singola chiamata verificata, o per salvare la verifica di nuovo al tuo prossimo login. Il CLI stampa un avviso a stderr prima di qualsiasi comando che contatta la dashboard mentre la verifica è disabilitata. Saltare la verifica rimuove la protezione contro gli attacchi man-in-the-middle; assicurati di fidarti del percorso di rete verso la tua dashboard (VPN, subnet privata, ecc.) prima di affidarti ad essa.
Telemetria e privacy
Nota: Il CLI spedito non invia alcuna telemetria di utilizzo oggi. Un interruttore di disabilitazione principale è attivato, quindi nulla viene trasmesso indipendentemente dal tuo ambiente. La sezione sottostante descrive la capacità di esclusione per se e quando la telemetria fosse mai abilitata.Anche se abilitata, la telemetria sarebbe solo analitiche di utilizzo anonime, mai i tuoi dati di agente, sessione o evento:
- Nessun dato di agente, sessione o evento lascia mai la tua infrastruttura. Solo l’utilizzo del CLI verrebbe segnalato: il nome del comando e sottocomando (ad esempio
keys create), i nomi dei flag che hai usato (mai i loro valori), stato di successo/uscita e durata, più un evento per-azione per le mutazioni (ad esempioapi_key_created,query_run) contenente solo nomi/enum statici e conteggi grossolani. L’URL della tua dashboard, il token di sessione, l’email, lo slug dell’organizzazione, gli id delle risorse, SQL, i segreti delle chiavi e i filtri delle query non verrebbero mai inviati. Gli operatori sarebbero identificati solo da un id interno opaco, mai per email. - Escludi in anticipo impostando
AGENTEYE_ANALYTICS_DISABLED=1nell’ambiente del CLI (il CLI rispetta anche la convenzione cross-toolDO_NOT_TRACK=1). Questo entra in vigore nel momento in cui la telemetria viene mai attivata, quindi un ambiente consapevole della privacy può rimanere escluso in modo permanente. - Se la telemetria fosse abilitata, il CLI invierebbe direttamente a PostHog (
https://us.i.posthog.com); una macchina con quell’host bloccato non invierebbe silenziosamente nulla e il CLI ne sarebbe illeso.
Opzioni globali e convenzioni
Leggi questa sezione una volta; si applica a ogni comando.- Le opzioni globali vanno PRIMA del comando.
agenteye --json sessionsè corretto;agenteye sessions --jsonè un errore di utilizzo. I globali sono--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet, e--no-color. --jsonstampa pure JSON su stdout, e nulla di più. Le righe di stato umano, gli avvisi e gli errori vanno su stderr, quindi un’acquisizione di stdout--jsonrimane pulita da indirizzare injqanche quando viene mostrata una riga di stato. Senza--jsonottieni una visualizzazione riquadrata e colorata per gli occhi umani.- Scopri con
--help. Ogni comando e sottocomando ha--help(e l’alias-h):agenteye -h,agenteye sessions -h,agenteye keys create -h. L’aiuto di primo livello elenca anche i codici di uscita e le opzioni globali. Non c’è dump di superficie leggibile da macchina globale; usa per-comando--help, più il dominio-specificoagenteye query schemaeagenteye settings schemaper quei due registri. - Le conferme auto-saltano per script e agenti. I comandi create/update/delete chiedono “sei sicuro?” in un terminale interattivo, ma auto-saltano quel prompt sotto
--jsono quando stdin non è un TTY (un TTY è una sessione di terminale interattiva; una pipe o un runner CI non lo è), quindi script e agenti non rimangono mai bloccati. Passa--yes/-yper saltarlo esplicitamente. Poiché il prompt non si attiva per un agente, un agente dovrebbe confermare le azioni distruttive con l’umano per primo. - Paginazione: i risultati sono dal più recente al meno recente e paginati per cursore (ogni pagina restituisce un token che usi per recuperare il prossimo).
--limit N(alias-n) limita le righe e preimposta a 50;--allauto-pagina (in chunk di 200 righe) fino a--limit, quindi un bare--allsi ferma ancora a 50. Per un sweep completo passa un limite esplicito alto:--all --limit 1000.--page-size Ncontrolla il chunk per-richiesta (max 200);--cursor <id>riprende dalnext_cursordi una pagina precedente. - Filtri di tempo:
--sinceaccetta una finestra relativa:15m,1h,6h,24h,7d, oall(i preset della dashboard). Per un intervallo più lungo o personalizzato (diciamo gli ultimi 30 giorni), usa--from/--to: timestamp UTC ISO-8601 espliciti conTe un fuso orario (ad esempio2026-06-01T00:00:00Z) che ignorano--since. Un valore separato da spazi o senza fuso orario è un errore di utilizzo. --fields a,b,c(suevents,sessions,evals,errors) limita l’output a quelle chiavi, sia per la tabella che per--json. I nomi sconosciuti vengono rifiutati con l’elenco valido, un modo economico per scoprire i nomi dei campi.--file payload.json(o--file -per leggere stdin) fornisce un corpo di richiesta JSON completo dove una risorsa ha una forma complessa (sualerts create/update,settings set, eusers create/update). SQL di query salvate usa--sql @file.sqlinvece.- I filtri multi-valore sono comma-separated → abbinati come un insieme (unione all’interno di un filtro, AND tra i filtri):
--event-type tool_use,tool_result. Le opzioni click non sono variadiche, quindi--add a bsi rompe. Usa--add a,b, ripeti il flag (--add a --add b), o circonda con virgolette (--add "a b").
Riferimento dei comandi
Userai questi 5 comandi più spesso
La maggior parte del lavoro quotidiano viene eseguita attraverso una manciata di comandi di lettura. Inizia qui, quindi raggiungi la superficie completa sottostante quando ne hai bisogno:Tutto quello che il CLI può fare
La superficie completa segue. Il CLI ha 18 comandi di primo livello. Tutti i comandi di lettura accettano--json e le opzioni globali sopra; esegui agenteye <command> -h (o <command> <subcommand> -h) per l’elenco di flag esaustivo e la forma JSON di uno qualsiasi.
Identità: login · logout · whoami · orgs · version · help
orgs ispeziona e cambia il tenant attivo:
Osserva (sola lettura): events · sessions · evals · errors · list
Nessuno di questi ha bisogno di una conferma. Filtri condivisi: --session-id, --agent-id, --env (non --environment), e l’intervallo di tempo (--since / --from / --to).
--score KEY:MIN..MAX (su evals, non sessions) è ripetibile e AND-combinato; entrambi i limiti sono opzionali (..0.5 significa ≤ 0.5, 0.9.. significa ≥ 0.9). Fino a 20 filtri di punteggio per richiesta. evals --scores-full è un flag di visualizzazione per la tabella umana solamente; mostra ogni coppia di punteggio invece dei primi pochi più un conteggio +N. Non ha effetto sotto --json, che restituisce sempre l’oggetto di punteggio completo. Per leggere una sessione end-to-end, combina la traccia di evento con la sua valutazione:
Gestisci (gated da permessi): keys · users · settings · alerts · incidents
keys: chiavi API. Il segreto viene generato localmente, inviato al server (che memorizza solo un hash), e mostrato una volta su create/regenerate; catturalo allora. Con --json appare solo nel campo key. Referenziato per nome.
(permission-set ∪ --add) − --remove. I token sono slug:action (ad esempio events:read) o slug:action.action per espandere diversi su una risorsa (events:read.add → events:read, events:add). Preset: read-only, standard, admin. I permessi solo per umani (keys:update) non possono essere concessi a una chiave.
users: membri dell’organizzazione, referenziati per email (è anche accettato un id UUID).
settings: un registro fisso (leggi e cambia le chiavi esistenti; non puoi crearne di nuove).
alerts: definizioni di avviso, referenziate per nome. create accetta un NAME posizionale più flag o un corpo JSON completo via --file.
incidents: incidenti di avviso, referenziati per id (id brevi accettati). show stampa il registro completo di attività; leggi prima di agire.
Analitiche e assistente: query · agent
query: SQL salvato contro il tuo store di analitiche più un runner ad hoc. Le query salvate sono referenziate per nome; l’SQL viene validato lato server (solo SELECT/WITH, timeout di statement, cap di riga).
agent: parla con l’assistente AI incorporato (lo stesso analista di sola lettura con cui puoi chattare nella dashboard). Le chat sono referenziate da uno short chat-id (risoluzione dei prefissi).
Codici di uscita
Questi rendono il CLI sicuro per scripting: un agente di codifica può dirammarsi su un
4 per chiederti di ri-autenticarti, o un 5 per visualizzare il permesso mancante. Vedi Ricette CLI per agenti per gestione dei codici di uscita e forme di output JSON.
Prossimi passaggi
- Ricette CLI per agenti: pattern di query copia-incolla, one-liner
jq, proiezioni--fields, gestione dei codici di uscita, e forme di output JSON, scritti per agenti di codifica che guidano il CLI. - Skill agent CLI: compacchia questo CLI come una skill installabile di Claude Code / Codex in modo che un agente di codifica guidi l’osservabilità di Failproof AI da richieste in linguaggio naturale.
- Chiavi API: il modello di permessi dietro
keys create --add …. - Assistente AI: abilitazione dell’assistente con cui
agent askparla.

