obsidian-catalog
Sync Claude conversations to Obsidian vault. Use when user asks to: sync conversations, export chat history, catalog sessions, generate summaries, review past work, search conversation history, or asks what was discussed on a specific date or about a specific topic.
$ Installer
git clone https://github.com/darkstargeo/claude-to-obsidian /tmp/claude-to-obsidian && cp -r /tmp/claude-to-obsidian/skill ~/.claude/skills/claude-to-obsidian// tip: Run this command in your terminal to install the skill
name: obsidian-catalog description: > Sync Claude conversations to Obsidian vault. Use when user asks to: sync conversations, export chat history, catalog sessions, generate summaries, review past work, search conversation history, or asks what was discussed on a specific date or about a specific topic. allowed-tools: Read, Grep, Glob, Bash, Write, Task version: 1.0.0
Obsidian Conversation Catalog
Catalog all Claude conversations (browser exports + Claude Code CLI sessions) into an Obsidian vault with rich frontmatter, Claude-generated summaries, and Dataview-compatible structure.
Quick Start
Sync All Conversations
python ~/.claude/skills/obsidian-catalog/scripts/sync.py --all
Import Browser Export
python ~/.claude/skills/obsidian-catalog/scripts/sync.py --browser "/path/to/export.zip"
Sync Claude Code History Only
python ~/.claude/skills/obsidian-catalog/scripts/sync.py --code
Filter by Date
python ~/.claude/skills/obsidian-catalog/scripts/sync.py --code --since 2025-12-01
List Sessions Without Syncing
python ~/.claude/skills/obsidian-catalog/scripts/sync.py --all --list-only
Configuration
Edit ~/.claude/skills/obsidian-catalog/config.yaml to configure:
vault_path: Path to Obsidian vault's Claude folderclaude_code_path: Path to Claude Code history (default: ~/.claude/projects)auto_summarize: Whether to generate summaries automatically
Generating Summaries
After syncing, generate summaries for sessions that need them:
- Run sync to export sessions (without summaries)
- Ask: "Generate summaries for the synced sessions"
- I will use sub agents to process sessions in batches
- Summaries are written to each session's frontmatter
For large imports (100+ sessions), summaries are generated in batches using sub agents to manage context efficiently.
Searching Conversation History
Once synced, find past sessions by asking:
- "What did we work on last Tuesday?"
- "Find sessions about GIS processing"
- "Show recent conversations about the land dashboard"
- "What topics have we discussed this month?"
I will search the Obsidian vault at the configured path and return relevant sessions.
Output Structure
Sessions are organized in the vault as:
Claude/
âââ Sessions/
â âââ Browser/2025/01/24/ # Claude.ai conversations
â â âââ 2025-01-24-960f89e7.md
â âââ Code/2025/12/06/ # Claude Code sessions
â âââ 2025-12-06-2d31c8e7.md
âââ Summaries/
â âââ Daily/ # Daily rollups
â âââ Projects/ # Per-project summaries
âââ _raw/ # Original export data
âââ _Dashboard.md # Dataview queries
Frontmatter Fields
Each session file includes:
type: claude-sessionsource: browser | codesession_id: UUIDtitle: Conversation namedate,created,updated: Timestampsproject: Project namemessage_count: Number of messagestopics: Keywords (Claude-generated)summary: Brief summary (Claude-generated)has_code: Whether it contains code blocksword_count,duration_minutes: Metrics
Sub Agent Strategy
For summary generation, I use sub agents (Task tool) to:
- Process sessions in batches of 10-20
- Maintain fresh context for each batch
- Generate summaries in parallel when possible
- Handle 300+ conversations without context overflow
