Problem
Existing AI assistants (Siri, Google Assistant, ChatGPT) lack persistent long-term memory, local file access, the ability to run proactive scheduled tasks, and deep integration with your personal knowledge base. You want an assistant that knows your schedule, your contacts, your writing style, and can proactively prepare for meetings, flag important emails, and research topics -- all running locally on your machine.
Solution
Architecture: Obsidian vault + Claude Code wrapper + WhatsApp interface + cron jobs
WhatsApp / Terminal / TUI
↓
Bot wrapper (MoltBot/OpenClaw/custom)
↓
Claude Code with Skills + Tools
↓
Obsidian Vault (memory + knowledge base)
Step 1: Structure the Obsidian vault as the AI's memory
vault/
├── 00-inbox/ # Unprocessed captures
│ ├── tweets/ # Saved threads and posts
│ ├── articles/ # Blog posts, essays
│ └── captures/ # Screenshots, misc
├── 01-archive/ # Processed inbox items
├── 02-concepts/ # Organized knowledge
│ ├── ai/
│ ├── development/
│ └── leadership/
├── 03-people/ # Contact profiles with context
│ ├── team/ # ~50 team member profiles
│ └── network/ # Professional contacts
├── 04-outputs/ # Generated content
│ ├── daily-updates/ # Slack daily summaries
│ ├── linkedin/ # Post drafts
│ └── presentations/
├── 05-reference/
│ └── templates/
└── CLAUDE.md # Per-folder instructions for the bot
Step 2: Add a CLAUDE.md to each folder to guide the bot
<!-- 03-people/CLAUDE.md -->
# People Directory
Each file is a person profile in markdown with YAML frontmatter.
When updating a profile, preserve existing notes and append new context.
When asked about someone, check here first before searching online.
Step 3: Set up proactive cron tasks
# crontab entries for the bot
# Morning briefing at 7am
0 7 * * * cd ~/vault && claude --skill daily-briefing --quiet
# Process inbox items every 4 hours
0 */4 * * * cd ~/vault && claude --skill process-inbox --quiet
# Weekly reflection on Sundays
0 10 * * 0 cd ~/vault && claude --skill weekly-reflection --quiet
Step 4: Add semantic search with QMD
# Install QMD (local vector search for markdown)
npm install -g qmd
# Index the vault
qmd index ~/vault
# The bot can now search semantically
qmd search "what did I decide about the auth architecture?"
Step 5: Connect WhatsApp for mobile access
Use MoltBot or a custom bridge to send/receive messages via WhatsApp, allowing you to interact with the assistant from your phone while it operates on your home machine.
Why It Works
Obsidian vaults are just folders of markdown files, which Claude Code can read, write, and search natively. Markdown is the ideal intermediate representation for both humans and AI -- it is structured enough for reliable parsing but readable enough for manual editing. The cron-based proactive tasks run independently of user input, so the assistant can prepare your daily briefing before you wake up. QMD adds semantic search using local GGUF models, so no data leaves your machine.
Context
- Sync the vault to GitHub with automated commits for version history and cross-device access
- QMD (https://github.com/tobi/qmd) combines BM25 full-text search, vector semantic search, and LLM re-ranking -- all local
- The WhatsApp interface has no streaming, so responses arrive as complete messages
- Lock down bot permissions carefully -- an assistant with file system access and email tools is a significant attack surface
- Keep the vault structure organic and personal; start minimal and expand as your needs grow