
Claude History Ingest
Mine ~/.claude conversation JSONL and related files into an Obsidian wiki so past coding sessions become searchable knowledge.
Install
npx skills add https://github.com/ar9av/obsidian-wiki --skill claude-history-ingestWhat is this skill?
- Resolves Obsidian vault and Claude history paths via the wiki config protocol (CWD .env, ~/.obsidian-wiki/config)
- Append mode uses .manifest.json to skip already-ingested conversation JSONL and memory files
- Routable from wiki-history-ingest with a claude-specific entry point
- Reads vault index.md before ingest to avoid duplicating topics already documented
- Extracts signal from messy Claude Code sessions including projects, audit logs, and local-agent-mode data when mentioned
Adoption & trust: 1.9k installs on skills.sh; 1.8k GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Grill Memattpocock/skills
Grill With Docsmattpocock/skills
Brainstormingobra/superpowers
Lark Tasklarksuite/cli
Lark Workflow Standup Reportlarksuite/cli
Cavemanjuliusbrussee/blueprint
Journey fit
Primary fit
Canonical shelf is Grow/content because the primary payoff is compounding personal documentation and recall, not shipping a feature in one sprint. Content fits distilling messy chat logs into durable wiki pages and index updates.
Common Questions / FAQ
Is Claude History Ingest safe to install?
skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Claude History Ingest
# Claude History Ingest — Conversation Mining 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`). ## Before You Start 1. **Resolve config** — follow the Config Resolution Protocol in `llm-wiki/SKILL.md` (walk up CWD for `.env` → `~/.obsidian-wiki/config` → prompt setup). This gives `OBSIDIAN_VAULT_PATH` and `CLAUDE_HISTORY_PATH` (defaults to `~/.claude`) 2. Read `.manifest.json` at the vault root to check what's already been ingested 3. Read `index.md` at the vault root to know what the wiki already contains ## Ingest Modes ### Append Mode (default) Check `.manifest.json` for each source file (conversation JSONL, memory file). Only process: - Files not in the manifest (new conversations, new memory files, new projects) - Files whose modification time is newer than their `ingested_at` in the manifest This is usually what you want — the user ran a few new sessions and wants to capture the delta. ### Full Mode Process everything regardless of manifest. Use after a `wiki-rebuild` or if the user explicitly asks. ## Claude Code Data Layout Claude Code stores data in two locations. Scan **both**. ### Source 1: `~/.claude/` (CLI sessions) ``` ~/.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 ``` ### Source 2: `~/Library/Application Support/Claude/local-agent-mode-sessions/` (Desktop app agent sessions) The Claude desktop app stores local agent mode sessions here. The structure is deeply nested: ``` ~/Library/Application Support/Claude/local-agent-mode-sessions/ └── <outer-uuid>/ └── <inner-uuid>/ ├── local_<session-uuid>.json # Session metadata └── local_<session-uuid>/ ├── audit.jsonl # Audit log — tool calls, file reads, commands run └── .claude/ └── projects/ └── <path-encoded-name>/ # Same path-encoding as ~/.claude/projects/ └── <uuid>.jsonl # Conversation transcript (same JSONL format as CLI) ``` **How to find all local-agent-mode sessions:** ```bash # Find all session metadata files find ~/Library/Application\ Support/Claude/local-agent-mode-sessions -name "local_*.json" -maxdepth 4 # Find all audit logs find ~/Library/Application\ Support/Claude/local-agent-mode-sessions -name "audit.