메인 콘텐츠로 건너뛰기
AgentEye CLI(agenteye)는 AgentEye 배포 환경을 위한 터미널 클라이언트입니다. 데이터(세션, 이벤트 로그, 평가)를 조회하고 조직을 관리(API 키, 사용자, 설정, 알림, 인시던트, 저장된 쿼리)합니다. 대시보드에서 할 수 있는 모든 작업을 스크립트나 코딩 에이전트에서도 수행할 수 있습니다. 모든 명령은 --json 플래그를 지원하므로, 터미널 앞의 사람에게도, 결과를 파싱하는 코딩 에이전트(Claude Code, Cursor)에게도 동일하게 활용할 수 있습니다.
이 문서는 agenteye CLI에 관한 것으로, 컬렉터 데몬(agenteye-collector)과는 별개의 도구입니다. CLI는 대시보드와 통신하고, 컬렉터는 서버로 이벤트를 전송합니다. 컬렉터에 대한 내용은 컬렉터 설치를 참고하세요.

설치

CLI는 **agenteye**라는 이름으로 공개 PyPI에 게시되어 있습니다. AgentEye Python SDK도 동일한 agenteye 배포 이름을 사용하므로, 두 패키지가 하나의 가상 환경에서 충돌하지 않도록 격리된 환경(pipx 또는 uv tool)에 CLI를 설치하세요.
Python SDK를 같은 환경에 설치하지 않는다면 pip install agenteye도 사용할 수 있습니다. CLI는 Python 3.10 이상이 필요하며 GitHub 토큰은 필요하지 않습니다. 공개 패키지입니다. 설치된 명령은 **agenteye**입니다:

인증

CLI는 이메일로 전송되는 일회용 코드를 사용해 대시보드에 인증합니다:
세션 토큰은 ~/.agenteye/cli.json에 저장됩니다(본인만 읽을 수 있도록 모드 0600으로 설정). 기본적으로 24시간 동안 유효하며, 만료되면 agenteye login을 다시 실행하세요.
whoami는 세션이 없거나 만료된 경우에도 오류를 발생시키지 않습니다. 대신 logged_in: false를 반환하므로, 스크립트나 에이전트가 안전하게 인증 상태를 확인할 수 있습니다(기본 URL이 설정되지 않았거나 대시보드에 연결할 수 없는 경우에는 여전히 0이 아닌 종료 코드를 반환할 수 있습니다). 요구 사항: 이메일이 대시보드 로그인 권한이 있어야 하며(AgentEye 관리자에게 문의), 대시보드가 기본 URL에서 접근 가능해야 합니다(구성 참고). 코드를 요청했는데 수신되지 않는다면, 해당 이메일이 아직 대시보드 접근 권한을 부여받지 않은 것일 수 있습니다.

조직 선택 (멀티 테넌트)

계정이 둘 이상의 조직에 속해 있다면, 로그인 시 활성 조직을 선택하세요. 선택된 조직은 저장되어 이후 모든 명령에 사용됩니다:
정확히 하나의 조직에 속해 있다면 자동으로 선택되므로 --org를 신경 쓸 필요가 없습니다. 여러 조직에 속해 있으면서 선택하지 않으면, CLI가 조직 목록을 표시하고 --org <slug>를 사용하여 다시 실행하도록 안내합니다. 활성 조직은 모든 요청에 포함되며, 권한은 조직별로 결정됩니다. agenteye whoami는 활성 조직, 해당 조직에서의 권한, 모든 멤버십을 표시합니다.

구성

