v0.18.0 - latest release

The missing standard library
for your coding agent.

Seven modules. One vault. Memory that compounds across repos and knows when a decision has been superseded, code intelligence that crosses service boundaries without an indexer, guarded vault sync, daily routines that carry themselves forward - all sharing state, none paying the MCP-schema tax.

0 standing tool schemas · 100% local · 3 hosts: Claude Code, Codex, Cursor · 95% hit@1 at 50k notes · 1 command to uninstall
vault ~/Knowledge/ memory copper recall tap copper vault sync duralumin sync duralumin code intel bronze forge forge daily atium daily new atium new deliberation steel synod synod desktop brass notify flare health iron doctor pulse
§ The seven modules

One library. Seven closed gaps.

Each module shares state through one vault, one CLI, one stamped CLAUDE.md rule. None registers an MCP tool schema. None duplicates a Claude Code primitive. Click any module below for the deep dive.

copper
headline

MemoryCopper

Recall, save, vault CRUD, temporal supersedes, code-ref validation, and native auto-memory ingest. The rest of the library compounds back into it.

recall --compacttap copper --compact note supersedescribe supersede recall --verify-codetap copper --verify-code ingest auto-memoryingest auto-memory
95% hit@1 at 50k notes
bronze
forge

Code intelligenceBronze

Cross-repo graph with HTTP-route and symbol-name edges, extracted from your source. No index step, no external tool.

forge queryforge query symbolburn iron renameburn steel
no indexer · codegraph optional
atium
routine

Daily workflowAtium

Action items that carry themselves forward. One-shot archive. Mon-Fri EOD launchd routine.

daily newatium new scribe archivegold routine install eodroutine install eod
launchd · systemd
steel
synod

DeliberationSteel

Seven-persona deliberative council, spawned in parallel, synthesized into a structured verdict.

synodsynod
for the next 6 months - not 60 minutes
brass
macOS

DesktopBrass

Banner / dialog / sticky notifications, wired into the EOD routine and the /save skill.

notify bannerflare banner notify dialogflare dialog notify stickyflare sticky
macOS native
duralumin
guarded

Vault syncDuralumin

Commits and pushes the vault, then asks git whether the remote actually advanced. Refuses commits that would lose notes.

syncduralumin sync --dry-runduralumin --dry-run
note-loss guards
iron
doctor

HealthIron

End-to-end install check: supersede links, code refs, dependency-shipped Intent skills, and leftovers from tools it replaced. The first memory tool that tells you when recall is failing you.

doctor --deeppulse --deep doctor --recall-auditpulse --recall-audit
self-auditing · self-repairing
§ Proof, not promises

Three benches we keep honest.

Reproducible numbers from bench/ in the repo. Run them yourself.

- mcp-tax-v0

First-turn token cost

Standing tool-schema tax on a cold session, before you've typed a prompt.

metalmind loopback
345
metalmind stdio
157
Claude /memory
1
mem0 (mcp)
1,319
~3.8× lower than mem0 · approx (char/4)
- recall-at-scale

Recall quality at 50k notes

Hybrid retrieval, no rerank, on a corpus of 50,000 Hacker News comments. Zero misses at k=5, every scale.

vaulthit@1hit@3p95
1,000100%100%37 ms
10,000100%100%160 ms
50,00095%100%617 ms
no server, no daemon · 12-core Linux
- recall-v0

Head to head with qmd

hit@1 with rerank on the same fixture: hand-authored gold notes plus same-domain distractors.

notesmetalmindqmd 2.1.0
1290%85%
10090%70%
50090%85%
1,00090%80%
top-of-list precision at every scale
§ See it in 30 seconds

Cold session. Old decision. One bash call.

Fresh terminal. Claude has zero context. The stamped CLAUDE.md rule teaches it to reach for tap copper on its own - sub-100ms loopback HTTP, no MCP tool registered, the answer comes from your vault verbatim.

§ Where it earns its install cost

Different tools, different bets.

Native auto memory wins below ~50 notes in one repo - and stays in that repo, on that machine. metalmind earns its install cost once knowledge crosses repo or machine boundaries - and where you want the rest of the standard library too. metalmind ingest auto-memory bridges the two: native notes flow into the synced vault.

