agenteye CLI fragt deine Daten ab (Sessions, Event-Logs, Evaluierungen) und verwaltet deine Organisation (API-Keys, Nutzer, Einstellungen, Alerts, Incidents, gespeicherte Abfragen) – greife darauf zurück, wenn du eine Prüfung automatisieren, Observability in CI einbinden oder einen Coding-Agenten die Produktion inspizieren lassen möchtest. Jeder Befehl unterstützt ein --json-Flag, sodass er gleichermaßen für dich an der Eingabeaufforderung oder für einen Coding-Agenten (Claude Code, Cursor) funktioniert, der das Ergebnis parst.
Mit einer einzigen Binary kannst du:
- Deine Daten lesen:
sessions,events,evals,errors(gefiltert nach Zeit, Agent, Umgebung, Score). - Deine Organisation verwalten:
keys,users,settings,alerts,incidents. - Analysen ausführen: gespeichertes SQL und einen Ad-hoc-Query-Runner (
query). - Den KI-Assistenten befragen: denselben schreibgeschützten Analysten, mit dem du im Dashboard chattest (
agent).
Hinweis: Dies ist dieagenteyeCLI, ein anderes Werkzeug als der Collector-Daemon (agenteye-collector). Die CLI kommuniziert mit deinem Dashboard; der Collector sendet Events an den Server.
Schnellstart
Von null zum ersten Ergebnis in vier Zeilen. Weise die CLI auf dein Dashboard, melde dich an, bestätige deine Identität und rufe dann die letzten 24 Stunden an Runs ab:jq weiter, um es zu filtern, oder lass --json weg für eine umrahmte, kolorierte Tabelle. Jede Zeile enthält den Status des Runs und, sofern ein Evaluator ihn bewertet hat, seine Metrik-Scores (hier gekürzt):
Installation
Die CLI ist ein öffentliches PyPI-Paket namensagenteye. Installiere es in einer isolierten Umgebung, damit es stets eigene Abhängigkeiten hat:
agenteye:
Hinweis: Das Failproof AI Observability Python SDK verwendet ebenfalls den Distributionsnamenagenteye. Die Installation der CLI mitpipxoderuv tool(stattpip installin ein gemeinsames Virtualenv) verhindert Konflikte zwischen beiden. Ein einfachespip install agenteyeist nur dann problemlos, wenn das SDK nicht in derselben Umgebung installiert ist.
Authentifizierung
Die CLI authentifiziert sich gegenüber dem Dashboard mit einem per E-Mail zugesandten Einmalcode:~/.agenteye/cli.json gespeichert (nur für dich lesbar, Modus 0600) und ist standardmäßig 24 Stunden gültig. Nach Ablauf führe erneut agenteye login aus.
whoami schlägt bei einer fehlenden oder abgelaufenen Session nie fehl; stattdessen meldet es logged_in: false, sodass ein Skript oder Agent den Auth-Status sicher abfragen kann (es kann dennoch mit einem Nicht-Null-Wert enden, wenn keine Basis-URL gesetzt oder das Dashboard nicht erreichbar ist).
Voraussetzungen: Deine E-Mail-Adresse muss für die Anmeldung am Dashboard berechtigt sein (frage deinen Failproof AI Observability-Administrator), und das Dashboard muss über seine Basis-URL erreichbar sein (siehe Konfiguration). Wenn du einen Code anforderst und keiner eintrifft, ist deine E-Mail-Adresse wahrscheinlich noch nicht für den Dashboard-Zugang freigeschalten.
Organisation auswählen (Multi-Tenant)
Wenn dein Konto zu mehr als einer Organisation gehört, wähle die aktive bei der Anmeldung; sie wird gespeichert und für alle späteren Befehle verwendet:--org vollständig ignorieren. Wenn du mehreren angehörst und keine auswählst, listet die CLI sie auf und fordert dich auf, den Befehl mit --org <slug> erneut auszuführen. Die aktive Organisation wird bei jeder Anfrage an das Dashboard gesendet, und deine Berechtigungen werden pro Organisation aufgelöst; agenteye whoami zeigt die aktive Organisation, deine Berechtigungen darin und alle deine Mitgliedschaften.
Konfiguration
Die Auflösungsreihenfolge ist Flag → Umgebungsvariable → Konfigurationsdatei. Es gibt keinen Standard; du musst die CLI auf dein Dashboard zeigen, entweder pro Befehl (
--base-url https://agenteye.example.com) oder einmalig über die Umgebung (wird auch nach deinem ersten login gespeichert):
AGENTEYE_HOME (dieselbe Konvention wie beim SDK und Collector); wenn gesetzt, liegt cli.json unter $AGENTEYE_HOME/cli.json.
Selbstsignierte oder interne TLS-Zertifikate
Wenn dein Dashboard über HTTPS mit einem selbstsignierten oder internen Zertifikat betrieben wird (zum Beispiel ein roher Load-Balancer-Hostname), lehnt die TLS-Überprüfung es mit einemCERTIFICATE_VERIFY_FAILED-Fehler ab. Übergib --insecure, um die Zertifikatsprüfung zu überspringen:
--insecure wird bei der Anmeldung in cli.json gespeichert, sodass spätere Befehle die Überprüfung automatisch überspringen; du musst das Flag nicht wiederholen. Übergib --secure für einen einmaligen verifizierten Aufruf oder um die Überprüfung bei deiner nächsten Anmeldung wieder zu aktivieren. Die CLI gibt vor jedem Befehl, der das Dashboard kontaktiert, eine Warnung an stderr aus, solange die Überprüfung deaktiviert ist. Das Überspringen der Überprüfung beseitigt den Schutz vor Man-in-the-Middle-Angriffen; stelle sicher, dass du dem Netzwerkpfad zu deinem Dashboard vertraust (VPN, privates Subnetz usw.), bevor du dich darauf verlässt.
Telemetrie & Datenschutz
Hinweis: Die ausgelieferte CLI sendet heute keine Nutzungstelemetrie. Ein globaler Kill-Switch ist aktiviert, sodass unabhängig von deiner Umgebung nichts übertragen wird. Der folgende Abschnitt beschreibt die Opt-out-Möglichkeit für den Fall, dass Telemetrie jemals aktiviert wird.Selbst wenn aktiviert, wären Telemetriedaten ausschließlich anonyme Nutzungsanalysen, niemals deine Agenten-, Session- oder Event-Daten:
- Keine Agenten-, Session- oder Event-Daten verlassen jemals deine Infrastruktur. Nur CLI-Nutzung würde gemeldet: der Befehls- und Unterbefehls-Name (z. B.
keys create), die Namen der verwendeten Flags (niemals deren Werte), Erfolgs-/Exit-Status und Dauer, sowie ein Pro-Aktion-Event für Mutationen (z. B.api_key_created,query_run), das nur statische Namen/Enums und grobe Zählwerte enthält. Deine Dashboard-URL, dein Session-Token, deine E-Mail, dein Org-Slug, Ressourcen-IDs, SQL, Key-Secrets und Abfragefilter würden niemals gesendet. Operatoren würden nur durch eine opaque interne ID identifiziert, niemals per E-Mail. - Vorab abmelden durch Setzen von
AGENTEYE_ANALYTICS_DISABLED=1in der Umgebung der CLI (die CLI berücksichtigt auch die toolübergreifende KonventionDO_NOT_TRACK=1). Dies greift sofort, wenn Telemetrie jemals aktiviert wird, sodass eine datenschutzbewusste Umgebung dauerhaft abgemeldet bleiben kann. - Wenn Telemetrie aktiviert wäre, würde die CLI direkt an PostHog senden (
https://us.i.posthog.com); ein Gerät, bei dem dieser Host geblockt ist, würde still nichts senden, ohne dass die CLI beeinträchtigt würde.
Globale Optionen & Konventionen
Lies dies einmal; es gilt für jeden Befehl.- Globale Optionen stehen VOR dem Befehl.
agenteye --json sessionsist korrekt;agenteye sessions --jsonist ein Verwendungsfehler. Die globalen Optionen sind--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quietund--no-color. --jsongibt reines JSON nach stdout aus, und sonst nichts. Lesbare Statuszeilen, Warnungen und Fehler gehen an stderr, sodass eine--json-stdout-Erfassung sauber injqgeleitet werden kann, auch wenn eine Statuszeile angezeigt wird. Ohne--jsonerhältst du eine umrahmte, kolorierte Ansicht für menschliche Augen.- Erkunden mit
--help. Jeder Befehl und Unterbefehl hat--help(und das-h-Alias):agenteye -h,agenteye sessions -h,agenteye keys create -h. Die oberste Hilfe listet auch die Exit-Codes und globalen Optionen auf. Es gibt keine globale maschinenlesbare Oberflächenauflistung; verwende--helppro Befehl sowie die domänenspezifischenagenteye query schemaundagenteye settings schemafür diese zwei Register. - Bestätigungen werden für Skripte und Agenten automatisch übersprungen. Erstell-/Aktualisierungs-/Löschbefehle fragen in einem interaktiven Terminal nach, ob du sicher bist, überspringen diese Abfrage aber automatisch unter
--jsonoder wenn stdin kein TTY ist (ein TTY ist eine interaktive Terminalsitzung; eine Pipe oder ein CI-Runner ist keins), sodass Skripte und Agenten nie hängen bleiben. Übergib--yes/-y, um es explizit zu überspringen. Da die Abfrage für einen Agenten nicht ausgelöst wird, sollte ein Agent destruktive Aktionen vorher mit dem Menschen bestätigen. - Paginierung: Ergebnisse sind neueste zuerst und cursor-paginiert (jede Seite gibt ein Token zurück, das du zum Abrufen der nächsten verwendest).
--limit N(Alias-n) begrenzt Zeilen und standardmäßig auf 50;--allpaginiert automatisch (in 200-Zeilen-Chunks) bis--limit, sodass ein bloßes--allimmer noch bei 50 stoppt. Für eine vollständige Abfrage übergib ein hohes explizites Limit:--all --limit 1000.--page-size Nsteuert den Chunk pro Anfrage (max. 200);--cursor <id>setzt ab demnext_cursoreiner vorherigen Seite fort. - Zeitfilter:
--sincenimmt ein relatives Zeitfenster:15m,1h,6h,24h,7doderall(die Voreinstellungen des Dashboards). Für einen längeren oder benutzerdefinierten Bereich (z. B. die letzten 30 Tage) verwende--from/--to: explizite ISO-8601-UTC-Zeitstempel mitTund einer Zeitzone (z. B.2026-06-01T00:00:00Z), die--sinceüberschreiben. Ein mit Leerzeichen getrennter oder zeitzonenloser Wert ist ein Verwendungsfehler. --fields a,b,c(beievents,sessions,evals,errors) schränkt die Ausgabe auf diese Schlüssel ein, sowohl für die Tabelle als auch für--json. Unbekannte Namen werden mit der gültigen Liste abgewiesen – eine einfache Methode, Feldnamen zu entdecken.--file payload.json(oder--file -, um stdin zu lesen) liefert einen vollständigen JSON-Request-Body, wenn eine Ressource eine komplexe Form hat (beialerts create/update,settings setundusers create/update). SQL für gespeicherte Abfragen verwendet stattdessen--sql @file.sql.- Mehrwertige Filter sind kommagetrennt → als Menge abgeglichen (Union innerhalb eines Filters, UND über Filter hinweg):
--event-type tool_use,tool_result. Click-Optionen sind nicht variadisch, daher schlägt--add a bfehl. Verwende--add a,b, wiederhole das Flag (--add a --add b) oder setze Anführungszeichen (--add "a b").
Befehlsreferenz
Die 5 häufigsten Befehle
Die meisten alltäglichen Aufgaben laufen über eine Handvoll Lesebefehle. Fange hier an und greife bei Bedarf auf die vollständige Oberfläche unten zurück:Alles, was die CLI kann
Die vollständige Oberfläche folgt. Die CLI hat 18 Top-Level-Befehle. Alle Lesebefehle akzeptieren--json und die globalen Optionen oben; führe agenteye <command> -h (oder <command> <subcommand> -h) für die vollständige Flag-Liste und JSON-Form eines Befehls aus.
Identität: login · logout · whoami · orgs · version · help
orgs prüft und wechselt den aktiven Tenant:
Beobachten (nur lesend): events · sessions · evals · errors · list
Keiner dieser Befehle benötigt eine Bestätigung. Gemeinsame Filter: --session-id, --agent-id, --env (nicht --environment) und der Zeitbereich (--since / --from / --to).
--score KEY:MIN..MAX (bei evals, nicht sessions) ist wiederholbar und UND-kombiniert; jede Grenze ist optional (..0.5 bedeutet ≤ 0,5, 0.9.. bedeutet ≥ 0,9). Bis zu 20 Score-Filter pro Anfrage. evals --scores-full ist ein Anzeigeformat-Flag nur für die menschliche Tabelle; es zeigt jedes Score-Paar anstelle der ersten wenigen plus einer +N-Zählung. Es hat keine Auswirkung unter --json, das immer das vollständige Score-Objekt zurückgibt. Um eine Session von Anfang bis Ende zu lesen, kombiniere den Event-Verlauf mit seiner Evaluierung:
Verwalten (berechtigungsgesteuert): keys · users · settings · alerts · incidents
keys: API-Keys. Das Secret wird lokal generiert, an den Server gesendet (der nur einen Hash speichert) und beim Erstellen/Regenerieren einmalig angezeigt; erfasse es sofort. Mit --json erscheint es nur im Feld key. Referenziert nach Name.
(permission-set ∪ --add) − --remove. Tokens sind slug:action (z. B. events:read) oder slug:action.action, um mehrere für eine Ressource zu erweitern (events:read.add → events:read, events:add). Voreinstellungen: read-only, standard, admin. Rein menschliche Berechtigungen (keys:update) können keinem Key gewährt werden.
users: Org-Mitglieder, referenziert per E-Mail (eine UUID-ID wird ebenfalls akzeptiert).
settings: Ein festes Register (du liest und ändert vorhandene Schlüssel; du kannst keine neuen erstellen).
alerts: Alert-Definitionen, referenziert nach Name. create nimmt einen positionale NAME plus Flags oder einen vollständigen JSON-Body via --file.
incidents: Alert-Incidents, referenziert per ID (Kurzformen akzeptiert). show gibt das vollständige Aktivitätsprotokoll aus; lies es vor dem Handeln.
Analysen & Assistent: query · agent
query: Gespeichertes SQL gegen deinen Analyse-Store plus einen Ad-hoc-Runner. Gespeicherte Abfragen werden nach Name referenziert; das SQL wird serverseitig validiert (nur SELECT/WITH, Statement-Timeout, Zeilenlimit).
agent: Kommuniziert mit dem eingebauten KI-Assistenten (demselben schreibgeschützten Analysten, mit dem du im Dashboard chatten kannst). Chats werden per Kurz-Chat-ID referenziert (Präfix-aufgelöst).
Exit-Codes
Diese machen die CLI sicher skriptfähig: Ein Coding-Agent kann bei
4 darauf reagieren, dich zur erneuten Authentifizierung aufzufordern, oder bei 5 die fehlende Berechtigung anzeigen. Siehe CLI-Rezepte für Agenten für Exit-Code-Behandlungsmuster und JSON-Ausgabeformen.
Nächste Schritte
- CLI-Rezepte für Agenten: Kopierfertige Abfragemuster,
jq-Einzeiler,--fields-Projektionen, Exit-Code-Behandlung und JSON-Ausgabeformen – geschrieben für Coding-Agenten, die die CLI steuern. - CLI-Agent-Skill: Paketiere diese CLI als installierbaren Claude Code / Codex-Skill, damit ein Coding-Agent Failproof AI Observability über einfache Textanfragen steuert.
- API-Keys: Das Berechtigungsmodell hinter
keys create --add …. - KI-Assistent: Den Assistenten aktivieren, mit dem
agent askkommuniziert.

