설정
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의 기본값은 둘 다[](제한 없음)입니다.
항목
| 키 | 기본값 | 설명 |
|---|---|---|
server | https://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_sync | true | hook 실행마다 서버로 전송. 기본 켜짐 |
collect_session_name | true | 세션 이름을 서버로도 전송할지 여부. → 세션 이름 수집 |
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
| override | env | 플래그 |
|---|---|---|
| 서버 | TACO_SERVER | --server |
| 로컬 DB | TACO_LOCAL_DB | --local-db |
| OAuth 서버 | TACO_OAUTH_SERVER | --oauth-server (taco login에만 있음) |
우선순위는 플래그 > env > config > 기본값입니다.