Scadrial · Keeper Knowledge · CLI

metalmind

Not a wrapper — a connecting tissue. Cross-repo caller↔handler edges. A recall ladder that preserves wikilink structure instead of flattening it. A typed installer that replaces 14 KB of bash. One mental model over every backend — with a neutral alias for every themed verb.

$ npm install -g metalmind
Coming to npm Clone the repo to try early builds.

Beyond the glue

metalmind leans on strong open-source engines, but the tissue that connects them is what makes it a tool rather than a README. Four concrete things we built on top.

Cross-repo forge with route-match Cross-repo groups with route-match
Name-match edges union the same symbol across repos. A framework-aware HTTP-route matcher (Express / Fastify / Koa / FastAPI / Flask + fetch / axios / got / httpx / requests) links caller→handler across services. Every inferred edge carries provenance (INFERRED_NAME / INFERRED_ROUTE) so Claude can trust-grade what it reads.
Recall ladder, not a search bar
tap copperrecall escalates deliberately: semantic-only (fast), then --deep follows backlinks from the top hit, then --expand returns hits with linked context in one call. Recovers the [[wikilink]] graph that raw embeddings flatten away, and lets you pay for depth only when you need it.
Typed, reversible installer
Replaces 14 KB of overnight bash with a typed pipeline: prereq detection with per-failure remediation, atomic JSON writes that preserve your existing MCP servers, and a full uninstall that restores your prior output-style, unloads launchd, and never touches your notes.
One mental model, swappable backends
Every metal verb routes through a single dispatcher — bronze ↔ graphify, steel ↔ Serena rename, copper ↔ vault-rag. Swap a backend later by changing one row in the map; call sites don't move. Every themed command has a neutral classic alias that always works. Every command routes through a single dispatcher — graph ↔ graphify, rename ↔ Serena, recall ↔ vault-rag. Swap a backend later by changing one row in the map; call sites don't move. Every classic command has a themed Mistborn alias for those who want it.

At a glance

store copper save
Deposit decisions into your vault — frontmatter, timestamped slug, Inbox by default.
tap copper recall
Semantic search with opt-in --deep backlink traversal and --expand hybrid retrieval.
burn bronze graph
Per-repo code-graph queries. Auto-indexes on first use; cached across sessions.
forge group
Group repos together — the merged graph lights up cross-service call paths.

Commands

Metal Command Description
Copper ↓ $ metalmind store copper "..." $ metalmind save "..." Deposit an insight to the vault.
Copper ↑ $ metalmind tap copper "<q>" $ metalmind recall "<q>" Retrieve semantically (--deep / --expand).
Bronze $ metalmind burn bronze "<q>" $ metalmind graph "<q>" Query the code graph (Seeker).
Iron $ metalmind burn iron "<sym>" $ metalmind symbol "<sym>" Pull a symbol and its neighbors.
Steel $ metalmind burn steel <o> <n> $ metalmind rename <o> <n> Coordinated rename via Serena.
Tin $ metalmind burn tin $ metalmind verbose Enhanced output — verbose toggle.
Pewter $ metalmind burn pewter $ metalmind reindex Force-rebuild the code graph.
Zinc $ metalmind burn zinc "<bug>" $ metalmind debug "<bug>" Rioter — dispatch a team-debug session.
Aluminum $ metalmind burn aluminum $ metalmind wipe Wipe install (reversible uninstall).
Forge $ metalmind forge create <g> $ metalmind group create <g> Define a cross-repo group.
Forge $ metalmind forge add <g> <r> $ metalmind group add <g> <r> Add a repo to the group.
Forge $ metalmind burn bronze "<q>" --forge <g> $ metalmind graph "<q>" --group <g> Query across every repo in the group.
Seeker $ metalmind pulse $ metalmind doctor Pulse-check the install — prereqs, config, MCP state.

Both spellings always work at the CLI. Use the Scadrial / Classic toggle in the nav to re-spell the page.


Install flow

A single metalmind init drives the whole install — prereq checks, vault setup, Docker stack start, MCP registration, launchd watcher, output-style migration. Reversible via metalmind uninstall.

Recording soon Install-flow demo coming. Clone the repo and run metalmind init to try it now.

How it works

Three engines do the heavy lifting; a fourth layer is metalmind's own. Each sits behind a typed interface bound to a metal verb — so if an engine gets replaced later, your muscle memory doesn't.

Vault
Obsidian + Qdrant + Ollama (nomic-embed-text). Auto-reindex via launchd watcher.
Serena
LSP-backed symbol navigation and coordinated renames. Zero-LLM per query.
graphify
Per-repo code graph — clusters, god nodes, call paths. Tree-sitter AST; optional LLM for docs.
Forge Group
Cross-repo merge layer — name-match + HTTP-route edges tagged with INFERRED provenance.