metalmind
native auto memory
qmd
basic-memory
mem0
Letta
Scope
memory + sync + code intel + daily + synod + flare + pulse
memory only
memory only
memory (MCP knowledge graph)
memory only (LLM facts)
memory + agent runtime
Memory primitive
Markdown chunks
MEMORY.md + topic files
Markdown chunks
Markdown entities + relations
LLM-extracted facts
Managed blocks
Source preserved
-
partial
Readable without the tool
✓ plain markdown
-
-
Standing tokens
~345 (one-time prose)
first 200 lines of MEMORY.md, every session
~0
MCP schemas (unmeasured)
~1,319
n/a
hit@1 @ 1k notes
90%
n/a
80%
n/a
n/a
n/a
Cross-repo
- (per-repo by design)
Cross-machine
✓ guarded git sync
- (not synced)
DIY
DIY
✓ (cloud)
✓ (server)
Works offline
partial (OpenMemory)
partial (self-host)
State location
local vault
local per-repo dir
local files
local markdown + SQLite
cloud / vector DB
cloud / Letta server
Walk-away cost
zero
zero
zero
zero
export needed
export needed

Honest read on standing tokens: our ~345 is one-time prose in CLAUDE.md that teaches Claude when to recall - work that qmd skips. qmd wins the row, but the Scope and hit@1 rows above are where metalmind earns it back. Pick whichever bet matches the work. Zep is omitted as a column: its temporal knowledge graph is a hosted-service bet, the same trade the mem0 column already shows. Every competitor cell traces to that tool's public docs; hit@1 is stated only for tools run on our own bench.

§ Install

Five steps. A few minutes. Reversible to zero.

  1. 01 Prereq check - Python, uv, git, and at least one host: Claude Code, Codex CLI, or Cursor
  2. 02 Vault scaffold - at ~/Knowledge/ or wherever you point it
  3. 03 Python engines - sqlite-vec + fastembed via uv tool install
  4. 04 Watcher - launchd on macOS, systemd --user on Linux
  5. 05 Per-host stamping - multi-select the hosts it found, each gets recall wired in
Full README + install →
install
# 1. install the cli
$ npm install -g metalmind
 
# 2. run the wizard
$ metalmind init
prereqs · vault · engines
watcher · mcp · stamped
 
# 3. verify
$ metalmind pulse
✓ all green - claude knows your vault
 
# later, change your mind?
$ metalmind uninstall
i stopped watcher · stripped sentinels · cleared aliases
your vault is untouched.
§ Periodic table of verbs

Every command does one job.

Themed Scadrial verbs and classic aliases - both always resolve. Pick a flavor at init; theming is cosmetic.

copper
recalltap copper
aka tap copperaka recall
copper
savestore copper
aka store copperaka save
steel
renameburn steel
aka burn steelaka rename
zinc
debugburn zinc
aka burn zincaka debug
brass
stampburn brass
aka burn brassaka stamp
atium
daily newatium new
aka atium newaka daily new
gold
scribe archivegold
aka goldaka scribe archive
copper
notescribe
aka scribeaka note
copper
note supersedescribe supersede
aka scribe supersedeaka note supersede
duralumin
syncduralumin
aka duraluminaka sync
copper
ingest auto-memoryingest auto-memory
aka ingest auto-memoryaka ingest auto-memory
bronze
forge queryforge query
aka forge queryaka forge query
iron
symbolburn iron
aka burn ironaka symbol
steel
synodsynod
aka synodaka synod
brass
notifyflare
aka flareaka notify
iron
doctorpulse
aka pulseaka doctor
aluminum
uninstallburn aluminum
aka burn aluminumaka uninstall
§ How to use it well

Three patterns that compound.

The cookbook lives in the repo. Three highest-impact patterns first; the rest follows the same shape.

01

Write notes Claude finds

Frontmatter discipline first: project: is the strongest discoverability signal. Tags are cross-cutting themes, not categories. Use kind:slug shortcuts so renames don't break references. Recall before writing - duplicates are the most expensive mistake.

02

Recall hygiene

Default tap copper covers 90% of cases - start there. Escalate to --deep when one hit is right but you want adjacent context, --expand for broad research. If two rephrasings still miss, you genuinely don't have the note - write it.

03

What lives where

Plans/ for implementation plans (dated), Learnings/ for durable cross-session lessons, Work/ for project-scoped decisions. Daily/ is a logbook, not a knowledge base - promote insights to Learnings/ when you spot them.