Ingest Claude Code conversation history into the Obsidian wiki. Use this skill when the user wants to mine their past Claude conversations for knowledge, import their ~/.claude folder, extract insights from previous coding sessions, or says things like "process my Claude history", "add my conversations to the wiki", "what have I discussed with Claude before". Also triggers when the user mentions their .claude folder, Claude projects, session data, or past conversation logs.
You are extracting knowledge from the user's past Claude Code conversations and distilling it into the Obsidian wiki. Conversations are rich but messy — your job is to find the signal and compile it.
This skill can be invoked directly or via the wiki-history-ingest router (/wiki-history-ingest claude).
.env to get OBSIDIAN_VAULT_PATH and CLAUDE_HISTORY_PATH (defaults to ~/.claude).manifest.json at the vault root to check what's already been ingestedindex.md at the vault root to know what the wiki already containsCheck .manifest.json for each source file (conversation JSONL, memory file). Only process:
ingested_atThis is usually what you want — the user ran a few new sessions and wants to capture the delta.
Process everything regardless of manifest. Use after a wiki-rebuild or if the user explicitly asks.
Claude Code stores everything under ~/.claude/. Here is the actual structure:
~/.claude/
├── projects/ # Per-project directories
│ ├── -Users-name-project-a/ # Path-derived name (slashes → dashes)
│ │ ├── <session-uuid>.jsonl # Conversation data (JSONL)
│ │ └── memory/ # Structured memories
│ │ ├── MEMORY.md # Memory index
│ │ ├── user_*.md # User profile memories
│ │ ├── feedback_*.md # Workflow feedback memories
│ │ └── project_*.md # Project context memories
│ ├── -Users-name-project-b/
│ │ └── ...
├── sessions/ # Session metadata (JSON)
│ └── <pid>.json # {pid, sessionId, cwd, startedAt, kind, entrypoint}
├── history.jsonl # Global session history
├── tasks/ # Subagent task data
├── plans/ # Saved plans
└── settings.json
projects/*/memory/*.md) — Pre-distilled, already wiki-friendly. These contain the user's preferences, project decisions, and feedback. Gold.projects/*/*.jsonl) — Full conversation transcripts. Rich but noisy.sessions/*.json) — Tells you which project, when, and what CWD.Scan CLAUDE_HISTORY_PATH and compare against .manifest.json:
# Find all projects
Glob: ~/.claude/projects/*/
# Find memory files (highest value)
Glob: ~/.claude/projects/*/memory/*.md
# Find conversation JSONL files
Glob: ~/.claude/projects/*/*.jsonl
Build an inventory and classify each file:
Report to the user: "Found X projects, Y conversations, Z memory files. Delta: A new, B modified."
Memory files are already structured with YAML frontmatter:
---