
This pulls your Claude Code session history from the JSONL files stored in ~/.claude/projects and analyzes them for patterns and insights. You can scope it to the current project or search across all your sessions. It's smart about handling large datasets, automatically splitting files and using parallel processing when needed. The main use case is when you want to capture what happened in a conversation, extract themes from past work, or reference "what we discussed" as source material. The implementation is thorough with date filtering, error handling, and even OS-specific stat commands, though you'll need jq installed. Honestly feels like the kind of meta-analysis tool you don't think you need until you've been working in Claude Code for a few months and want to surface what you actually built.
$ npx -y skills add ai-native-camp/camp-2 --skill history-insight --agent claude-codeInstalls into .claude/skills of the current project.
Claude Code 세션 히스토리를 분석하고 인사이트를 추출합니다.
~/.claude/projects/<encoded-cwd>/*.jsonl
Path Encoding: /Users/foo/project → -Users-foo-project
상세 파일 포맷:
${baseDir}/references/session-file-format.md
스코프 결정:
명시된 경우 (AskUserQuestion 생략 가능):
current_projectall_sessions명시되지 않은 경우 - AskUserQuestion 호출:
question: "세션 검색 범위를 선택하세요"
options:
- "현재 프로젝트만" → ~/.claude/projects/<encoded-cwd>/*.jsonl
- "모든 Claude Code 세션" → ~/.claude/projects/**/*.jsonl
# Current project only
find ~/.claude/projects/<encoded-cwd> -name "*.jsonl" -type f
# All sessions (모든 프로젝트)
find ~/.claude/projects -name "*.jsonl" -type f
날짜 필터링: 파일의 mtime(수정시간) 확인 후 필터. OS별 stat 옵션 다름:
stat -f "%Sm" -t "%Y-%m-%d" <file>stat -c "%y" <file>Session files found?
├─ No → Error: "No sessions found"
└─ Yes → How many files?
├─ 1-3 files → Direct Read + parse
└─ 4+ files → Batch Extract Pipeline
직접 Read로 JSONL 파싱. 파일이 크면(≥5000 tokens) extract-session.sh 사용:
${baseDir}/scripts/extract-session.sh <session.jsonl>
/tmp/cc-cache/<analysis-name>/)sessions.txt)user_messages.txt)clean_messages.txt)clean_messages.txt가 너무 커서 Read 실패 시:
파일 분할:
split -l 2000 clean_messages.txt /tmp/cc-cache/<name>/batch_
병렬 Task(opus) 호출:
Task(subagent_type="general-purpose", model="opus", run_in_background=true)
prompt: "batch_XX 파일을 읽고 주제/패턴 요약해줘"
결과 병합: Task(opus)로 종합
## Session Capture Complete
- **Sessions:** N files processed
- **Messages:** X total, Y after filter
### Extracted Insights
[분석 결과]
| Scenario | Response |
|---|---|
| No session files found | "No session files found for this project." |
| File too large | Auto-preprocess with extract-session.sh |
| jq not installed | "Error: jq is required. Install with: brew install jq" |
| Task failed | "Warning: Could not process [file]. Skipping." |
| 0 relevant sessions | "No sessions matched your criteria." |
~ prefix 사용)${baseDir}/scripts/extract-session.sh - JSONL 압축 (thinking, tool_use 제거)${baseDir}/references/session-file-format.md - JSONL 구조 및 파싱Sponsors