agenteye CLI는 데이터(세션, 이벤트 로그, 평가)를 조회하고 조직(API 키, 사용자, 설정, 알림, 인시던트, 저장된 쿼리)을 관리합니다. 자동화된 검사를 실행하거나, Observability를 CI에 연동하거나, 코딩 에이전트가 프로덕션을 점검하도록 할 때 활용하세요. 모든 커맨드는 --json 플래그를 지원하므로, 터미널에서 직접 사용하거나 코딩 에이전트(Claude Code, Cursor)가 셸을 호출해 결과를 파싱할 때 모두 동일하게 작동합니다.
하나의 바이너리로 다음을 수행할 수 있습니다:
- 데이터 조회:
sessions,events,evals,errors(시간, 에이전트, 환경, 점수로 필터링). - 조직 관리:
keys,users,settings,alerts,incidents. - 분석 실행: 저장된 SQL 및 임시 쿼리 실행기 (
query). - AI 어시스턴트 질의: 대시보드에서 사용하는 것과 동일한 읽기 전용 분석 도구 (
agent).
참고: 이것은agenteyeCLI로, 컬렉터 데몬(agenteye-collector)과는 별개의 도구입니다. CLI는 대시보드와 통신하고, 컬렉터는 이벤트를 서버로 전송합니다.
빠른 시작
처음부터 첫 번째 결과까지 네 줄이면 충분합니다. CLI가 대시보드를 가리키도록 설정하고, 로그인하고, 본인 확인 후, 최근 하루치 실행 기록을 가져옵니다:jq로 파이프해서 원하는 데이터를 추출하거나, --json을 생략하면 박스 형태의 컬러 테이블로 볼 수 있습니다. 각 행에는 실행 상태와, 평가자가 점수를 매겼다면 해당 메트릭 점수가 포함됩니다(여기서는 일부 생략):
설치
CLI는 **agenteye**라는 이름의 공개 PyPI 패키지입니다. 의존성이 충돌하지 않도록 격리된 환경에 설치하세요:
agenteye**입니다:
참고: Failproof AI Observability Python SDK도agenteye배포 이름을 사용합니다.pipx또는uv tool로 CLI를 설치하면(공유 가상 환경에pip install하는 것과 달리) 두 패키지가 충돌하지 않습니다. 동일한 환경에 SDK가 설치되어 있지 않다면pip install agenteye도 괜찮습니다.
인증
CLI는 이메일로 전송되는 일회용 코드를 사용해 대시보드에 인증합니다:~/.agenteye/cli.json에 저장됩니다(본인만 읽을 수 있도록 0600 권한). 기본적으로 24시간 동안 유효하며, 만료되면 agenteye login을 다시 실행하세요.
whoami는 세션이 없거나 만료된 경우에도 오류를 발생시키지 않으며, 대신 logged_in: false를 반환합니다. 스크립트나 에이전트가 인증 상태를 안전하게 확인할 수 있습니다(다만 base URL이 설정되지 않았거나 대시보드에 접근할 수 없으면 여전히 비정상 종료될 수 있습니다).
요구 사항: 이메일이 대시보드 로그인 허용 목록에 있어야 하며(Failproof AI Observability 관리자에게 문의), 대시보드가 base URL에서 접근 가능해야 합니다(설정 참조). 코드를 요청했는데 도착하지 않는다면 이메일이 아직 대시보드 접근 권한이 없는 것일 수 있습니다.
조직 선택 (멀티 테넌트)
계정이 여러 조직에 속해 있다면 로그인 시 활성 조직을 선택하세요; 선택한 조직은 저장되어 이후 모든 커맨드에 사용됩니다:--org를 무시해도 됩니다. 여러 조직에 속해 있는데 선택하지 않으면, CLI가 조직 목록을 보여주고 --org <slug>를 붙여 다시 실행하도록 요청합니다. 활성 조직은 모든 요청에 포함되며, 권한은 조직별로 확인됩니다; agenteye whoami는 활성 조직, 해당 조직에서의 권한, 모든 멤버십을 표시합니다.
설정
우선순위는 플래그 → 환경 변수 → 설정 파일 순입니다. 기본값이 없으므로 CLI가 대시보드를 가리키도록 설정해야 합니다. 커맨드마다 지정하거나(
--base-url https://agenteye.example.com), 환경 변수로 한 번만 설정하면 됩니다(첫 login 후에도 저장됩니다):
AGENTEYE_HOME 환경 변수를 따릅니다(SDK 및 컬렉터와 동일한 규칙). 설정된 경우 cli.json은 $AGENTEYE_HOME/cli.json에 위치합니다.
자체 서명 또는 내부 TLS
대시보드가 자체 서명 또는 내부 인증서로 HTTPS를 제공하는 경우(예: 원시 로드 밸런서 호스트명), TLS 검증이CERTIFICATE_VERIFY_FAILED 오류로 실패합니다. --insecure를 전달해 인증서 검증을 건너뛰세요:
--insecure는 로그인 시 cli.json에 저장되므로 이후 커맨드는 자동으로 검증을 건너뜁니다; 매번 플래그를 반복할 필요가 없습니다. 일회성 검증 호출에는 --secure를 전달하거나, 다음 로그인 시 검증을 다시 활성화할 수도 있습니다. 검증이 비활성화된 상태에서 대시보드에 접촉하는 모든 커맨드 전에 CLI가 stderr에 경고를 출력합니다. 검증을 건너뛰면 중간자 공격에 대한 보호가 제거됩니다; 이를 사용하기 전에 대시보드까지의 네트워크 경로(VPN, 프라이빗 서브넷 등)를 신뢰할 수 있는지 확인하세요.
텔레메트리 및 개인정보
참고: 현재 배포된 CLI는 사용량 텔레메트리를 전혀 전송하지 않습니다. 마스터 킬 스위치가 활성화되어 있어 환경에 관계없이 아무것도 전송되지 않습니다. 아래 섹션은 텔레메트리가 향후 활성화될 경우를 대비한 옵트아웃 방법을 설명합니다.활성화되더라도 텔레메트리는 익명 사용량 분석만 수집하며, 에이전트·세션·이벤트 데이터는 절대 포함되지 않습니다:
- 에이전트, 세션, 이벤트 데이터는 절대 인프라 외부로 나가지 않습니다. CLI 사용 정보만 보고됩니다: 커맨드와 서브커맨드 이름(예:
keys create), 사용한 플래그의 이름(값은 포함하지 않음), 성공/종료 상태, 실행 시간, 그리고 변경 작업에 대한 이벤트(예:api_key_created,query_run)로 정적 이름/열거형과 개략적인 카운트만 포함됩니다. 대시보드 URL, 세션 토큰, 이메일, 조직 슬러그, 리소스 ID, SQL, 키 시크릿, 쿼리 필터는 절대 전송되지 않습니다. 운영자는 불투명한 내부 ID로만 식별되며 이메일로는 식별되지 않습니다. - 미리 옵트아웃하려면 CLI 환경에서
AGENTEYE_ANALYTICS_DISABLED=1을 설정하세요(CLI는 범용DO_NOT_TRACK=1규칙도 지원합니다). 텔레메트리가 활성화되는 순간부터 적용되므로, 개인정보를 중시하는 환경에서 영구적으로 옵트아웃 상태를 유지할 수 있습니다. - 텔레메트리가 활성화된다면 CLI는 PostHog(
https://us.i.posthog.com)로 직접 전송할 것입니다; 해당 호스트가 차단된 환경에서는 아무것도 전송되지 않으며 CLI 동작에는 영향을 주지 않습니다.
전역 옵션 및 규칙
한 번만 읽어두세요; 모든 커맨드에 적용됩니다.- 전역 옵션은 커맨드 앞에 위치해야 합니다.
agenteye --json sessions는 올바르지만,agenteye sessions --json은 사용 오류입니다. 전역 옵션은--json,--base-url,--org,--token,--insecure/--secure,--timeout,--quiet,--no-color입니다. --json은 순수 JSON만 stdout에 출력합니다. 사람이 읽는 상태 메시지, 경고, 오류는 stderr로 출력되므로,--jsonstdout 캡처는 상태 메시지가 표시되더라도jq로 파이프할 수 있을 만큼 깔끔합니다.--json없이는 사람이 보기 좋은 박스 형태의 컬러 뷰로 표시됩니다.--help으로 탐색하세요. 모든 커맨드와 서브커맨드에는--help(및-h별칭)가 있습니다:agenteye -h,agenteye sessions -h,agenteye keys create -h. 최상위 도움말에는 종료 코드와 전역 옵션도 나열됩니다. 전역 머신 가독 표면 덤프는 없으며, 커맨드별--help와 두 레지스트리에 특화된agenteye query schema,agenteye settings schema를 사용하세요.- 스크립트와 에이전트에서는 확인 프롬프트가 자동으로 건너뜁니다. 생성/수정/삭제 커맨드는 인터랙티브 터미널에서 “정말 하시겠습니까?” 프롬프트를 표시하지만,
--json이거나 stdin이 TTY가 아닐 때는 자동으로 건너뜁니다(TTY는 인터랙티브 터미널 세션; 파이프나 CI 러너는 TTY가 아님). 명시적으로 건너뛰려면--yes/-y를 전달하세요. 에이전트에게는 프롬프트가 표시되지 않으므로, 에이전트는 파괴적인 작업을 수행하기 전에 먼저 사람에게 확인해야 합니다. - 페이지네이션: 결과는 최신순으로 커서 페이지네이션됩니다(각 페이지는 다음 페이지를 가져올 때 사용하는 토큰을 반환).
--limit N(별칭-n)은 행 수를 제한하며 기본값은 50입니다;--all은 자동으로 페이지네이션(200행 단위)하지만--limit까지만 처리하므로--all만 사용하면 여전히 50개에서 멈춥니다. 전체를 가져오려면 큰 상한값을 명시적으로 지정하세요:--all --limit 1000.--page-size N은 요청당 청크 크기를 제어합니다(최대 200);--cursor <id>는 이전 페이지의next_cursor에서 재개합니다. - 시간 필터:
--since는 상대적 구간을 받습니다:15m,1h,6h,24h,7d, 또는all(대시보드 프리셋). 더 길거나 사용자 정의 범위(예: 최근 30일)에는--from/--to를 사용하세요:--since를 재정의하는 명시적 ISO-8601 UTC 타임스탬프로T와 타임존이 포함되어야 합니다(예:2026-06-01T00:00:00Z). 공백으로 구분되거나 타임존이 없는 값은 사용 오류입니다. --fields a,b,c(events,sessions,evals,errors에서)는 테이블과--json모두에서 출력을 해당 키로 제한합니다. 알 수 없는 이름은 유효한 목록과 함께 거부되므로, 필드 이름을 확인하는 간편한 방법이기도 합니다.--file payload.json(또는 stdin을 읽으려면--file -)은 리소스가 복잡한 형태를 가질 때 전체 JSON 요청 본문을 제공합니다(alerts create/update,settings set,users create/update에서). 저장된 쿼리 SQL은 대신--sql @file.sql을 사용합니다.- 다중값 필터는 쉼표로 구분되며 집합으로 매칭됩니다(한 필터 내에서는 합집합, 필터 간에는 AND):
--event-type tool_use,tool_result. Click 옵션은 가변 인수가 아니므로--add a b는 작동하지 않습니다.--add a,b를 사용하거나, 플래그를 반복하거나(--add a --add b), 따옴표로 묶으세요(--add "a b").
커맨드 참조
가장 자주 사용하는 5가지 커맨드
대부분의 일상 작업은 몇 가지 읽기 커맨드로 해결됩니다. 여기서 시작하고, 필요할 때 아래의 전체 목록을 참조하세요:CLI가 할 수 있는 모든 것
전체 목록입니다. CLI에는 18개의 최상위 커맨드가 있습니다. 모든 읽기 커맨드는--json과 위의 전역 옵션을 지원합니다; 특정 커맨드의 전체 플래그 목록과 JSON 형태는 agenteye <command> -h(또는 <command> <subcommand> -h)를 실행하세요.
신원: login · logout · whoami · orgs · version · help
orgs는 활성 테넌트를 확인하고 전환합니다:
관찰 (읽기 전용): events · sessions · evals · errors · list
이 커맨드들은 확인이 필요하지 않습니다. 공통 필터: --session-id, --agent-id, --env(--environment가 아님), 시간 범위(--since / --from / --to).
--score KEY:MIN..MAX(sessions이 아닌 **evals**에서)는 반복 가능하며 AND로 결합됩니다; 각 경계는 선택사항입니다(..0.5는 ≤ 0.5, 0.9..는 ≥ 0.9). 요청당 최대 20개의 점수 필터. evals --scores-full은 사람이 보는 테이블 전용 표시 플래그로, 처음 몇 개와 +N 카운트 대신 모든 점수 쌍을 보여줍니다. --json에서는 효과가 없으며, --json은 항상 완전한 점수 객체를 반환합니다. 하나의 세션을 처음부터 끝까지 읽으려면 이벤트 추적과 평가를 결합하세요:
관리 (권한 필요): keys · users · settings · alerts · incidents
keys: API 키. 시크릿은 로컬에서 생성되어 서버로 전송되고(서버는 해시만 저장), 생성/재생성 시 한 번만 표시됩니다; 그 자리에서 저장하세요. --json 사용 시 key 필드에만 나타납니다. 이름으로 참조됩니다.
(permission-set ∪ --add) − --remove로 계산됩니다. 토큰 형식은 slug:action(예: events:read) 또는 slug:action.action으로 하나의 리소스에 여러 액션을 지정합니다(events:read.add → events:read, events:add). 프리셋: read-only, standard, admin. 사람 전용 권한(keys:update)은 키에 부여할 수 없습니다.
users: 조직 멤버, 이메일로 참조됩니다(UUID id도 허용).
settings: 고정된 레지스트리(기존 키를 읽고 변경만 가능; 새 키는 생성 불가).
alerts: 알림 정의, 이름으로 참조됩니다. create는 위치 인수 NAME과 플래그 또는 --file로 전달하는 전체 JSON 본문을 받습니다.
incidents: 알림 인시던트, id로 참조됩니다(짧은 id 허용). show는 전체 활동 로그를 출력합니다; 조치 전에 읽어보세요.
분석 및 어시스턴트: query · agent
query: 분석 스토어에 대한 저장된 SQL과 임시 실행기. 저장된 쿼리는 이름으로 참조됩니다; SQL은 서버 측에서 검증됩니다(SELECT/WITH만 허용, 구문 타임아웃, 행 수 제한).
agent: 내장 AI 어시스턴트와 대화합니다(대시보드에서 채팅할 수 있는 것과 동일한 읽기 전용 분석 도구). 채팅은 짧은 chat-id로 참조됩니다(접두사로 확인).
종료 코드
종료 코드 덕분에 CLI를 안전하게 스크립트화할 수 있습니다: 코딩 에이전트는
4가 반환되면 재인증을 요청하거나, 5가 반환되면 누락된 권한을 표시하도록 분기할 수 있습니다. 종료 코드 처리 패턴과 JSON 출력 형태는 에이전트를 위한 CLI 레시피를 참조하세요.
다음 단계
- 에이전트를 위한 CLI 레시피: 복사해서 바로 쓸 수 있는 쿼리 패턴,
jq원라이너,--fields프로젝션, 종료 코드 처리, JSON 출력 형태 — 코딩 에이전트가 CLI를 구동하는 것을 염두에 두고 작성되었습니다. - CLI 에이전트 스킬: 이 CLI를 설치 가능한 Claude Code / Codex 스킬로 패키징하여 코딩 에이전트가 자연어로 Failproof AI Observability를 제어할 수 있게 합니다.
- API 키:
keys create --add …뒤에 있는 권한 모델. - AI 어시스턴트:
agent ask가 사용하는 어시스턴트 활성화 방법.

