mirror of
https://github.com/zenlm/claude-collector.git
synced 2026-10-30 15:00:25 +00:00
main
2 files changed, 0 insertions(+), 0 deletions(-) Co-authored-by: Hanzo Dev <[email protected]>
๐ค Claude Collector
One command to extract all your Claude Code conversations for training datasets.
Quick Start
Install and run with uvx (recommended)
uvx claude-collector
That's it! The tool will:
- โ
Auto-find your Claude Code data (
~/.claude/projects) - โ Extract all conversations
- โ Sanitize PII (emails, API keys, paths)
- โ Count total tokens
- โ Save as training-ready JSONL
Or install globally
uv tool install claude-collector
claude-collector
What It Does
Scans your Claude Code session files and:
- Finds all conversation data in
~/.claude/projects - Extracts user/assistant message pairs
- Sanitizes sensitive information:
- Emails โ
[EMAIL] - API keys โ
[API_KEY] - File paths โ
/Users/[USER]/... - IP addresses โ
[IP] - OAuth tokens โ
[REDACTED]
- Emails โ
- Counts actual token usage
- Saves as clean JSONL dataset
Example Output
๐ค Claude Collector v0.1.0
Extract & sanitize Claude Code conversations
โ Found Claude data: /Users/z/.claude/projects
๐ Processing 1394 files...
โญโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโฎ
โ Metric โ Value โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโค
โ Files scanned โ 1,394 โ
โ Files with data โ 1,273 โ
โ Total messages โ 46,029 โ
โ Training examples โ 3,653 โ
โ Total tokens โ 4.04B โ
โฐโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโฏ
โ
Dataset saved!
File: claude_dataset_20251113.jsonl
Size: 19.13 MB
Examples: 3,653
๐ Ready for training!
Options
# Dry run (see stats without saving)
uvx claude-collector --dry-run
# Custom output location
uvx claude-collector --output ~/my-dataset.jsonl
# Specify input directory
uvx claude-collector --input ~/.config/claude/projects
# Filter by minimum tokens
uvx claude-collector --min-tokens 1000
# Skip sanitization (NOT recommended for sharing!)
uvx claude-collector --no-sanitize
Use Cases
1. Create Training Dataset
uvx claude-collector --output training-data.jsonl
2. Audit Your Usage
uvx claude-collector --dry-run
Shows total tokens without saving.
3. Collect from Multiple Machines
On each computer:
# Machine 1
uvx claude-collector --output machine1-data.jsonl
# Machine 2
uvx claude-collector --output machine2-data.jsonl
# Combine later
cat machine1-data.jsonl machine2-data.jsonl > combined-dataset.jsonl
4. Add to Existing Dataset
uvx claude-collector --output new-sessions.jsonl
cat existing-dataset.jsonl new-sessions.jsonl > updated-dataset.jsonl
Output Format
Each line is a JSON object:
{
"messages": [
{"role": "user", "content": "How do I..."},
{"role": "assistant", "content": "You can..."}
],
"metadata": {
"timestamp": "2025-11-13T...",
"tokens": {
"input_tokens": 100,
"output_tokens": 200,
"cache_creation_input_tokens": 5000,
"cache_read_input_tokens": 1000
}
}
}
Perfect for:
- Fine-tuning LLMs
- Training coding assistants
- Building instruction datasets
- Analysis and research
Finding Claude Data
Default Locations
~/.claude/projects/ # Primary
~/.config/claude/projects/ # Alternative
Check All Users
ls -la /Users/*/.claude/projects # macOS
ls -la /home/*/.claude/projects # Linux
Find Anywhere
find ~ -name "*.jsonl" -path "*/.claude/*" 2>/dev/null
Privacy & Security
โ ๏ธ Important: Claude Code logs contain sensitive data!
The tool comprehensively sanitizes:
๐ API Keys & Tokens:
- โ
OpenAI API keys (
sk-*) - โ
Anthropic API keys (
sk-ant-*) - โ
GitHub tokens (
ghp_*,gho_*,ghs_*, 40-char hex) - โ
HuggingFace tokens (
hf_*) - โ
Slack tokens (
xoxb-*,xoxp-*,xoxe-*) - โ AWS credentials (AKIA*, secrets)
- โ JWT tokens
- โ Google API keys & OAuth
- โ SendGrid API keys
- โ Stripe keys (live, test, restricted)
- โ Square tokens
- โ Facebook/Twitter tokens
๐ฐ Financial & Crypto:
- โ Credit card numbers
- โ Crypto seed phrases (BIP39)
- โ Ethereum/Bitcoin addresses
- โ Crypto private keys (64 hex)
๐ Authentication:
- โ Private keys (PEM format)
- โ Database URLs with passwords
- โ Generic password patterns
- โ OAuth credentials
๐ค Personal Information:
- โ Email addresses
- โ Social Security Numbers (US)
- โ Phone numbers
- โ IP addresses (last octet redacted)
- โ File paths (username redacted)
Still check before sharing:
- Project names (if sensitive)
- Company-specific terminology
- Proprietary code patterns
For maximum privacy, review the output file before uploading anywhere.
Requirements
- Python 3.8+
- Claude Code installed (for data to exist)
Installation Methods
1. uvx (easiest, no install)
uvx claude-collector
2. uv tool (global install)
uv tool install claude-collector
claude-collector
3. pip
pip install claude-collector
claude-collector
4. From source
git clone https://github.com/hanzoai/claude-collector
cd claude-collector
uv pip install -e .
claude-collector
Troubleshooting
"No Claude Code data found"
- Make sure Claude Code is installed
- Check you've had at least one session
- Try specifying path:
--input ~/.claude/projects
"Only found a few conversations"
- This is normal if you're new to Claude Code
- Each session creates one file
- More usage = more data
"Tokens show 0"
- Some messages don't have usage tracking
- This is normal for system messages
- Real conversations will have token counts
Advanced: Custom Processing
import json
# Read dataset
with open('claude_dataset.jsonl', 'r') as f:
for line in f:
example = json.loads(line)
# Access messages
user_msg = example['messages'][0]['content']
assistant_msg = example['messages'][1]['content']
# Access metadata
tokens = example['metadata']['tokens']
timestamp = example['metadata']['timestamp']
# Your custom processing here
License
MIT - Free to use for any purpose
Found a bug? Open an issue: https://github.com/hanzoai/claude-collector/issues Want to contribute? PRs welcome!
Languages
Python
100%