Skip to main content

Sync Claude conversations to Obsidian markdown files

Project description

Claude Vault

Transform your Claude conversations into a searchable, organized knowledge base in Obsidian.

Quick Start

pip install -e .
claude-vault init          # run inside your Obsidian vault folder
claude-vault sync ~/Downloads/conversations.json

That's it. Your conversations are now in conversations/ as Markdown files.

Installation

Requirements: Python 3.8+, optional: Ollama for AI tagging and semantic search.

git clone https://github.com/MarioPadilla/claude-vault.git
cd claude-vault
python3 -m venv venv && source venv/bin/activate
pip install -e .

Optional — Ollama setup for AI features:

ollama serve
ollama pull llama3.2:3b        # for tagging & summarization
ollama pull nomic-embed-text   # for semantic search

Features

  • Local-first — everything stays on your machine, no external APIs required
  • Two import formats — Claude Web exports (.json) and Claude Code history (.jsonl) auto-detected
  • AI tagging & summarization — local LLM (Ollama) generates tags and summaries; falls back to keyword extraction
  • Semantic search — find conversations by concept, not just exact words
  • Smart relationship detection — automatically links related conversations via shared tags
  • Bi-directional sync — rename or move files freely; UUID tracking keeps everything in sync
  • Watch mode — auto-syncs when your export files change
  • PII protection — detect, redact, or skip conversations containing personal or sensitive data
  • Dry-run mode — preview all changes before writing anything

Usage

Export your conversations

  1. Go to claude.ai → Settings → Export data
  2. This downloads conversations.json
  3. For Claude Code history, point directly at ~/.claude

Sync

# Web export (auto-detected)
claude-vault sync ~/Downloads/conversations.json

# Claude Code history
claude-vault sync ~/.claude

# Preview changes without writing
claude-vault sync conversations.json --dry-run

Search

# Semantic search (requires Ollama + nomic-embed-text)
claude-vault search "async error handling"

# Keyword search
claude-vault search "python" --mode keyword

# Filter by tag
claude-vault search "API" --tag debugging

Watch mode

claude-vault watch-add ~/Downloads --source web   # register a path
claude-vault watch                                # start (foreground)
claude-vault watch-status
claude-vault watch-stop

PII & sensitive content protection

Scan conversations for personal or confidential data before they are written to disk.

Detected patterns: emails, phone numbers, SSNs, credit card numbers, API keys, IP addresses, credential contexts (password:, token:, etc.). If Ollama is running, an LLM pass also classifies broader sensitive content.

Risk levels: high (SSN / credit card / API key), medium (email / phone), low (IP / credential context).

# Tag conversations that contain PII (adds pii-* tags + frontmatter fields)
claude-vault sync conversations.json --detect-pii

# Redact PII before writing — stored files contain [REDACTED-EMAIL] etc.
claude-vault sync conversations.json --detect-pii --redact-pii

# Skip conversations at medium risk or above entirely
claude-vault sync conversations.json --detect-pii --skip-sensitive

To make these behaviours permanent, set them in ~/.claude-vault/config.json:

{
  "pii": {
    "enabled": false,
    "redact": false,
    "skip_sensitive": false,
    "use_llm": true,
    "risk_threshold": "medium"
  }
}

Other commands

claude-vault status              # vault statistics
claude-vault retag               # regenerate AI tags (requires Ollama)
claude-vault retag --force       # regenerate even existing tags
claude-vault verify              # check file/database consistency
claude-vault verify --cleanup    # remove orphaned database entries
claude-vault config              # view current configuration

Use claude-vault [command] --help for full options on any command.

Configuration

Global config lives at ~/.claude-vault/config.json. Run claude-vault config to view and edit it.

Key settings:

Section Key Default Purpose
ollama model llama3.2:3b Model used for tagging
ollama url http://localhost:11434/api/generate Ollama endpoint
embeddings model nomic-embed-text Model used for semantic search
pii risk_threshold medium Minimum level to tag as sensitive
pii use_llm true Enable LLM-based classification
root custom_keywords null Extra tag → keyword mappings for fallback tagging

Troubleshooting

Error Fix
"Ollama not running" Run ollama serve
Semantic search returns nothing Run ollama pull nomic-embed-text
"Module not found" Run pip install -e .
"Not initialized" Run claude-vault init first

Contributing

Contributions are welcome. Please see CONTRIBUTING.md for setup and pull request guidelines.

License

Claude Vault is dual-licensed:

AGPL-3.0 (free) — for personal use, open-source projects, education, and non-commercial work. Modifications must be shared under the same license.

Commercial license — required for proprietary applications, SaaS products, or any deployment where you cannot comply with AGPL-3.0 copyleft terms. Contact via GitHub for pricing.

Use case License
Personal / open-source / education AGPL-3.0 ✅
Internal tool (source shared with employees) AGPL-3.0 ✅
Commercial SaaS or closed-source product Commercial 💼
Enterprise deployment (no source disclosure) Commercial 💼

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_vault-0.7.0.tar.gz (46.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_vault-0.7.0-py3-none-any.whl (38.5 kB view details)

Uploaded Python 3

File details

Details for the file claude_vault-0.7.0.tar.gz.

File metadata

  • Download URL: claude_vault-0.7.0.tar.gz
  • Upload date:
  • Size: 46.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for claude_vault-0.7.0.tar.gz
Algorithm Hash digest
SHA256 8ce7c6faaee795a9f38e84b716304b84cbf6179ca0e10b871b5ee2c194f9f3bc
MD5 f631cbae5ff1873388d452914aa44054
BLAKE2b-256 0d1dafc46661123063bfa648186135777e32b855f05b6d1a36e7ce5b044e1917

See more details on using hashes here.

File details

Details for the file claude_vault-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: claude_vault-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 38.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for claude_vault-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcba57e7559956ac1bc05d769857d3fe80fa815757817b9a0f5f7ab516ea9d91
MD5 a104129e5def020d730e1ab8553d26b0
BLAKE2b-256 ac3b5aecdb43004a7e801342e2bc5d8e88fb45a552252ab4d4aff3c8c564beff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page