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

설정

taco 설정은 ~/.config/taco/config.json에 저장됩니다. taco init이 대화형으로 만들어 주며, 직접 편집해도 됩니다.

설정 파일 예시

{
  "server": "https://taco-api.inflearn.com",
  "oauth_server": "https://...",
  "allowed_orgs": ["inflearn"],
  "allowed_dirs": ["/Users/me/workspace"],
  "auto_sync": true,
  "collect_session_name": true
}

위는 값을 채워 넣은 예시입니다 — 기본값이 아닙니다. allowed_orgs·allowed_dirs의 기본값은 둘 다 [](제한 없음)입니다.

항목

키기본값설명
serverhttps://taco-api.inflearn.com이벤트를 보낼 taco 서버
oauth_server(내장)로그인용 OAuth 서버. taco config로는 다룰 수 없음 — 파일 직접 편집
oauth_client_id(내장)사전 등록된 public client id. taco config로는 다룰 수 없음 — 파일 직접 편집
allowed_orgs[] (제한 없음)git remote가 이 GitHub org인 repo만 수집. 비우면 org 제한 없음
allowed_dirs[]cwd가 이 디렉터리 하위일 때만 수집. 비면 제한 없음
denied_orgs[]이 GitHub org는 제외. allow보다 우선
denied_dirs[]cwd가 이 디렉터리 하위면 제외. allow보다 우선
auto_synctruehook 실행마다 서버로 전송. 기본 켜짐
collect_session_nametrue세션 이름을 서버로도 전송할지 여부. → 세션 이름 수집

taco config get/set으로 다룰 수 있는 키는 server·auto_sync·collect_session_name·allowed_orgs·allowed_dirs·denied_orgs·denied_dirs 7개입니다. oauth_server·oauth_client_id는 위 표대로 config.json을 직접 편집해야 합니다. → CLI 명령 — config

세션 이름 수집

collect_session_name(기본 true)이 켜져 있으면 세션 이름이 이벤트와 함께 서버로 전송됩니다. 세션 이름은 도구가 만든 AI 생성 제목 또는 (제목이 없으면) 첫 프롬프트의 앞부분 요약입니다 — 즉 첫 프롬프트 일부가 서버·대시보드에 노출될 수 있습니다.

false로 끄면 서버 전송 payload에서 세션 이름만 빠지고, 로컬 DB에는 그대로 남아 로컬 대시보드(taco dashboard)에서는 계속 보입니다. 대화 본문(프롬프트·응답 전문)은 설정과 무관하게 서버로 전송되지 않습니다.

마스킹은 best-effort 입니다. 세션 이름에서 알려진 형태의 자격증명·개인정보는 ••• 로 가립니다 — API 키 접두사(sk-, AKIA, ghp_, xoxb- …), KEY=값 / KEY 는 값 형태, DB 접속 URL의 비밀번호, PEM 개인키, JWT, 주민등록번호·카드번호, 그리고 자격증명처럼 보이는 긴 랜덤 문자열. 하지만 패턴에 없는 형태는 그대로 나갈 수 있습니다. 민감 정보를 다루는 조직은 collect_session_name false 를 기본값으로 두세요.

실제로 무엇이 나가는지는 taco sync --dry-run 으로 확인할 수 있습니다 — 필드별로 값이 채워진 건수와 실제 요청 본문을 보여줍니다.

수집 필터 동작

수집 대상 여부는 org 필터 AND dir 필터로 결정됩니다 — 둘 다 설정하면 둘 다 통과해야 수집됩니다.

  • org 필터는 이벤트에 git remote가 있을 때만 적용됩니다. remote가 없는 디렉터리(로컬 전용 폴더 등)는 org 검사를 건너뛰고 무조건 수집됩니다 — org 필터가 remote 없는 작업까지 막아주지는 않습니다.

  • org 매칭은 github.com/<org>/ 형태의 remote 전용입니다. GitLab 등 다른 호스트의 remote는 org 필터를 설정한 순간 매칭될 수 없어 제외됩니다(org 필터가 비어 있으면 수집됨).

  • dir 필터는 이벤트의 작업 경로(cwd)가 allowed_dirs 중 하나의 하위인지로 판단합니다. 그래서 cwd를 기록에 남기지 않는 도구(Cursor·Gemini CLI·Antigravity)는 allowed_dirs를 설정하는 순간 전량 제외됩니다 — 비교할 경로가 없어 통과할 방법이 없습니다. taco collect가 제외 건수와 그중 cwd 없는 건수를 따로 표시하니, 이 도구들도 수집하려면 taco config set allowed_dirs ""로 제한을 해제하세요.

  • allowed_*는 허용 목록(allowlist), denied_*는 **제외 목록(denylist)**이며 제외가 우선합니다. allow를 통과한 이벤트라도 denied_orgs·denied_dirs에 걸리면 버려집니다.

  • "전부 수집하되 여기만 빼기"는 denied_dirs로 표현하세요. allowlist로 같은 걸 하려면 허용 경로를 전부 열거해야 하고, 새 레포를 만들면 조용히 빠집니다.

    taco config set denied_dirs ~/personal,~/client-x   # 이 경로 하위는 수집 안 함
    taco config set denied_orgs pokabook                # 개인 org 제외
    
  • 단, cwd를 기록에 남기지 않는 도구(Cursor·Gemini CLI·Antigravity)는 denied_dirs로 막을 수 없습니다 — 비교할 경로가 없습니다. 그 도구를 아예 수집하지 않으려면 해당 provider를 스캔에서 빼야 합니다. 같은 이유로 git remote가 없는 세션은 denied_orgs로 막을 수 없습니다.

  • 설정한 필터로 몇 건이 빠졌는지는 taco collect가 알려주고(어느 축에 걸렸는지 축 이름까지), taco doctor가 현재 값을 보여줍니다.

즉 다음이면 제외됩니다.

  • allowed_dirs가 설정됐는데 cwd가 그 하위가 아님, 또는
  • git remote가 있는데 그 org가 allowed_orgs에 없음(비-GitHub remote 포함).

주의: allowed_orgs를 설정해 두면 그 밖의 org(또는 GitLab 등 비-GitHub remote) 소속 repo는 제외됩니다. 여러 org를 쓰면 allowed_orgs를 비우거나 org를 추가하세요. 자세한 사례는 문제 해결을 보세요.

변경 후 소급 수집

필터를 바꾼 뒤 이미 지나간 세션까지 다시 모으려면 watermark를 리셋하고 전체 재수집합니다.

taco collect --full --sync

서버 override (env / 플래그)

일시적으로 다른 서버를 쓰려면 config를 건드리지 않고 override할 수 있습니다.

TACO_SERVER=https://taco-api.devinflab.com taco stats --remote
taco collect --server https://taco-api.devinflab.com --sync
overrideenv플래그
서버TACO_SERVER--server
로컬 DBTACO_LOCAL_DB--local-db
OAuth 서버TACO_OAUTH_SERVER--oauth-server (taco login에만 있음)

우선순위는 플래그 > env > config > 기본값입니다.

다음

  • 지원 도구 — 어떤 도구가 어디서 수집되나
  • CLI 명령
이 페이지
설정 파일 예시항목세션 이름 수집수집 필터 동작변경 후 소급 수집서버 override (env / 플래그)다음