taco — AI 코딩 사용량·비용 추적문서문제 해결버그 제보문의하기taco@inflearn.com
taco docs
설치대시보드GitHub
비용 보는 분들께
비용 확인하기 (설치 없이)
AI 도구 쓰는 분들께
개요빠른 시작윈도우 설치 (터미널 없이)설치설정
수집
지원 도구CLI 명령
대시보드
대시보드 둘러보기티켓별 비용
연동
MCP 서버Jira·GitHub 연동
기타
문제 해결

지원 도구

taco는 각 AI 코딩 도구가 로컬에 남기는 기록을 읽어 사용량 이벤트로 변환합니다. 도구별로 소스 위치와 수집 방식이 다릅니다.

지원 목록

도구소스 경로형식git 귀속(레포·브랜치·티켓)
Claude Code~/.claude/projects/**/*.jsonl (재귀 탐색)JSONL (assistant 메시지의 usage)✅ 레포·브랜치·티켓
Claude Desktop~/Library/Application Support/Claude/local-agent-mode-sessions/ (mac) · %APPDATA%\Claude\… (win) · ~/.config/Claude/… (linux)JSONL❌ (샌드박스 경로 + 브랜치가 HEAD로 남아 귀속 불가)
Codex~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl ($CODEX_HOME 우선)JSONL🔶 레포만 (기록에 브랜치가 없어 브랜치·티켓 귀속 안 됨)
Cursorstate.vscdb (cursorDiskKV)SQLite❌ (레포·브랜치·cwd 미기록)
Gemini CLI~/.gemini/tmp/*/chats/session-*.json[l]JSON/JSONL❌
Antigravity~/.gemini/antigravity*/conversations/*.dbSQLite❌

각 이벤트에서 입력/출력/캐시 토큰, 모델, 세션을 뽑고(도구가 기록을 남기는 범위에서 작업 경로(cwd)·git 브랜치·레포까지 — 위 표 참고), 서버가 모델 단가를 적용해 비용을 계산합니다. 티켓 귀속은 레포·브랜치 정보에서 파생되므로, git 귀속이 없는 도구의 사용량은 레포·브랜치·티켓별 뷰에 잡히지 않습니다.

수집 방식

  • Claude Code·Codex는 플러그인 hook이 이벤트마다 자동 수집합니다. 플러그인은 taco plugins(설치 스크립트가 자동 실행)로 설치됩니다.
  • Claude Desktop·Cursor·Gemini CLI·Antigravity는 hook이 없어 스스로 수집을 트리거하지 못합니다. 대신 taco hook(Claude Code 플러그인)이 돌 때, 그리고 taco collect --provider <x>로 특정 도구만 수집할 때(=Codex 플러그인이 부르는 경로) 사이드카 스캔으로 함께 수집됩니다. 즉 Claude Code든 Codex든 플러그인이 하나라도 깔려 있으면 이 도구들도 자동으로 모입니다.
  • taco collect(--provider 없이)는 원래 모든 provider를 스캔하므로 사이드카가 필요 없습니다. hook이 하나도 없는 상태에서 위 도구들만 쓴다면 taco collect를 직접(주기적으로) 실행해야 합니다. 별도 로그인/연동은 필요 없고, 파일이 있으면 읽습니다.
  • 사이드카 스캔에는 에디터를 붙잡지 않기 위한 제약이 있습니다 — 5분 throttle(그 안에 다시 불려도 건너뜀), 한 번에 5초 예산(초과하면 중단하고 남은 분량은 watermark로 다음 실행에 이어감), 그리고 TACO_NO_SIDESCAN(값이 있으면 끔) 킬스위치. 그래서 대량 backlog는 여러 번에 걸쳐 나눠 들어옵니다.
  • 각 파일은 watermark(마지막으로 읽은 위치)를 기록해, 새로 추가된 부분만 증분 수집합니다. 처음부터 다시 읽으려면 taco collect --full.

특정 도구만 수집하려면:

taco collect --provider claude_code --provider codex

값은 위 표의 provider 이름(claude_code·claude_desktop·codex·cursor·gemini·antigravity)입니다. 오타는 에러로 막히고 유효값을 알려줍니다 — 예를 들어 --provider claude는 무효이고 claude_code가 정답입니다.

필터 적용

수집된 이벤트는 설정의 allowed_orgs·allowed_dirs 필터를 통과해야 적재됩니다.

  • git remote가 있는 이벤트는 org 필터를 받습니다. 기본값은 [](제한 없음)입니다.
  • allowed_dirs가 설정되면 그 하위 경로의 작업만 수집됩니다. 작업 경로(cwd)를 기록에 남기지 않는 도구(Cursor·Gemini CLI·Antigravity)는 이 경우 전량 제외됩니다 — 비교할 경로가 없어 통과할 방법이 없기 때문입니다. taco collect가 제외 건수와 그중 cwd 없는 건수를 따로 알려주므로 "왜 0건이지?"를 바로 알 수 있습니다. 이 도구들도 수집하려면 taco config set allowed_dirs ""로 경로 제한을 해제하세요.

로컬 대화 열람

로컬 대시보드(taco dashboard)에서는 세션의 대화 원문(프롬프트·응답·툴 호출)까지 열람할 수 있으며, 모든 provider(claude_code/claude_desktop/codex/cursor/gemini/antigravity)를 지원합니다. 단 Antigravity는 conversations/*.db(SQLite)만 열람되고, implicit/*.pb(protobuf) 형식의 세션은 아직 빠집니다. MCP의 taco_session·taco_search도 이 로컬 대화를 읽습니다.

비용 산정

  • 모델 단가는 LiteLLM 피드를 동기화해서 씁니다. 서버는 자동 동기화 + 과거 이벤트 소급 반영.
  • 로컬 단가표는 캐시가 만료되면 자동으로 갱신됩니다 — stats·statusline·mcp는 24시간, dashboard는 7일 기준이며, 갱신 실패는 조용히 무시됩니다. taco pricing sync는 지금 당장 갱신하고 싶을 때만 쓰면 됩니다.
  • 네트워크가 없어도 바이너리에 내장된 단가표 스냅샷으로 계산되므로 오프라인에서도 비용이 나옵니다(그만큼 최신 모델은 빠질 수 있습니다).
  • 단가가 아직 없는 모델은 비용 0으로 적재되고, 이후 단가가 채워지면 소급 계산됩니다.

다음

  • CLI 명령 — collect/sync/hook 사용법
  • 설정 — 수집 범위 조정
이 페이지
지원 목록수집 방식필터 적용로컬 대화 열람비용 산정다음