Sandbox
@samvallad33/vestige

Local memory MCP server for AI agents

Vestige adds local memory to agent workflows and uses causal, temporal, and similarity signals to retrieve the older decision behind a failure. It runs as a Rust MCP server, keeps data on your machine, and includes hooks, agent files, and a dashboard for inspecting memory state.

617 stars66 forksRustUpdated 6d ago
Who it's for

Builders who use MCP-capable agents and want them to remember decisions, spot contradictions, and trace failures to the earlier cause.

What it delivers

You can stop re-explaining context and get a better shot at the real cause of a failure.

What it does

Causal backfill

Reaches backward from a failure to candidate memories that set it up, then records a receipt for the path.

Novelty and contradiction gating

Stores new information, merges redundant memories, and flags contradictions on write.

Spaced forgetting and consolidation

Uses FSRS-style retention so used memories persist while unused ones fade.

Local MCP tools

Exposes tools like `recall`, `smart_ingest`, `backfill`, `receipt`, and memory inspection commands.

Agent workflow files

Includes `CLAUDE.md`, `AGENTS.md`, and `agents/*.md` files to shape how agents work with Vestige.

Hooks and preflight scripts

Provides shell and Python hooks in `hooks/` for session setup, validation, and memory workflow steps.

Dashboard

Ships a local dashboard in `apps/dashboard` for viewing and replaying the memory graph.

How to get it

  1. 1Android (Termux) builds from source today; see docs/INSTALL-TERMUX.md.
    npm install -g vestige-mcp-server@latest

README

Vestige

Local-first memory for AI agents that finds the cause, not just the match.

Vestige remembers your decisions, catches contradictions before they cost you, and traces a failure back to the older memory that actually caused it. One 25MB Rust binary over MCP. No cloud, no API keys, no telemetry. Your data never leaves your machine.

Release Tests Binary License

Consulting · Install · Why not RAG · Benchmark · Science · Tools · Dashboard · Pro · Docs

💼 Consulting & Core Infrastructure Advisory

Autonomous agents are currently bleeding enterprise budgets via prompt bloat and context window amnesia.

I take on a limited number of technical advisory retainers and consulting projects for AI developer tool startups, multi-agent frameworks, and enterprise engineering teams looking to optimize their context economics.

Core Specializations:

  • Context Optimization & Filtering: Implementing local Prediction Error Gating to strip out redundant tool runtime noise and drop token overhead by 40%–60%.
  • Causal Agent Memory Design: Structuring local SQLite graph architectures using Retroactive Salience Backfilling to eliminate agent amnesia during heavy, multi-file code execution.
  • Air-Gapped AI Governance: Designing zero-knowledge, high-performance Rust memory scaffolding that runs entirely on local metal to protect proprietary enterprise IP.

For architectural reviews, integration advisory, or founding infrastructure roles, reach out directly at: sam@vestige.sh


Vestige Black Box: a SIGSEGV on startup traced back to a version pin set 23 days earlier, with the receipt

A labeled fixture store, a real run. The incident is fictional, seeded into a Vestige store with a seven month backdated timeline. The engine is not. A SIGSEGV on startup in an arm64 container, and the version pin set 23 days earlier that shares zero words with the failure. Similarity ranked the pin fourth. Backfill reached back, ranked it first, persisted the causal edge, and sealed the receipt. It names the suspects. It never calls the verdict. Watch the full 58 second walk, then run vestige backfill --contrast on your own store.

Agents re-learn the same lessons: they recommend a change you already tested and rejected, re-derive a fix that was already written down, and treat every session as if the last one never happened. Vestige is the memory layer that ends that. Any MCP-capable agent (Claude Code, Claude Desktop, Codex, Cursor, and others) writes memories as you work and retrieves them later, modeled on real cognitive science: redundant memories merge, contradicted ones are flagged, unused ones fade, and when a failure hits, Vestige reaches backward to the decision that set it up.

The cause never looks like the bug. That is the whole product.

Install

You need Node.js. No Docker, no signup, no compile step (prebuilt for macOS ARM + Intel, Linux x86_64, Windows x86_64).

Android (Termux) builds from source today; see docs/INSTALL-TERMUX.md.

npm install -g vestige-mcp-server@latest

Connect it to your agent. Every MCP client understands this config:

{
  "mcpServers": {
    "vestige": { "command": "vestige-mcp" }
  }
}
ClientSetup
Claude Codeclaude mcp add vestige vestige-mcp -s user
Codexcodex mcp add vestige -- vestige-mcp
Cursor / VS Code / Windsurfdocs/integrations/
Claude Desktopdocs/CONFIGURATION.md
Cline / Continue / Zed / Goosethe JSON above, in that client's MCP settings

Verify: vestige dashboard, then open http://localhost:3927/dashboard. First run downloads a 130MB embedding model and, in the background, a ~150MB reranker, once; after that Vestige is fully offline, forever. Full walkthrough: docs/GETTING-STARTED.md.

Why not just RAG?

RAG retrieves text that resembles the query. That is the right tool when the answer looks like the question, and the wrong tool when the cause of a problem looks nothing like the symptom: a config choice from three weeks ago, a library pin, an assumption nobody flagged as risky.

Vector searchVestige
Retrieval basisSimilarity to the queryCausal + temporal links, plus similarity
Root cause of a failureCannot; the cause does not resemble the bugvestige backfill --contrast reaches backward to it
ContradictionsBoth stored, both returnedDetected and flagged (claim_contradicts_memory)
Redundant writesAccumulateMerged on write (prediction-error gating)
Unused memoriesPersist at full weightFade (FSRS-6 spaced repetition)
Your dataUsually a cloud serviceNever leaves your machine

