Vibe Coding Tracker — AI 코딩 어시스턴트 사용량 추적기
요약
Vibe Coding Tracker는 AI 코딩 어시스턴트 사용량을 추적하고 관리하는 도구입니다. 이 트래커는 Rust, npm, PyPI 등 다양한 플랫폼에서 사용할 수 있도록 개발되었으며, 개발자가 자신의 AI 활용 패턴을 시각적으로 파악할 수 있게 돕습니다.
핵심 포인트
- AI 코딩 어시스턴트 사용량 추적 및 관리 기능 제공
- Rust, JavaScript(npm), Python(PyPI) 등 다중 언어 지원
- 개발자의 생산성 향상과 AI 활용 패턴 분석에 도움
Vibe Coding Tracker — AI 코딩 어시스턴트 사용량 추적기
실시간으로 AI 코딩 비용을 추적하세요. Vibe Coding Tracker는 Rust로 구축된 경량의 고성능 CLI 도구로, Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, Hermes, Grok, DeepSeek Harness 사용량을 모니터링하고 분석합니다. 상세한 비용 내역, 토큰 통계, 코드 작업 인사이트를 제공하며 메모리 사용량은 최소화합니다.
참고: CLI 예제에서는 짧은 별칭
vct를 사용합니다. 만약 npm/pip/cargo를 통해 설치했다면, 바이너리 이름이vibe_coding_tracker또는vct일 수 있습니다. 필요한 경우 별칭을 생성하거나 명령 실행 시vct대신 전체 이름을 사용하세요.
Vibe Coding Tracker가 필요한 이유?
비용 파악하기
AI 코딩 세션에 얼마의 비용이 드는지 궁금해하지 마세요. LiteLLM으로부터 자동 가격 업데이트를 받아 실시간 비용 추적을 할 수 있습니다.
초경량성
Rust로 제작되어 최소한의 리소스 사용량을 자랑합니다. 대화형 TUI(Terminal User Interface) 대시보드는 첫 새로고침 후에도 수천 개의 세션이 디스크에 저장되어 있어도 일반적으로 약 60MB의 상주 메모리만을 차지하며, Electron이나 무거운 런타임은 없습니다. ~/.vct/sessions/ 아래에 영구적인 세션별 원장(ledger)을 유지하기 때문에, 실행 간에도 새롭거나 변경된 소스만 다시 파싱합니다.
아름다운 시각화 (Beautiful Visualizations)
원하는 뷰를 선택하세요:
- 대화형 대시보드 (Interactive Dashboard): 즉각적인 로딩 스피너, 배경 증분 새로고침, 스크롤 가능한 모델 목록(화살표 키 사용), 실시간 프로세스별 CPU/메모리 출력, 그리고 간결한 K/M/B 숫자 형식 지원의 반응형 터미널 UI
- 정적 보고서 (Static Reports): 문서화를 위한 전문적인 테이블
- 스크립트 친화적 (Script-Friendly): 자동화를 위한 일반 텍스트 및 JSON
- 완전 정밀도 (Full Precision): 회계 처리를 위한 정확한 비용 내보내기
제로 설정 (Zero Configuration)
Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, Hermes, Grok, DeepSeek Harness의 로그를 자동으로 감지하고 처리합니다. 설정이 필요 없으며, 실행하고 분석하기만 하면 됩니다. 만약 동작 방식을 조정하고 싶다면(아래 Configuration 참조), 첫 실행 시 ~/.vct/config.toml 파일에 합리적인 기본값이 생성됩니다.
풍부한 통찰력 (Rich Insights)
- 모델별 및 날짜별 토큰 사용량
- 캐시 유형별 비용 분석 (읽기 / 생성)
- 파일 작업 추적 (편집, 읽기, 쓰기 라인 수)
- 도구 호출 기록 (Bash, Edit, Read, Write, TodoWrite)
- 제공업체별 총합계
주요 기능 (Key Features)
| 기능 (Feature) | 설명 (Description) |
|---|---|
| 다중 공급자 (Multi-Provider) | Claude Code, Codex, Copilot, Gemini, OpenCode, Cursor, Hermes, Grok, DeepSeek Harness |
| ... |
빠른 시작 (Quick Start)
설치 (Installation)
가장 적합한 설치 방법을 선택하세요:
방법 1: npm에서 설치하기
전제 조건 (Prerequisites): Node.js v22 이상
다음 패키지 이름 중 하나를 선택하세요 (모두 동일합니다):
# 메인 패키지
npm install -g vibe-coding-tracker
...
방법 2: PyPI에서 설치하기
전제 조건: Python 3.8 이상
pip install vibe_coding_tracker
# 또는 uv로 사용
uv pip install vibe_coding_tracker
...
방법 3: crates.io에서 설치하기
공식 Rust 패키지 레지스트리에서 Cargo를 사용하여 설치하세요:
cargo install vct-cli
첫 실행
# 대화형 대시보드에서 사용량을 확인합니다.
vct usage
...
명령어 가이드
vct --help를 실행하여 명령 목록을 확인하고, vct <명령어> --help로 특정 명령어의 플래그를 확인하세요.
시간 범위 플래그 (usage와 analysis에서 공유되며, 상호 배타적이며 기본값은 --all):
| 플래그 | 기간 |
|---|---|
--daily | 오늘 수정된 세션 |
| ... |
Usage 명령어
모든 AI 코딩 세션에 걸쳐 지출한 비용을 추적합니다.
기본 사용법
# 대화형 대시보드 (권장)
vct usage
...
[!NOTE]
모델 행은 비용이 오름차순으로 정렬되므로, 가장 많은 비용을 지출한 모델이 마지막에 나열됩니다 (--table의TOTAL행 바로 위). 이는 대화형 대시보드,--table, 그리고--text출력에 적용되며,--json은 고정된 순서 없이 행을 나열합니다. 또한, 대화형 대시보드는 선택한 범위에서 사용량이 0인 모델도 숨깁니다.
[!TIP]
동일한 모델이 여러 공급자 접두사(openai/gpt-5.5,azure/gpt-5.5, 일반gpt-5.5) 아래에 라우팅된 경우 여러 행으로 나타날 수 있습니다.--merge-providers는 첫 번째/이후의 기본 이름(예:gpt-5.5vsgpt-5.4와 같은 버전은 분리됨)을 공유하는 행들을 병합하고 이미 가격이 책정된 비용을 합산합니다. 대화형 대시보드에서는m을 눌러 실시간으로 토글할 수 있습니다 (선택 사항은~/.vct/config.toml에 저장되므로 다음 실행 시 기억함);--merge-providers는 이미 병합된 상태로 대시보드를 엽니다.--json은 모델별 원본 내보내기로 유지됩니다.
미리보기: 인터랙티브 대시보드 (vct usage)
┌ Models · $79.33 · 49.1M tokens · 3 models ───────────────────────────────────────────────────────────────────────────┐
│Model Input Output Cache Read Cache Write Total Cost (USD) Share █
│ █
...
두 인터랙티브 대시보드는 터미널 설정이 완료되자마자 중앙에 Loading sessions... 스피너를 표시합니다. 로딩은 q, Ctrl+C, 그리고 크기 조정 이벤트에 반응하여 응답성을 유지합니다. 이후의 스캔은 마지막으로 성공한 데이터를 Refreshing... 푸터와 함께 보이게 유지합니다. 새로 고침 실패 시에는 마지막으로 알려진 좋은 보기(last-known-good view)를 유지하고 다음 예약 또는 수동 새로 고침에서 재시도합니다.
미리보기: 테이블 및 JSON (vct usage)
--table은 제공업체별 요약과 함께 정적 보고서와 동일한 숫자를 출력하며, --json은 스크립팅을 위해 모델당 하나의 풍부해진 행(각각 cost_usd 포함)을 방출합니다.
Token Usage Statistics
┌───────────────────────────┬─────────┬─────────┬─────────────┬─────────────┬──────────────┬────────────┐
...
// vct usage --json (모델 하나만 표시; 행은 고정된 순서로 오지 않음)
[
{
...
모든 행은 제공업체에 관계없이 동일한 플랫 토큰 필드를 가집니다. 몇 가지 키는 해당 행이 값을 넣을 것이 있을 때만 나타납니다: cache_creation은 캐시 쓰기를 5분 및 1시간 TTL(Time To Live) 공유로 분할하고, server_tool_use는 Claude 웹 검색 횟수를 계산하며, above_tier는 프롬프트가 장문 컨텍스트 가격 계층을 넘었을 때의 요청 토큰을 담고 있고, 도구 토큰을 사용한 Gemini 행은 LiteLLM이 비율을 책정하지 않아 total_tokens에만 계산되는 tool_tokens를 가집니다.
스캔하는 내용
이 도구는 다음 디렉토리를 자동으로 스캔합니다:
~/.claude/projects/**/*.jsonl(Claude Code — 재귀적 검색, 서브 에이전트 로그 포함)~/.codex/sessions/**/*.jsonl(Codex — 재귀적 검색, 일일 하위 디렉토리 포함) 및~/.codex/archived_sessions/*.jsonl, 사용자가 세션을 보관할 때 Codex가 해당 세션의 로그를 이동시키는 평면 디렉토리입니다. (두 위치 모두에서 발견된 세션은 한 번만 계산됩니다)~/.copilot/session-state/<sessionId>/events.jsonl(Copilot CLI)~/.gemini/tmp/<project_hash>/chats/*.jsonl(Gemini CLI)~/.local/share/opencode/opencode.db(OpenCode — SQLite 데이터베이스;$XDG_DATA_HOME을 준수합니다)~/.cursor/chats/*/*/store.db(Cursor — SQLite 채팅 저장소로,analysis및 다른 제공업체와 일관된 로컬usage추정치에 사용됩니다)~/.hermes/state.db(Hermes — SQLite 데이터베이스,$HERMES_HOME을 준수합니다;usage만 기록)$GROK_HOME/sessions/*/*/signals.json(Grok CLI — 기본값은~/.grok; 형제 파일인updates.jsonl이analysis데이터를 제공합니다)$DSH_HOME/sessions/*/*/session.jsonl.zstd(DeepSeek Harness — 기본값은~/.dsh; `compression =
모든 usage 및 analysis 스캔은 ~/.vct/sessions/ 아래에 세션별 원장(ledger)을 읽고 쓰며 (어시스턴트당 하나의 <provider>.json), 변경되지 않은 세션은 두 번 파싱되지 않으므로, 일회성 실행과 대시보드의 첫 렌더링은 변경된 내용에만 시간을 할애합니다. 더 중요하게도, 어시스턴트가 자체 기록을 정리하거나 (Claude Code는 기본적으로 30일 보관) ~/.claude/projects와 같은 전체 세션 디렉토리가 삭제되어도, 모든 총계에는 여전히 포함되며, 비대화형 실행은 원장에서 몇 개의 세션이 왔는지 알려주는 한 줄의 메모를 출력합니다. 재개된 세션은 로그가 변경될 때 다시 읽힙니다. 이 원장은 각 제공업체(provider) 고유의 형태로 일별 토큰 수와 도구 카운터만 보유하며, 대화 기록이나 가격 정보는 절대 포함하지 않으며, vct는 이를 삭제하지 않습니다: 읽을 수 없는 파일은 별도로 이름이 변경되고, 더 최신 버전의 vct가 작성한 파일은 그대로 둡니다. 디렉토리를 삭제하면 현재 디스크에 있는 내용부터 다시 시작할 수 있습니다. vct analysis --json 및 vct analysis FILE은 파일을 완전히 파싱하며 이 원장을 사용하지 않습니다.
실시간 할당량 패널 (Live Quota Panels)
vct usage는 Claude Code, Codex, GitHub Copilot, Cursor, Grok에 대한 실시간 할당량 사용량을 대시보드에서 — 설정 없이 — 보여줍니다. 상태 표시줄 후크나 입력할 자격 증명(credentials)이 필요하지 않습니다: vct는 각 제공업체의 자체 자격 증명을 읽고, 백그라운드 스레드에서 사용량 API를 호출하며, 작업하는 동안 패널을 최신 상태로 유지합니다. 모든 게이지는 사용된 비율이므로, 가득 찬 막대는 건드리지 않은 것이 아니라 소진되었다는 의미입니다. (대시보드를 더 조용하게 사용하고 싶으신가요? config.toml의 [usage.quota] 아래에서 panels를 조정하거나, 빈 배열 []로 설정하여 할당량 카드를 완전히 숨길 수 있습니다. 표 아래의 제공업체별 비용 라인은 로컬 스캔 데이터이며 할당량 패널이 아니므로, 여기서 설정한 대로 유지됩니다.)
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기