How 0xsero/ai-data-extraction works
This toolkit discovers local histories from multiple AI coding assistants, converts their vendor-specific records into conversation JSONL, and offers two downstream corpus workflows: privacy redaction and Agent Skills generation. The README documents the extractor coverage and output format; sampled source confirms several adapter parsing patterns and the downstream transformations. Some adapter internals and extract_all.sh were not sampled, so their finer-grained wiring is omitted.
Main entry points: extract_all.sh Extract all · filter_privacy.py Privacy redactor · corpus_to_skills.py Skill generator · extract_claude_code.py Claude extractor
Components 19
History extractors
- Extract all
extract_all.sh - Claude extractor
extract_claude_code.py - Codex extractor
extract_codex.py - Cursor GUI extractor
extract_cursor.py - Cursor CLI extractor
extract_cursor_cli.py - Continue extractor
extract_continue.py - Gemini extractor
extract_gemini.py - OpenCode extractor
extract_opencode.py - Trae extractor
extract_trae.py - Windsurf extractor
extract_windsurf.py
Corpus workflows
- Conversation JSONL
- Privacy redactor
filter_privacy.py - Redacted JSONL
- Skill generator
corpus_to_skills.py - Generated skills
External integrations
- Chat-completions API
- OpenAI Privacy Filter
Other components
- Operator
- Assistant histories
Connections 45
- Operator → Extract all: runs
- Operator → Claude extractor: runs
- Operator → Codex extractor: runs
- Operator → Cursor GUI extractor: runs
- Operator → Cursor CLI extractor: runs
- Operator → Continue extractor: runs
- Operator → Gemini extractor: runs
- Operator → OpenCode extractor: runs
- Operator → Trae extractor: runs
- Operator → Windsurf extractor: runs
- Extract all → Claude extractor: dispatches
- Extract all → Codex extractor: dispatches
- Extract all → Cursor GUI extractor: dispatches
- Extract all → Cursor CLI extractor: dispatches
- Extract all → Continue extractor: dispatches
- Extract all → Gemini extractor: dispatches
- Extract all → OpenCode extractor: dispatches
- Extract all → Trae extractor: dispatches
- Extract all → Windsurf extractor: dispatches
- Assistant histories → Claude extractor: reads
- Assistant histories → Codex extractor: reads
- Assistant histories → Cursor GUI extractor: reads
- Assistant histories → Cursor CLI extractor: reads
- Assistant histories → Continue extractor: reads
- Assistant histories → Gemini extractor: reads
- Assistant histories → OpenCode extractor: reads
- Assistant histories → Trae extractor: reads
- Assistant histories → Windsurf extractor: reads
- Claude extractor → Conversation JSONL: writes
- Codex extractor → Conversation JSONL: writes
- Cursor GUI extractor → Conversation JSONL: writes
- Cursor CLI extractor → Conversation JSONL: writes
- Continue extractor → Conversation JSONL: writes
- Gemini extractor → Conversation JSONL: writes
- OpenCode extractor → Conversation JSONL: writes
- Trae extractor → Conversation JSONL: writes
- Windsurf extractor → Conversation JSONL: writes
- Operator → Privacy redactor: runs
- Conversation JSONL → Privacy redactor: reads
- Privacy redactor → OpenAI Privacy Filter: loads
- Privacy redactor → Redacted JSONL: writes
- Operator → Skill generator: runs
- Conversation JSONL → Skill generator: reads
- Skill generator → Chat-completions API: requests skills
- Skill generator → Generated skills: writes