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.
When & Why to Use This Skill
The Obsidian Conversation Catalog skill bridges the gap between AI interactions and personal knowledge management (PKM) by automatically syncing Claude conversations and Claude Code sessions into an Obsidian vault. It solves the problem of fragmented chat histories by organizing browser exports and CLI sessions into a structured, searchable, and AI-summarized format, allowing users to build a permanent, local 'Second Brain' from their AI dialogues.
Use Cases
- Personal Knowledge Management: Automatically archive and categorize AI brainstorming sessions into a local vault for long-term reference and cross-linking.
- Project Archiving: Sync Claude Code CLI sessions to maintain a chronological record of technical decisions, debugging steps, and code evolution for specific software projects.
- Advanced Information Retrieval: Use Obsidian's local search or Dataview queries to instantly find specific code snippets, topics, or advice discussed across hundreds of past conversations.
- Automated Content Summarization: Batch-process large volumes of chat exports to generate concise summaries and metadata, making it easier to review progress without reading full transcripts.
| name | obsidian-catalog |
|---|---|
| description | > |
| 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