설정플래그환경 변수기본값
대시보드 기본 URL--base-urlAGENTEYE_DASHBOARD_URL필수 (기본값 없음)
활성 조직/테넌트--orgAGENTEYE_ORG로그인 시 선택, ~/.agenteye/cli.json에 저장
세션 토큰--tokenAGENTEYE_CLI_TOKEN~/.agenteye/cli.json에서 읽음
JSON 출력--jsonAGENTEYE_CLI_JSON비활성
TLS 검증 건너뛰기--insecure / --secureAGENTEYE_INSECURE비활성 (로그인 시 저장)
요청 타임아웃 (초)--timeout30
사용 텔레메트리 비활성화(없음)AGENTEYE_ANALYTICS_DISABLED (또는 DO_NOT_TRACK)비활성 (텔레메트리 활성)
우선순위 순서는 플래그 → 환경 변수 → 설정 파일입니다. 기본값이 없으므로 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를 사용하거나, 다음 로그인 시 검증을 다시 활성화하려면 --secure를 저장하세요. CLI는 검증이 비활성화된 상태에서 대시보드에 접속하는 모든 명령 전에 stderr에 경고를 출력합니다. 검증을 건너뛰면 중간자 공격 방어가 제거됩니다. 이를 사용하기 전에 대시보드로의 네트워크 경로(VPN, 사설 서브넷 등)를 신뢰할 수 있는지 확인하세요.

텔레메트리 및 개인 정보

CLI는 Exosphere의 분석 서비스(PostHog)에 익명 사용 분석을 전송합니다: 실행된 명령(예: sessions, keys create), 성공 여부, 소요 시간. 이 사용 신호는 기능 우선순위 결정에 활용됩니다.
  • 에이전트, 세션, 이벤트 데이터는 절대 인프라 외부로 전송되지 않습니다. CLI 사용 정보만 보고됩니다: 명령 및 서브명령 이름(예: keys create), 사용한 플래그의 이름(값은 절대 포함하지 않음), 성공/종료 상태, 소요 시간. 변경 작업에 대한 이벤트(예: api_key_created, query_run)는 정적 이름/열거형과 대략적인 수치만 포함합니다. 대시보드 URL, 세션 토큰, 이메일, 조직 슬러그, 리소스 ID, SQL, 키 시크릿, 쿼리 필터는 절대 전송되지 않습니다. 운영자는 불투명한 내부 ID로만 식별되며, 이메일은 사용되지 않습니다.
  • 텔레메트리는 기본적으로 활성화되어 있습니다. 비활성화하려면 CLI 환경에서 AGENTEYE_ANALYTICS_DISABLED=1을 설정하세요(크로스 툴 규칙인 DO_NOT_TRACK=1도 지원합니다).
  • CLI는 PostHog(https://us.i.posthog.com)로 직접 전송합니다. CLI를 실행하는 머신은 해당 호스트에 대한 아웃바운드 접근이 필요합니다. 차단된 경우 텔레메트리는 조용히 아무것도 하지 않습니다(전송은 시간 제한이 있으므로 명령을 지연시키거나 중단시키지 않습니다). CLI 동작에는 영향이 없습니다.

전역 옵션 및 규칙

한 번만 읽어두면 모든 명령에 적용됩니다.
  • 전역 옵션은 명령 앞에 위치합니다. agenteye --json sessions는 올바른 형식이고, agenteye sessions --json은 사용 오류입니다. 전역 옵션은 --json, --base-url, --org, --token, --insecure/--secure, --timeout, --quiet, --no-color입니다.
  • --json은 순수 JSON을 stdout으로 출력하며, 그 외에는 아무것도 출력하지 않습니다. 사람용 상태 메시지, 경고, 오류는 stderr로 전달되므로, --json stdout 캡처는 상태 메시지가 표시되더라도 jq로 파이프하기에 깨끗한 상태를 유지합니다. --json 없이는 사람이 읽기 좋은 박스형 컬러 뷰가 표시됩니다.
  • --help로 탐색하세요. 모든 명령과 서브명령에는 --help(및 -h 별칭)가 있습니다: agenteye -h, agenteye sessions -h, agenteye keys create -h. 최상위 도움말에는 종료 코드와 전역 옵션도 나열됩니다. 전역 머신 가독형 전체 목록은 없습니다. 명령별 --help와, 두 레지스트리에 대한 도메인별 agenteye query schemaagenteye settings schema를 활용하세요.
  • 스크립트 및 에이전트에서는 확인 프롬프트가 자동으로 건너뜁니다. 생성/수정/삭제 명령은 대화형 터미널에서 “확인하시겠습니까?” 메시지를 표시하지만, --json이나 stdin이 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, 30d, all - 대시보드 프리셋)를 받습니다. --from/--to는 명시적 ISO-8601 UTC 타임스탬프(T와 타임존 포함, 예: 2026-06-01T00:00:00Z)를 받아 사용자 지정 범위를 지정하며 --since를 재정의합니다. 공백으로 구분되거나 타임존이 없는 값은 사용 오류입니다.
  • --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").

