project-time-tracker
프로젝트별 Claude Code 세션 시간을 집계하여 리포트 생성. 일별/주별/월별 시간 분포를 Obsidian 테이블로 시각화. "시간 추적", "프로젝트 시간", "time tracking" 등의 요청 시 자동 적용.
npx skills add majiayu000/claude-skill-registry --skill project-time-tracker --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# Project Time Tracker Skill ## 개요 Claude Code 세션 로그의 타임스탬프를 분석하여 **프로젝트별 작업 시간**을 집계하고, 일별/주별/월별 리포트를 생성하는 skill. ## 사용 방식 ```bash /project-time-tracker # 이번 주 시간 리포트 /project-time-tracker daily # 오늘 시간 리포트 /project-time-tracker weekly # 이번 주 시간 리포트 (기본값) /project-time-tracker monthly # 이번 달 시간 리포트 /project-time-tracker 2026-01-15 # 특정 날짜 시간 리포트 ``` ## 경로 정보 | 항목 | 경로 | |------|------| | 세션 로그 | `~/.claude/projects/[encoded-path]/*.jsonl` | | 출력 | `~/DocumentsLocal/msbaek_vault/analytics/time-tracking/` | --- ## 데이터 구조 ### 세션 로그 위치 ``` ~/.claude/projects/ ├── -Users-msbaek-project-a/ │ ├── abc123.jsonl │ └── def456.jsonl ├── -Users-msbaek-project-b/ │ └── ghi789.jsonl └── ... ``` ### JSONL 타임스탬프 추출 세션 시간 계산: - **시작 시간**: 첫 번째 레코드의 `timestamp` 필드 - **종료 시간**: 마지막 레코드의 `timestamp` 필드 - **세션 시간**: 종료 - 시작 ```bash # 세션 시작/종료 시간 추출 jq -s '[.[0].timestamp, .[-1].timestamp] | {start: .[0], end: .[1], duration_min: ((.[1] | fromdateiso8601) - (.[0] | fromdateiso8601)) / 60}' \ session.jsonl ``` --- ## 실행 절차 ### Step 1: 분석 기간 결정 ```bash # 모드에 따른 기간 설정 MODE="${1:-weekly}" case "$MODE" in daily|today) START_DATE=$(date +%Y-%m-%d) END_DATE=$(date -v+1d +%Y-%m-%d) PERIOD_NAME="일일" ;; weekly) S
- 개요
- 사용 방식
- 경로 정보
- 데이터 구조
- 세션 로그 위치
- JSONL 타임스탬프 추출
- 실행 절차
- Step 1: 분석 기간 결정
- Step 2: 해당 기간 세션 로그 수집
- Step 3: 프로젝트별 시간 집계
- Step 4: 일별 분포 계산 (주간/월간 리포트용)
- Step 5: 리포트 생성
- 시간 계산 규칙
- 세션 시간 산정
jq -s '[.[0].timestamp, .[-1].timestamp] | session.jsonl case "$MODE" in esac echo "분석 기간: $START_DATE ~ $END_DATE ($PERIOD_NAME)" find ~/.claude/projects -name "*.jsonl" \ echo "$1" | sed 's/-/\//g' | sed 's/^\/Users\/msbaek\///' for session in $(find ~/.claude/projects -name "*.jsonl" -newermt "$START_DATE"); do if length > 1 then else
What does the project-time-tracker skill do?
프로젝트별 Claude Code 세션 시간을 집계하여 리포트 생성. 일별/주별/월별 시간 분포를 Obsidian 테이블로 시각화. "시간 추적", "프로젝트 시간", "time tracking" 등의 요청 시 자동 적용.
How do I install it?
Run `npx skills add majiayu000/claude-skill-registry --skill project-time-tracker --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From majiayu000/claude-skill-registry, a repository with 534 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
