Finds and recovers content from Claude Code session history files. This skill should be used when searching for deleted files, tracking changes across sessions, analyzing conversation history, or recovering code from previous Claude interactions. Triggers include mentions of "session history", "recover deleted", "find in history", "previous conversation", or ".claude/projects".
Extract and recover content from Claude Code's session history files stored in ~/.claude/projects/.
Session files are stored at ~/.claude/projects/<normalized-path>/<session-id>.jsonl.
For detailed JSONL structure and extraction patterns, see references/session_file_format.md.
Find all session files for a specific project:
python3 scripts/analyze_sessions.py list /path/to/projectShows most recent sessions with timestamps and sizes.
Optional: --limit N to show only N sessions (default: 10).
Locate sessions containing specific content:
python3 scripts/analyze_sessions.py search /path/to/project keyword1 keyword2Returns sessions ranked by keyword frequency with:
Optional: --case-sensitive for exact matching.
Extract files from session history:
python3 scripts/recover_content.py /path/to/session.jsonlExtracts all Write tool calls and saves files to ./recovered_content/, preserving the original directory structure.
Filtering by keywords:
python3 scripts/recover_content.py session.jsonl -k ModelLoading FRONTEND deletedRecovers only files matching any keyword in their path.
Custom output directory:
python3 scripts/recover_content.py session.jsonl -o ./my_recovery/Get detailed session metrics:
python3 scripts/analyze_sessions.py stats /path/to/session.jsonlReports:
Optional: --show-files to list all file operations.
For detailed workflow examples including file recovery, tracking file evolution, and batch operations, see references/workflow_examples.md.
recover_content.py automatically keeps only the latest version of each file. If a file was written multiple times in a session, only the final version is saved.
Choose distinctive keywords that appear in:
Create descriptive output directories:
# Bad
python3 scripts/recover_content.py session.jsonl -o ./output/
# Good
python3 scripts/recover_content.py session.jsonl -o ./recovered_deleted_docs/
python3 scripts/recover_content.py session.jsonl -o ./feature_xy_history/After recovery, always verify content:
# Check directory structure (files preserved in subdirectories)
find ./recovered_content/ -type f
# Read recovery report (shows full output paths)
cat ./recovered_content/recovery_report.txt
# Spot-check content (use actual path from report)
head -20 ./recovered_content/src/components/ImportantFile.jsx✅ Files written using Write tool ✅ Code shown in markdown blocks (partial extraction) ✅ File paths from Edit/Read operations
❌ Files never written to disk (only discussed) ❌ Files deleted before session start ❌ Binary files (images, PDFs) - only paths available ❌ External tool outputs not captured in session
# Verify project path normalization
ls ~/.claude/projects/ | grep -i "project-name"
# Check actual projects directory
ls -la ~/.claude/projects/Possible causes:
Solutions:
--show-edits flag to see Edit operationsFor sessions >100MB:
Session files may contain:
Always sanitize before sharing:
# Remove absolute paths
sed -i '' 's|~/|<home>/|g' file.js
# Verify no credentials
grep -i "api_key\|password\|token" recovered_content/*Recovered content inherits sensitivity from original sessions. Store securely and follow organizational policies for handling session data.
After finding relevant session history, suggest continuing the work:
Found [N] relevant sessions with recoverable context.
Options:
A) Resume work — run /continue-claude-work to pick up where you left off (Recommended)
B) Just show me the content — I'll decide what to do with it59f9a20
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.