Automatic knowledge extraction from Claude Code sessions into your Obsidian vault.
Claude Note runs as a background service, watching your Claude Code sessions and synthesizing key learnings, decisions, and questions into structured notes.
- Session Logging: Automatically captures Claude Code sessions as markdown notes
- Knowledge Synthesis: Uses Claude to extract key concepts, code patterns, and learnings
- Smart Routing: Routes synthesized knowledge to your inbox, specific notes, or creates new ones
- Open Questions Tracking: Detects and tracks questions that come up during sessions
- Vault Integration: Understands your existing notes for better context
- Python 3.11+ (for built-in
tomllib) - Claude CLI (for knowledge synthesis)
- An Obsidian vault (or any markdown-based notes system)
# Clone and install
git clone https://github.com/crimeacs/claude-note.git
cd claude-note
./install.shThe installer will:
- Check dependencies
- Ask for your vault path
- Set up the background service
- Print instructions for Claude Code hook configuration
- Hook Integration: Claude Code hooks notify claude-note when sessions start/stop
- Queue Processing: Events are queued and processed by the background worker
- Synthesis: When a session ends, Claude analyzes the transcript
- Note Routing: Extracted knowledge is written to your vault
Claude Code Session
│
▼
[Hooks fire]
│
▼
┌─────────────┐
│ Event Queue │
└─────────────┘
│
▼
┌─────────────┐ ┌─────────────┐
│ Worker │─────▶│ Synthesize │
└─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ Vault │
│ - inbox.md │
│ - notes/ │
└─────────────┘
claude-note status # Check worker and queue status
claude-note update # Check for and apply updates
claude-note drain # Process all pending sessions now
claude-note clean # Cleanup duplicate sessions, old locks
claude-note index # Rebuild vault index for synthesis context
claude-note resynth <id> # Re-synthesize a specific session
claude-note ingest <file> # Ingest PDF/DOCX into literature notesConfig file: ~/.config/claude-note/config.toml
vault_root = "/path/to/your/vault"
# Optional settings
open_questions_file = "open-questions.md" # relative to vault
[synthesis]
mode = "route" # log | inbox | route
model = "claude-sonnet-4-5-20250929"
[qmd]
enabled = false # Enable qmd semantic search for context
synth_max_notes = 5All settings can be overridden with environment variables:
CLAUDE_NOTE_VAULT- vault pathCLAUDE_NOTE_MODE- synthesis modeCLAUDE_NOTE_MODEL- Claude model for synthesis
See docs/configuration.md for full reference.
Add to your Claude Code settings (~/.claude/settings.json):
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{ "type": "command", "command": "claude-note enqueue", "timeout": 5000 }
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{ "type": "command", "command": "claude-note enqueue", "timeout": 5000 }
]
}
],
"Stop": [
{
"hooks": [
{ "type": "command", "command": "claude-note enqueue", "timeout": 5000 }
]
}
]
}
}See docs/hook-setup.md for detailed instructions.
# Status
launchctl list | grep claude-note
# Stop
launchctl unload ~/Library/LaunchAgents/com.claude-note.worker.plist
# Start
launchctl load ~/Library/LaunchAgents/com.claude-note.worker.plist
# Logs
tail -f /path/to/vault/.claude-note/logs/worker-*.log# Status
systemctl --user status claude-note
# Stop/Start
systemctl --user stop claude-note
systemctl --user start claude-note
# Logs
journalctl --user -u claude-note -fClaude Note creates/uses these files in your vault:
your-vault/
├── .claude-note/ # Internal data (gitignore this)
│ ├── queue/ # Event queue
│ ├── state/ # Session state
│ ├── logs/ # Worker logs
│ └── vault_index.json # Note index for context
├── claude-note-inbox.md # Synthesized knowledge lands here
├── open-questions.md # Questions tracker
└── claude-session-*.md # Session logs (optional)
./uninstall.shThis removes the service, CLI, and source files. Your vault data is preserved.
If you have qmd installed for semantic search, enable it in config:
[qmd]
enabled = true
synth_max_notes = 5 # Include top N relevant notes as contextThis improves synthesis quality by providing relevant vault context.
| Guide | Description |
|---|---|
| Getting Started | Step-by-step installation walkthrough |
| Configuration | Complete config reference |
| Commands | All CLI commands explained |
| Synthesis Modes | log vs inbox vs route |
| Hook Setup | Claude Code integration |
| Service Setup | launchd/systemd configuration |
| QMD Integration | Semantic search setup |
| Document Ingestion | Importing papers and docs |
| Architecture | How it works internally |
| Troubleshooting | Common issues and fixes |
MIT