A personal knowledge vault powered by Obsidian and Claude Code. Plain markdown files in a Git repository — no proprietary formats, no sync fees, no lock-in.
Read the background post for the motivation and design decisions behind Mneme.
- Structured Areas — long-term topics organised in folders you define
- Quick capture — drop thoughts into
Inbox/, route them later with/process-inbox - AI-assisted processing — Claude proposes cross-links and enriches content during inbox triage; you review and approve
- Smart staging —
Resources/holds notes without a clear home; three related resources trigger promotion to a new Area, stale ones get flagged for deletion - Area Journaling —
/log-{area}skills for areas with recurring entries, generated when you run/setup - Periodic reviews —
/reviewsurfaces stale notes, broken links, and orphaned content - End-to-end encrypted —
git-cryptrenders your markdown opaque in the remote; only key holders can read your content - Git-backed — every change is versioned; commit with
/sync-vault - Auto-formatting — Prettier + markdownlint run on every commit via pre-commit hook
flowchart LR
subgraph capture ["Capture"]
inbox["/inbox"]
logarea["/log-{area}"]
end
subgraph process ["Process"]
processinbox["/process-inbox"]
end
subgraph reviewsg ["Review"]
reviewcmd["/review"]
end
subgraph sync ["Sync"]
syncvault["/sync-vault"]
end
subgraph vault ["Vault"]
Inbox["Inbox/"]
Areas["Areas/"]
Resources["Resources/"]
end
subgraph remote ["Remote"]
Git["Git remote"]
end
style capture fill:#eef2ff,stroke:#4f46e5,color:#3730a3
style process fill:#eef2ff,stroke:#4f46e5,color:#3730a3
style reviewsg fill:#eef2ff,stroke:#4f46e5,color:#3730a3
style sync fill:#eef2ff,stroke:#4f46e5,color:#3730a3
inbox -->|"creates note"| Inbox
logarea -->|"logs entry"| Areas
Inbox -->|"move / merge"| processinbox
processinbox -->|"fits area"| Areas
processinbox -->|"ambiguous"| Resources
Resources -->|"promote"| reviewcmd
reviewcmd -->|"fits area"| Areas
reviewcmd -->|"stale / irrelevant"| Deleted["🗑 Deleted"]
Areas -->|"commit & push"| syncvault
syncvault --> Git
| Skill | Description |
|---|---|
/setup |
One-time bootstrapper — run this first |
/log-{area} |
Log an entry to a journalled area (generated by /setup) |
/inbox |
Capture a fleeting note |
/process-inbox |
Route inbox notes to their Areas |
/review |
Periodic vault health check |
/sync-vault |
Commit and push all changes |
Your vault content is private by default — only you have access to your Git repository. For an extra layer of protection, you can encrypt all markdown files at rest with git-crypt:
brew install git-crypt
git-crypt init
git-crypt add-gpg-user YOUR_GPG_KEY_IDThen add this to .gitattributes:
**/*.md filter=git-crypt diff=git-crypt
Commit messages remain in plaintext — the /sync-vault skill reminds you to
keep them free of sensitive content.
- Obsidian
- Claude Code
- macOS with Homebrew
-
Click Use this template → Create a new repository
-
Clone your new repo and enter the directory
-
Install dependencies and configure git hooks:
make install && make setup -
Open the vault in Obsidian (
File → Open Vault → select the repo folder) -
Open the repo in Claude Code and run:
/setupClaude will ask which Areas you want to track and generate your personal vault structure and skills. This is a one-time step.