obsidian-catalog

darkstargeo's avatarfrom darkstargeo

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.

⭐0stars🔀0forks📁View on GitHub🕐Updated Dec 7, 2025⬇️1downloads

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.
nameobsidian-catalog
description>
allowed-toolsRead, Grep, Glob, Bash, Write, Task
version1.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 folder
  • claude_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:

  1. Run sync to export sessions (without summaries)
  2. Ask: "Generate summaries for the synced sessions"
  3. I will use sub agents to process sessions in batches
  4. 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-session
  • source: browser | code
  • session_id: UUID
  • title: Conversation name
  • date, created, updated: Timestamps
  • project: Project name
  • message_count: Number of messages
  • topics: Keywords (Claude-generated)
  • summary: Brief summary (Claude-generated)
  • has_code: Whether it contains code blocks
  • word_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