work-tracker
Automatically tracks AI-assisted work sessions, code changes, and commands in Claude Code or Codex CLI, and provides daily stats, weekly reports, and data export through MCP tools.
README
Work Tracker
AI 업무 자동 추적 및 주간보고 생성 시스템. Claude Code / Codex CLI Hooks로 모든 대화, 코드 변경, 명령 실행을 100% 결정론적으로 자동 기록하고, MCP 도구를 통해 일일 통계, 주간보고, 데이터 내보내기를 수행합니다.
아키텍처
Claude Code / Codex CLI 이벤트 (자동 발생)
│
▼
Hooks (build/hooks 바이너리) ← 자동 추적 (대화/코드 변경/토큰·모델)
│
▼
SQLite DB (work-tracker.db)
│
├──▶ 일자별 JSON 캐시 (data/YYYY/MM/DD.json) ← 과거 날짜 조회 결과 캐싱
▼
MCP Server (build/mcp-server) ← 조회/보고서 (글로벌)
│
└──▶ Git 커밋 이력 수집 (작업한 프로젝트 레포 자동 스캔)
핵심 기능
자동 추적 (Hooks)
- SessionStart / SessionEnd: 세션 관리 및 일일 요약(daily_summary) 집계
- UserPromptSubmit: 사용자 프롬프트 100% 자동 캡처
- PostToolUse (Edit|Write): 코드 변경 자동 기록 (파일 경로, 생성/수정 타입, 추가·삭제 라인 수)
- PostToolUse (Bash): 실행 명령 기록 (300자 절삭)
- Stop: 응답 완료 시 어시스턴트 메시지 저장 + transcript 파싱으로 토큰 사용량·모델명 자동 집계 (같은 세션의 이전 행 토큰을 리셋해 중복 누적 방지) + 일일 요약 갱신
- PostCompact: 컨텍스트 압축 시 요약 보존
모든 기록에 작업 디렉토리(dir)가 함께 저장되어 프로젝트별 작업량이 자동 구분됩니다.
DB 스키마 변경 시 하위 호환 마이그레이션(dir, model, tokens_used 컬럼)이 자동 적용됩니다.
MCP 도구 (글로벌)
| 도구 | 설명 |
|---|---|
get_daily_stats |
일일 작업 통계 (대화 수, 토큰·모델별 사용량, 코드 변경, 프로젝트별 작업량, 주요 변경 파일 TOP 5) |
export_data |
기간별 데이터 JSON 내보내기 (대화, 코드 변경, 일일 요약) |
generate_weekly_report |
주간보고 증적 데이터 + 작성 지침 반환 → LLM이 보고서 작성 |
MCP 서버는 글로벌 등록되어 어느 프로젝트에서든 사용할 수 있습니다.
주간보고 생성 (generate_weekly_report)
증적 데이터를 수집해 LLM에게 전달하고, 정해진 양식·작성 규칙에 따라 보고서를 작성하게 합니다.
- 일자별 JSON 캐시: 과거 날짜는
data/YYYY/MM/DD.json캐시에서 로드, 캐시 미스·당일 데이터만 DB 조회 (조회 결과는 자동 캐싱) - 프로젝트별 집계: 대화 수, 코드 변경, 변경 파일 목록, 소요시간
- 작업 시간 계산: 세션 간격 합산 방식 — 연속 메시지 간격이 30분 이내면 같은 세션으로 간주해 실작업 시간 산출
- Git 커밋 이력 수집: 기간 내 작업한 프로젝트 디렉토리의 레포를 자동 스캔, 레포별
git config user.email기준 본인 커밋만 필터링 - 모델별 토큰 집계: 모델별 턴 수·토큰 사용량 분리 표시
- 시간 절감 추정: 단독 작업 추정(라인당 2분) 대비 실작업 시간 비교
- 작성 지침 내장: '기존 방식 / AI 적용 / 결과' 구조, 정량 성과 표, 증적(Git 이력·주요 변경 파일), AI 활용 팁 섹션까지 보고서 양식과 작성 규칙을 함께 반환 — 없는 사실 추측 금지, 수치 불확실 시 '추정' 표기 등 환각 방지 규칙 포함
설치
요구 사항
- Bun (빌드용)
- Claude Code 또는 Codex CLI
빌드
git clone <repository-url> ~/work_tracker
cd ~/work_tracker
npm run build:all # Hooks 바이너리 + MCP 서버 빌드
MCP 서버 등록
# Claude Code (글로벌)
claude mcp add work-tracker -s user ~/work_tracker/build/mcp-server
# Codex CLI
codex mcp add work-tracker -- ~/work_tracker/build/mcp-server
설정 예시: examples/mcp.claude.json, examples/mcp.codex.toml
크로스 컴파일 (선택)
# Windows
bun build src/hooks.ts --compile --target=bun-windows-x64 --outfile build/hooks-win.exe
bun build src/mcp-server.ts --compile --target=bun-windows-x64 --outfile build/mcp-server-win.exe
# Linux
bun build src/hooks.ts --compile --target=bun-linux-x64 --outfile build/hooks-linux
bun build src/mcp-server.ts --compile --target=bun-linux-x64 --outfile build/mcp-server-linux
Hooks 설정
Claude Code
.claude/settings.json에 hooks가 이미 구성되어 있습니다. 프로젝트 안에서 바로 동작합니다.
글로벌 적용 (모든 프로젝트에서 추적):
~/.claude/settings.json에 hooks를 등록하세요. $HOME 경로를 사용합니다.
전체 예시: examples/settings.global.json
Codex CLI
.codex/hooks.json에 hooks가 구성되어 있습니다.
전체 예시: examples/hooks.codex.json
차이점:
SessionEnd,PostCompact이벤트 미지원 →Stop에서 대체 (daily_summary 갱신 포함)async옵션 미지원- 토큰 집계 시 Codex transcript 포맷(
token_count이벤트) 자동 인식 - Windows hooks 임시 비활성화
Windows
- 빌드 시 자동으로
.exe확장자 생성 (build/hooks.exe,build/mcp-server.exe) - Hooks 설정에서
.exe경로 사용 필요 - Codex CLI hooks는 Windows 미지원
- 상세:
SETUP_GUIDE.md5. Windows 설정 참고
파일 구조
work_tracker/
├── src/
│ ├── hooks.ts # Hooks 핸들러 (자동 추적, 토큰/모델 집계)
│ └── mcp-server.ts # MCP 서버 (통계/보고서/캐시/Git 수집)
├── build/
│ ├── hooks # Hooks 바이너리
│ └── mcp-server # MCP 서버 바이너리
├── data/ # 일자별 JSON 캐시 (자동 생성, gitignore)
│ └── YYYY/MM/DD.json
├── .claude/
│ └── settings.json # Claude Code hooks 설정
├── .codex/
│ └── hooks.json # Codex CLI hooks 설정
├── examples/
│ ├── settings.project.json
│ ├── settings.global.json
│ ├── hooks.codex.json
│ ├── mcp.claude.json
│ └── mcp.codex.toml
├── scripts/
│ └── generate-report.sh # 보고서 생성 스크립트
├── work-tracker.db # SQLite DB (자동 생성, gitignore)
└── package.json
사용법
일일 통계
오늘 작업 통계 알려줘
3월 28일 통계 보여줘
→ MCP 도구 get_daily_stats 자동 호출
주간보고
주간보고 작성해줘
이번 주 주간보고 생성해줘
→ MCP 도구 generate_weekly_report 호출 → 증적 데이터 + 작성 지침 반환 → LLM이 보고서 작성 후 주간보고_시작일_종료일.md로 저장
데이터 내보내기
이번 달 데이터 내보내줘
3월 1일부터 31일까지 데이터 export 해줘
→ MCP 도구 export_data 호출 → JSON 파일 저장
데이터베이스
SQLite (work-tracker.db)에 자동 생성되며, 주요 테이블:
| 테이블 | 용도 |
|---|---|
conversations |
대화 기록 (사용자/어시스턴트/시스템, 작업 디렉토리, 모델, 토큰) |
code_changes |
코드 변경 (파일, 타입, 라인 수, 작업 디렉토리) |
daily_summary |
일일 통계 집계 (대화/코드/라인/토큰) |
weekly_reports |
주간보고서 캐시 |
과거 날짜의 원본 데이터는 data/YYYY/MM/DD.json에 캐싱되어 반복 조회 시 DB 접근을 최소화합니다.
작성자
홍우영 (dud0880@inswave.com)
라이선스
MIT License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。