home / skills / daymade / claude-code-skills / claude-code-history-files-finder

claude-code-history-files-finder skill

/claude-code-history-files-finder

This skill helps you locate, recover, and analyze content from Claude Code session history files across projects to track changes and retrieve deleted code.

npx playbooks add skill daymade/claude-code-skills --skill claude-code-history-files-finder

Review the files below or copy the command above to add this skill to your agents.

Files (7)
SKILL.md
5.3 KB
---
name: claude-code-history-files-finder
description: 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".
---

# Claude Code History Files Finder

Extract and recover content from Claude Code's session history files stored in `~/.claude/projects/`.

## Capabilities

- Recover deleted or lost files from previous sessions
- Search for specific code or content across conversation history
- Analyze file modifications across past sessions
- Track tool usage and file operations over time
- Find sessions containing specific keywords or topics

## Session File Locations

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`.

## Core Operations

### 1. List Sessions for a Project

Find all session files for a specific project:

```bash
python3 scripts/analyze_sessions.py list /path/to/project
```

Shows most recent sessions with timestamps and sizes.

Optional: `--limit N` to show only N sessions (default: 10).

### 2. Search Sessions for Keywords

Locate sessions containing specific content:

```bash
python3 scripts/analyze_sessions.py search /path/to/project keyword1 keyword2
```

Returns sessions ranked by keyword frequency with:
- Total mention count
- Per-keyword breakdown
- Session date and path

Optional: `--case-sensitive` for exact matching.

### 3. Recover Deleted Content

Extract files from session history:

```bash
python3 scripts/recover_content.py /path/to/session.jsonl
```

Extracts all Write tool calls and saves files to `./recovered_content/`.

**Filtering by keywords**:

```bash
python3 scripts/recover_content.py session.jsonl -k ModelLoading FRONTEND deleted
```

Recovers only files matching any keyword in their path.

**Custom output directory**:

```bash
python3 scripts/recover_content.py session.jsonl -o ./my_recovery/
```

### 4. Analyze Session Statistics

Get detailed session metrics:

```bash
python3 scripts/analyze_sessions.py stats /path/to/session.jsonl
```

Reports:
- Message counts (user/assistant)
- Tool usage breakdown
- File operation counts (Write/Edit/Read)

Optional: `--show-files` to list all file operations.

## Workflow Examples

For detailed workflow examples including file recovery, tracking file evolution, and batch operations, see `references/workflow_examples.md`.

## Recovery Best Practices

### Deduplication

`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.

### Keyword Selection

Choose distinctive keywords that appear in:
- File names or paths
- Function/class names
- Unique strings in code
- Error messages or comments

### Output Organization

Create descriptive output directories:

```bash
# 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/
```

### Verification

After recovery, always verify content:

```bash
# Check file list
ls -lh ./recovered_content/

# Read recovery report
cat ./recovered_content/recovery_report.txt

# Spot-check content
head -20 ./recovered_content/ImportantFile.jsx
```

## Limitations

### What Can Be Recovered

✅ Files written using Write tool
✅ Code shown in markdown blocks (partial extraction)
✅ File paths from Edit/Read operations

### What Cannot Be Recovered

❌ 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

### File Versions

- Only captures state when Write tool was called
- Intermediate edits between Write calls are lost
- Edit operations show deltas, not full content

## Troubleshooting

### No Sessions Found

```bash
# Verify project path normalization
ls ~/.claude/projects/ | grep -i "project-name"

# Check actual projects directory
ls -la ~/.claude/projects/
```

### Empty Recovery

Possible causes:
- Files were edited (Edit tool) but never written (Write tool)
- Keywords don't match file paths in session
- Session predates file creation

Solutions:
- Try `--show-edits` flag to see Edit operations
- Broaden keyword search
- Search adjacent sessions

### Large Session Files

For sessions >100MB:
- Scripts use streaming (line-by-line processing)
- Memory usage remains constant
- Processing may take 1-2 minutes

## Security & Privacy

### Before Sharing Recovered Content

Session files may contain:
- Absolute paths with usernames
- API keys or credentials
- Company-specific information

Always sanitize before sharing:

```bash
# Remove absolute paths
sed -i '' 's|/Users/[^/]*/|/Users/username/|g' file.js

# Verify no credentials
grep -i "api_key\|password\|token" recovered_content/*
```

### Safe Storage

Recovered content inherits sensitivity from original sessions. Store securely and follow organizational policies for handling session data.

Overview

This skill finds and recovers content from Claude Code session history files stored under ~/.claude/projects/. It helps locate deleted files, inspect past code, and reconstruct file contents written during previous Claude sessions. Use it to audit changes, recover lost work, or trace how code evolved across conversations.

How this skill works

The tool scans normalized project directories for session JSONL files and parses each record for Write, Edit, and Read tool calls. It extracts final written file contents, aggregates metadata (timestamps, sizes, tool usage), and optionally filters by keywords or session IDs. Recovery saves deduplicated files to a chosen output directory and generates a recovery report summarizing operations.

When to use it

  • You suspect a file was created or overwritten in a past Claude session and want to restore it.
  • You need to search conversation history for specific code snippets, error messages, or function names.
  • You want to track file changes or tool usage across sessions for auditing or debugging.
  • You must recover deleted or lost files after accidental removal from the workspace.
  • You need session-level metrics (message counts, tool breakdowns) for analysis.

Best practices

  • Run searches against the normalized project path under ~/.claude/projects/ to ensure complete coverage.
  • Use distinctive keywords (file names, unique function names, error text) to narrow results.
  • Specify an explicit output directory with -o and organize recovered files by feature or date.
  • Verify recovered files by reading the recovery_report.txt and spot-checking critical files.
  • Sanitize recovered content before sharing to remove absolute paths, API keys, or credentials.

Example use cases

  • Recover the last written version of a source file after it was accidentally deleted locally.
  • Find which session introduced a breaking change by searching for a failing error message across sessions.
  • Export all Write tool outputs from a session to reproduce a previous build environment.
  • Compare file operation counts and tool usage between two sessions to understand workflow differences.
  • Batch-recover files related to a specific feature by filtering with feature-specific keywords.

FAQ

What file types can be recovered?

Text-based files and code written with the Write tool are recoverable; binary files are not recovered, only their paths.

Will the tool restore intermediate edits?

No. Only the final content when Write was called is saved; Edit operations provide deltas but not full intermediate snapshots.

How does keyword filtering work?

Search and recovery accept keywords matched against file paths and content snippets; case-sensitive mode is available for exact matches.