agent-trace-viewer

코딩 에이전트가 실제로 무엇을 했는지 봅니다 —
토큰, 비용, 도구 호출, 그리고 그 결과로 만들어진 PR과 파일.

로컬에서 실행하는 도구입니다. 내 컴퓨터에 이미 쌓여 있는 로그를 읽기 때문에, 이 페이지는 소개용이고 실제 화면은 각자 머신에서 띄웁니다. 로그가 외부로 나가지 않습니다.

왜 만들었나

Claude Code와 Codex는 모든 세션을 디스크에 완전히 기록합니다 — 프롬프트, 도구 호출과 그 원본 출력, 캐시 읽기를 포함한 모델별 토큰 사용량, 그리고 에이전트가 연 PR까지. 그런데 그걸 읽을 방법이 없습니다.

에이전트로그 위치
Claude Code~/.claude/projects/**/*.jsonl
Codex~/.codex/sessions/**/rollout-*.jsonl

에이전트에 계측을 추가하지 않습니다. 이미 디스크에 있는 것만 읽습니다. 쿼터 미터가 아니라 다른 질문에 답합니다 — 그 많은 토큰이 어디로 갔는가.

기능

숫자를 정직하게 다루는 방식

비용은 API 정가 환산이지 청구액이 아닙니다. 로그에는 토큰 수만 있고 과금 정보가 없습니다 — 종량제 키였는지 정액 구독이었는지 로그는 모릅니다. 그래서 “이 토큰이 공개 API 요율이었다면 얼마였을까”에 답합니다. 세션·프로젝트·에이전트를 서로 비교하거나 구독이 본전을 뽑는지 판단할 때 맞는 질문이고, 실제로 청구된 금액은 아닙니다.

“활동 시간”은 벽시계 시간에서 유휴를 뺀 값입니다. 사흘 뒤에 다시 이어붙인 세션은 429시간에 걸쳐 있지만 실제 작업은 3시간쯤입니다. 임계값 5분은 재서 정했습니다 — 5분과 15분 사이에서 총합이 거의 움직이지 않아, 짧은 공백과 진짜 유휴가 그 지점에서 깨끗하게 갈립니다.

요율은 모델별이며 캐시 배수를 포함합니다 (5분 캐시 쓰기 1.25×, 1시간 2×, 읽기 0.1×). 프롬프트 캐싱이 실제로 얼마를 아꼈는지가 숫자에 반영됩니다.

실행

git clone https://github.com/PYSoYa/agent-trace-viewer.git
cd agent-trace-viewer
pnpm install && pnpm dev

http://localhost:3000. 로그를 자동으로 찾아 첫 로드에 색인합니다. 설정할 것이 없습니다. Node 22.5 이상이면 내장 node:sqlite를 쓰므로 네이티브 모듈 컴파일도 없습니다.

Docker로도 실행할 수 있습니다. 로그는 읽기 전용으로 마운트하고, ~/.codex는 통째로 마운트하지 않습니다 — 그 안에 auth.json이 있고, 트레이스를 읽자고 컨테이너에 자격증명을 넘길 이유는 없습니다.