samvallad33/vestige
Vestige enhances agents by deterministic root-cause retrieval that reaches backward through time to find the quiet change, decision, or service that caused today’s failure, not the lookalike.
Vestige – Local‑first memory for AI‑assisted developers
What it is – Vestige is an open‑source, locally‑run memory layer that lets large‑language‑model (LLM) coding agents (Claude Code, Claude Desktop, Codex, Cursor, etc.) store and retrieve “memories” about a codebase. It records decisions, configuration choices, and other contextual facts as you work, then later surfaces the most relevant pieces when a failure occurs, using causal‑temporal links rather than plain similarity search.
Core ideas (from the README)
| Concept | How Vestige implements it |
|---|---|
| Prediction‑Error Gating | Only novel facts are written; redundant facts are merged and contradictory ones are flagged. |
| Retroactive Salience Backfill | When a bug is reported, Vestige walks backward through the memory graph, raising the salience of earlier facts that contributed to the failure. |
| Spaced‑repetition fading (FSRS‑6) | Unused memories gradually lose weight, keeping the store compact. |
| Dual‑strength storage | Separate “storage strength” (how firmly a fact is kept) and “retrieval strength” (how easily it is found). |
| Offline operation | After a one‑time download of a 130 MB embedding model and a ~150 MB reranker, everything runs locally with no network calls. |
Main user‑visible features
- Automatic write‑back: Any MCP‑compatible agent can call
smart_ingestto store a fact; Vestige decides whether it is novel, merges duplicates, or marks contradictions. - Focused recall:
recallreturns memories that are causally linked to the current code context, not just text‑similar. - Backfill:
vestige backfill --contraststarts from a failure and surfaces the earliest memory that likely caused it, together with a receipt that shows the evidence path. - Dashboard: A WebGPU visualizer (
vestige dashboard) shows the memory graph in real‑time (1000+ nodes at 60 fps) and can export a short video or a “brain print” that represents the graph shape without exposing the actual data. - Project projection: Durable decisions can be exported into a Markdown rules file (e.g.,
CLAUDE.md) for the agent to respect in future sessions. - Pro tier (optional, $19 / month): Encrypted, cross‑device continuity using XChaCha20‑Poly1305 and Argon2id; the free tier remains fully offline and unlimited.
Installation & quick start (as described)
- Install the MCP server globally with Node:
npm install -g vestige-mcp-server@latest - Add the server to your agent’s MCP config (JSON shown in the README). The README lists the exact commands for Claude Code, Codex, Cursor, Claude Desktop, etc.
- Run
vestige dashboardand openhttp://localhost:3927/dashboard. - On first run the binary downloads the embedder and reranker; after that the tool works completely offline.
How it differs from plain RAG
| RAG (vector similarity) | Vestige |
|---|---|
| Retrieves items that look like the query text. | Retrieves items linked by causal + temporal relationships, then re‑ranks with similarity. |
| No notion of contradiction; duplicates accumulate. | Detects contradictions, merges duplicates, and fades unused memories. |
| Data usually stored in a cloud service. | All data stays on the developer’s machine (SQLite, optional SQLCipher encryption). |
| Cannot point to the root cause of a bug that looks unrelated to the symptom. | backfill can trace back to the decision that set up the failure, providing a receipt‑backed candidate cause. |
Benchmarks & evidence (as reported)
- Silent Rotation benchmark – 246 agent transcripts were used to compare three setups: no memory, dense‑cosine RAG, and Vestige.
- Results (23 trials per setup) showed Vestige converging on the correct fix in 20/23 trials, with zero wrong convergences, whereas RAG converged correctly in only 4/23 and produced wrong fixes in 12/23.
- The benchmark can be reproduced in seconds with a provided Python script (see
benchmark/silent-rotation).
Technical stack (from the “Under the hood” table)
- Engine: Rust (≈145 k LOC), compiled to a single ~25 MB binary, >2 000 tests, clippy clean.
- Retrieval: Nomic Embed v1.5 (Matryoshka 768→256), USearch HNSW index, SQLite FTS5; optional Qwen‑3 reranker.
- Storage: SQLite (optional SQLCipher for encryption).
- Embedding models: Downloaded once, then offline forever.
Who would benefit?
- Developers who use LLM coding assistants and repeatedly hit the same “agent amnesia” problem.
- Teams that need an audit trail of decisions made by AI agents (receipts provide reproducible evidence).
- Users who require strict data‑privacy (all processing stays on‑device, no API keys needed).
Limitations & open points (as acknowledged)
- The system relies on the quality of the underlying embedder and optional reranker; if those models are poor, similarity ranking may still miss relevant facts.
- The “backfill” mechanism is only as good as the causal links that have been recorded; missing a key decision means it cannot be retrieved later.
- The Pro tier is the only way to sync memory across machines; the free tier is single‑device only.
- Benchmarks are presented by the authors; independent replication would be needed for broader confidence.
License
- AGPL‑3.0 (full source available; commercial use must comply with the copyleft terms).
Bottom line – Vestige is a genuine, research‑backed tool that adds a causal, local memory graph to LLM coding agents, aiming to eliminate repeated mistakes by remembering why a decision was made and surfacing that context when a failure occurs.
Related
- Project
- Project
- Project
- Project
- Project