명령 참조

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(**evals**에서 사용 가능, sessions에서는 불가)는 반복 가능하며 AND로 결합됩니다. 어느 쪽 경계도 선택 사항입니다(..0.5는 ≤ 0.5, 0.9..는 ≥ 0.9 의미). 요청당 최대 20개의 점수 필터. evals --scores-full은 요약 대신 전체 점수 객체를 반환합니다. 하나의 세션을 처음부터 끝까지 읽으려면 이벤트 추적과 평가를 함께 사용하세요:

관리 (권한 필요) — keys · users · settings · alerts · incidents

keys — API 키. 시크릿은 로컬에서 생성되어 서버로 전송되고(서버는 해시만 저장), 생성/재생성 시 한 번만 표시됩니다. 그때 반드시 캡처하세요. --json을 사용하면 key 필드에만 나타납니다. 이름으로 참조됩니다.
권한은 (permission-set ∪ --add) − --remove 방식으로 작동합니다. 토큰은 slug:action(예: events:read) 또는 slug:action.action 형태로 하나의 리소스에 여러 액션을 확장할 수 있습니다(events:read.addevents: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 — 저장된 ClickHouse SQL과 임시 실행기. 저장된 쿼리는 이름으로 참조됩니다. SQL은 서버 측에서 검증됩니다(SELECT/WITH만 허용, 쿼리 타임아웃, 행 제한).
agent — 내장 대시보드 어시스턴트(대시보드에서 채팅할 수 있는 것과 동일한 읽기 전용 분석가). 채팅은 짧은 chat-id로 참조됩니다(접두사 자동 해결).

종료 코드

코드의미
0성공
1예상치 못한 오류 (예: 대시보드가 5xx를 반환)
2사용 오류 (잘못된 인수, 알 수 없는 명령/플래그, 이름 충돌)
3대시보드에 연결할 수 없음
4로그인하지 않았거나 세션이 만료됨; agenteye login 실행 필요
5인증되었지만 필요한 권한이 없음 (메시지에 권한 이름 표시)
6요청한 리소스를 찾을 수 없음 (예: 알 수 없는 세션 또는 인시던트 ID)
이 코드들을 통해 CLI를 안전하게 스크립트화할 수 있습니다. 코딩 에이전트는 4를 받으면 재인증을 요청하거나, 5를 받으면 누락된 권한을 표시할 수 있습니다. 종료 코드 처리 패턴과 JSON 출력 형태는 에이전트를 위한 CLI 레시피를 참고하세요.

관련 문서

  • 에이전트를 위한 CLI 레시피 — 코딩 에이전트를 위한 복사-붙여넣기 쿼리 패턴, jq 원라이너, --fields 프로젝션, 종료 코드 처리, JSON 출력 형태.
  • AgentEye CLI 스킬 — 이 CLI를 설치 가능한 Claude Code / Codex 스킬로 패키징하여 코딩 에이전트가 일반 영어 요청으로 AgentEye를 구동할 수 있게 합니다.
  • API 키keys create --add … 뒤의 권한 모델.
  • AI 어시스턴트agent ask가 대화하는 어시스턴트 활성화 방법.