The Obsidian that populates itself so your Claude never forgets.
Project description
mnemo
The Obsidian that populates itself so your Claude never forgets.
You correct Claude on Monday. On Thursday, in a different repo, it makes the same mistake — because the session where you taught it is gone.
mnemo fixes that. It watches your Claude Code sessions, distils what you taught into durable rules, and feeds the relevant one back the next time it matters. Across sessions. Across projects. Without you copying anything.
Monday you: "don't use `any` in this codebase — we have strict types"
↓
mnemo writes shared/feedback/typescript-no-any.md
Thursday you: "add a helper to parse the config" (different repo, new session)
↓
mnemo injects that rule before Claude answers
Four moving parts, all on your machine:
- Capture — every session's trail into a Markdown vault at
~/mnemo/ - Extract — that trail into curated rules under
shared/ - Inject — the most relevant rule, on every prompt, before Claude answers
- Self-maintain — an autopilot that heals and retunes itself between sessions
Zero third-party dependencies. Zero network calls. Identical on Linux, macOS, and Windows.
Install
Inside Claude Code, type:
/plugin marketplace add xyrlan/mnemo
/plugin install mnemo@mnemo-marketplace
That's the whole thing. No terminal, no Python, no Node — mnemo ships as a self-contained binary that the plugin fetches for your platform on first use.
Restart Claude Code, and it's running.
Other ways to install
Via npm — if you'd rather have mnemo on your $PATH:
npx @xyrlan/mnemo install # prompts for global or project scope
npx @xyrlan/mnemo install --yes # global, no prompts
npx @xyrlan/mnemo install --project --yes
Via pipx / uv — for dotfile-managed setups and CI:
pipx install mnemo-claude # or: uv tool install mnemo-claude
mnemo init # global, or `mnemo init --project`
Both need Python 3.8+ (uv brings its own). See
docs/getting-started.md for the details, including
what mnemo init writes and how to undo it.
Already installed mnemo the old way? Installing the plugin on top means
both sets of hooks fire and everything happens twice. mnemo tells you when it
sees this — run /mnemo:migrate to clear the old install. Your vault is
untouched.
Check it worked
/mnemo:status vault state + hook health
/mnemo:doctor full diagnostic, with fixes
A healthy status opens like this:
Vault: /Users/you/mnemo (exists)
Hooks (plugin): 4/4 — declared by the mnemo plugin
Circuit breaker: closed (ok)
Then just use Claude Code. mnemo runs in the background: it logs sessions, writes a briefing at the end of each one, extracts rules when there's enough new material, and injects the most relevant rule on every prompt.
Want the live heartbeat in your status line (mnemo · 9 topics · 7↓ today)?
It's opt-in, because plugins can't set a status line:
/mnemo:statusline
Commands
/mnemo:status vault state + hook health
/mnemo:doctor full diagnostic with actionable fixes
/mnemo:open open the vault
/mnemo:fix reset the extraction circuit breaker
/mnemo:statusline install the optional status line
/mnemo:migrate remove a pre-plugin install
/mnemo:help list commands
Uninstall with /plugin uninstall mnemo. The vault is always preserved.
If you installed via npm or pipx, the same commands are mnemo <name> in a
terminal, plus mnemo init, mnemo extract, and mnemo autopilot
(mnemo help --all for the full list).
Autopilot
Between sessions, mnemo keeps its own brain in shape. Work is scheduled in tiers and rate-limited by a budget — nothing runs on the prompt path. It repairs rule provenance, grid-searches retrieval weights against your own hit/miss log, calibrates how often rules get injected, and files a weekly health digest. On by default, fully local for the mechanical work.
Control it with mnemo autopilot {status,pause,off,on}.
Where things live
~/mnemo/ your vault
├── HOME.md dashboard at the top, your notes below
├── bots/<repo>/ per-project capture (logs, memory, briefings)
├── shared/ curated rules — the project brain
│ ├── feedback/ preferences and corrections
│ ├── user/ user-profile facts
│ ├── reference/ pointers to external systems
│ └── project/ per-repo project context
└── .mnemo/ internal state (indices, telemetry)
Edit HOME.md's notes section freely — mnemo only manages the dashboard block
at the top.
Docs
- Getting started — the deeper tour: every install path, what gets written where, and how the loop works
- Configuration — every knob in
mnemo.config.json - Troubleshooting — when something looks wrong
- Obsidian — optional: browse the vault as a graph
Privacy
100% local. Zero network calls in normal operation. No third-party Python
dependencies. Every piece of telemetry (.mnemo/*.jsonl) stays on disk.
Two exceptions, both explicit: the plugin downloads its binary from GitHub
Releases on first use (checksum-verified), and rule extraction shells out to
the claude CLI you already have — which is what turns raw session logs into
rules. Read the source.
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mnemo_claude-0.17.0.tar.gz.
File metadata
- Download URL: mnemo_claude-0.17.0.tar.gz
- Upload date:
- Size: 199.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56080240a45e2d5f8eecffa092fe74d5ea80f139aa627d9d92d1088bea64753c
|
|
| MD5 |
daafaa5e4d48bd49c5923819783154b2
|
|
| BLAKE2b-256 |
c9ef949e9f67d3cc47c6af47e4e6e4f0d2d1230873c0d1848bcfe37b11ee8839
|
File details
Details for the file mnemo_claude-0.17.0-py3-none-any.whl.
File metadata
- Download URL: mnemo_claude-0.17.0-py3-none-any.whl
- Upload date:
- Size: 266.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9043a55a464c66344bf9e5ee998369ea0de6eeeb67fb42ccd8320b96bf5ff04b
|
|
| MD5 |
b67afa5baa1872a6379b68213b437100
|
|
| BLAKE2b-256 |
9ba72ebaa0dfaa7d64fafa1aca0bcd26ace39615f797ba9d17ad9253258365b1
|