Claude History Ingest for Obsidian
Mines your past Claude Code conversations, memory files and audit logs and distills them into topic-based Obsidian wiki pages.
AutomationAdvanced★ 3,691⑂ 371AI score 8/10Last updated: Nov 5, 2026
What it does
- Scans both data locations:
~/.claude/(CLI projects, conversation JSONL,memory/*.md, session metadata) and the macOS desktop app'slocal-agent-mode-sessions(audit logs + transcripts), with a pre-check so CLI-only users skip the desktop path. - Uses
.manifest.jsonfor an append-mode delta so only new or modified sources are ingested; full mode is available after a rebuild. - Runs
scripts/extract-jsonl.pyto stripthinking/tool_use/progressnoise, achieving 50–200× file-size reduction so far more sessions fit in one token budget. - Clusters knowledge by topic instead of one page per chat, routing it to
projects/<name>/concepts|skillsor globalconcepts/,skills/,entities/,synthesis/. - Writes
summary,base_confidence,lifecycleandprovenancefrontmatter (extracted / inferred / ambiguous), then updates the manifest and journal via the lockedobsidian-wiki memory synccommand.
Who it's for
- Obsidian users building a second brain on top of Claude Code sessions.
- Developers juggling many projects who don't want hard-won debugging knowledge to evaporate.
- Anyone already running (or adopting) the obsidian-wiki / llm-wiki framework.
Example uses
- "Ingest my Claude sessions from the last day" → incremental
extract-jsonl.py --sincerun, only new conversations ingested, with a coverage report like "3 projects, 12 conversations, 7 memory files". - Mine a project's
audit.jsonlfor recurring Bash commands and turn the build/test workflow intoprojects/myapp/skills/build-and-test.md. - Merge three separate chats about React performance into one global
concepts/react-performance.md, while excluding confidential client projects viaWIKI_SKIP_PROJECTS.
· · · Install guide · · ·
Try it now, no install
Paste this into Claude to use the skill without installing anything.
Read the instructions in this file and follow them to help me: https://raw.githubusercontent.com/Ar9av/obsidian-wiki/HEAD/skills/claude-history-ingest/SKILL.md What I want: (describe your task here)
If Claude can't open the link, open it yourself and paste the contents instead.
↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.
Install in the Claude app (no terminal)
- Download the ZIP with the button below.
- In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
- Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Install in Claude Code
Let Claude do it — paste this into Claude Code
Install the skill I found on AI Skill Mart. Copy the skills/claude-history-ingest folder from the GitHub repo Ar9av/obsidian-wiki into my ~/.claude/skills/ar9av-claude-history-ingest/. When it's done, tell me in one line what this skill can do.
Install with a command instead
git clone https://github.com/Ar9av/obsidian-wiki.git /tmp/obsidian-wiki && mkdir -p ~/.claude/skills && cp -r /tmp/obsidian-wiki/skills/claude-history-ingest ~/.claude/skills/⚠ This is a third-party skill. Check the source repository before installing.
- Open a terminal and clone the repo:
git clone https://github.com/Ar9av/obsidian-wiki.git ~/obsidian-wiki - Create the skills folder:
mkdir -p ~/.claude/skills - Copy this skill plus the core skill it depends on:
cp -r ~/obsidian-wiki/skills/claude-history-ingest ~/obsidian-wiki/skills/llm-wiki ~/.claude/skills/ - Set the environment variables (e.g. in
~/.zshrc):export OBSIDIAN_VAULT_PATH="$HOME/Documents/MyVault",export OBSIDIAN_WIKI_REPO="$HOME/obsidian-wiki", optionallyexport CLAUDE_HISTORY_PATH="$HOME/.claude"andexport WIKI_SKIP_PROJECTS="client-secret,tmp" - (Recommended) Run the pre-extraction step:
python3 "$OBSIDIAN_WIKI_REPO/scripts/extract-jsonl.py" - Restart Claude Code and ask: "Ingest my Claude conversation history into the Obsidian wiki."
- Start with a small window (last 1 day), then review the generated pages for any sensitive content before widening the scope.
View source on GitHub ↗License: MIT