The backward reach implements Retroactive Salience Backfill (Zaki, Cai et al., Nature 2024, 637:145-155, DOI 10.1038/s41586-024-08168-4): when a memory turns out to matter, the salience of the earlier memories that led to it is raised, so the causal chain becomes retrievable even though the surface text never matched. Every backfill result ships with a receipt naming the exact evidence path; Vestige reports receipt-backed candidate causes, never an unverifiable verdict.

And the limitation on the left column is not marketing: DeepMind proved single-vector retrieval mathematically incapable of certain relevance patterns (arXiv:2508.21038, ICLR 2026).

The receipts: Silent Rotation

The claim is testable, and the test ships with all 246 agent transcripts it produced. Three coding agents fix one failing e2e test; the fix needs the currently live signing key id, randomized per trial from a 50-key keyring, present in no file the agents can read. It exists only in the memory layer. The dangerous outcome is converging on a planted decoy: tests pass, the merge is clean, production breaks.

Arm (6 models, 25 trials)Converged correctConverged wrongSplit
No memory0/2521/254/25
Dense cosine RAG4/2312/237/23
Vestige20/230/233/23

On the verbatim queries the agents typed, the causal memory ranks 7th of 8 under both dense cosine and BM25 while the decoy ranks 1st. Reproduce the central measurement in two seconds, stdlib only:

git clone -b benchmark/silent-rotation --depth 1 https://github.com/samvallad33/vestige.git
cd vestige/benchmarks/silent-rotation
python3 tests/bm25_baseline.py results/runA-trial-1/corpus-export.json --no-dense

The caveats are published alongside the results, including the trials a plain cosine baseline ties and the trial Vestige loses.

The science

Every mechanism is a cited result, implemented in Rust, running locally. Full write-up: docs/SCIENCE.md.

MechanismWhat it doesSource
Prediction-Error GatingStores only the novel; merges redundant, flags contradictoryHippocampal novelty gating
FSRS-6 spaced repetitionUsed memories persist, unused ones fadeModern spaced-repetition research
Retroactive Salience BackfillReaches backward to a failure's root-cause memoryZaki, Cai et al. 2024, Nature
Synaptic TaggingMarks memories for later consolidationFrey & Morris 1997
Spreading ActivationOne retrieval activates related memories through the graphCollins & Loftus 1975
Dual-StrengthStorage strength vs retrieval strength, tracked separatelyBjork & Bjork 1992
Memory DreamingSleep-like replay and synthesisSleep consolidation research
Active ForgettingReversible top-down suppression, cascading to neighborsAnderson 2025, Davis 2020

The 14 tools

Your agent calls these; you rarely do.

ToolPurpose
recallRetrieve memories relevant to the current context
smart_ingestStore a fact, gated for novelty and contradiction
backfillReach backward from a failure to its candidate cause
receiptInspect retrieval receipts and evidence replay (guide)
memory · graph · intentionInspect, promote, explore, track goals
maintain · dedup · suppressConsolidation, merge, reversible forgetting
memory_status · codebase · source_sync · session_startHealth, code index, connectors, session priming

Project scoping, hygiene workflows, and making memory a standing habit for your agent: docs/MEMORY_HYGIENE.md · docs/AGENT-MEMORY-PROTOCOL.md · docs/CLAUDE-SETUP.md.

The dashboard

vestige dashboard

A living WebGPU observatory of your memory at http://localhost:3927/dashboard: memories appear, link, strengthen, and fade in real time, 1000+ nodes at 60fps. It renders a deterministic 12-second loop of your store's life that you can export as an mp4 with one click, and mints a brain print, a signature seeded from your store's shape. Share artifacts are structure-only by design: your brain, never your memories.

Vestige Pro

Everything above is free forever and never metered. Pro ($19/month) is managed, end-to-end encrypted continuity: your memory graph and accountability history (receipts, traces, memory PRs) following you across machines. XChaCha20-Poly1305 applied on your device, Argon2id over a passphrase only you know, ciphertext-only server. Zero-knowledge is the design: lose the passphrase and the data is unrecoverable, by anyone. Checkout opens shortly; watch Releases for the announcement.

Under the hood

EngineRust 2024, ~145k lines, single 25MB binary, 2,000+ tests, clippy clean at -D warnings
RetrievalNomic Embed v1.5 (Matryoshka 768d→256d) + USearch HNSW + SQLite FTS5, optional Qwen3 reranker
StorageSQLite, optional SQLCipher encryption (docs/STORAGE.md)
OfflineTwo model downloads on first run (130MB embedder, ~150MB reranker), then no network, ever

Go deeper

Getting Started · FAQ · The Science · Configuration · Storage · Silent Rotation · Changelog


If Vestige saves you from one repeated mistake, that is the whole point: never solve the same problem twice. If it earns a place in your setup, a star genuinely helps.

Built by Sam. Licensed under AGPL-3.0.

Files in the repo

Repository payload34 top-level entries
  • .github
  • agents
  • apps
  • assets
  • benchmarks
  • blackbox-proof-2026-06-22
  • crates
  • docs
  • hooks
  • launchd
  • packages
  • scripts
  • tests
  • .agentaudit-report.json
  • .gitignore
  • AGENTS.md
  • Cargo.lock
  • Cargo.toml
  • CHANGELOG.md
  • CLAUDE.md
  • CLAUDE.md.template
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • Dockerfile
  • glama.json
  • lhm.plugin.json
  • LICENSE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • rust-toolchain.toml
  • SECURITY.md
  • server.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k