Cognitive memory for AI agents — FSRS-6 spaced repetition, 29 brain modules, 3D dashboard, single 22MB Rust binary. MCP server for Claude, Cursor, VS Code, Xcode, JetBrains. https://github.com/samvallad33/vestige
Find a file
Sam Valladares e9b2aa6d4d
Some checks failed
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
Test Suite / Unit Tests (push) Has been cancelled
Test Suite / MCP E2E Tests (push) Has been cancelled
Test Suite / Dashboard Build (push) Has been cancelled
Test Suite / Code Coverage (push) Has been cancelled
CI / Release Build (aarch64-apple-darwin) (push) Has been cancelled
CI / Release Build (x86_64-unknown-linux-gnu) (push) Has been cancelled
Test Suite / User Journey Tests (push) Has been cancelled
Clarify AI terminology in README
Updated terminology
2026-04-16 14:27:46 -05:00
.github fix(ci): unblock Intel Mac + Windows MSVC builds in v2.0.5 release workflow 2026-04-14 18:03:56 -05:00
apps/dashboard feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control 2026-04-14 17:30:30 -05:00
crates fix(ci): unblock Intel Mac + Windows MSVC builds in v2.0.5 release workflow 2026-04-14 18:03:56 -05:00
docs feat: v2.0.4 "Deep Reference" — cognitive reasoning engine + 10 bug fixes 2026-04-09 16:15:26 -05:00
packages feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control 2026-04-14 17:30:30 -05:00
scripts feat: Vestige v1.9.1 AUTONOMIC — self-regulating memory with graph visualization 2026-02-21 02:02:06 -06:00
tests/e2e feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control 2026-04-14 17:30:30 -05:00
.agentaudit-report.json Add AgentAudit security report: safe (0 findings) 2026-02-13 10:55:37 +01:00
.gitignore fix: remove vestige-agent from workspace (not shipped), improve reasoning chain output 2026-04-09 17:06:24 -05:00
Cargo.lock fix(ci): unblock Intel Mac + Windows MSVC builds in v2.0.5 release workflow 2026-04-14 18:03:56 -05:00
Cargo.toml feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control 2026-04-14 17:30:30 -05:00
CHANGELOG.md feat(v2.0.5): Intentional Amnesia — active forgetting via top-down inhibitory control 2026-04-14 17:30:30 -05:00
CLAUDE.md feat: v2.0.4 "Deep Reference" — cognitive reasoning engine + 10 bug fixes 2026-04-09 16:15:26 -05:00
CLAUDE.md.template chore: add CLAUDE.md template for Vestige integration 2026-02-12 04:33:53 -06:00
CODE_OF_CONDUCT.md Initial commit: Vestige v1.0.0 - Cognitive memory MCP server 2026-01-25 01:31:03 -06:00
CONTRIBUTING.md feat: v2.0.4 "Deep Reference" — cognitive reasoning engine + 10 bug fixes 2026-04-09 16:15:26 -05:00
demo.sh fix: accurate science claims, security docs, remove hardcoded path 2026-01-25 20:29:37 -06:00
LICENSE chore: license AGPL-3.0, zero clippy warnings, CHANGELOG through v1.6.0 2026-02-19 03:00:39 -06:00
package.json fix: v2.0.1 release — fix broken installs, CI, security, and docs 2026-03-01 20:20:14 -06:00
pnpm-lock.yaml fix: resolve CI failures — clippy lint + lockfile sync 2026-03-03 14:20:37 -06:00
pnpm-workspace.yaml Initial commit: Vestige v1.0.0 - Cognitive memory MCP server 2026-01-25 01:31:03 -06:00
README.md Clarify AI terminology in README 2026-04-16 14:27:46 -05:00
SECURITY.md feat: v2.0.4 "Deep Reference" — cognitive reasoning engine + 10 bug fixes 2026-04-09 16:15:26 -05:00

Vestige

The cognitive engine that gives AI agents a brain.

GitHub stars Release Tests License MCP Compatible

Your Agent forgets everything between sessions. Vestige fixes that.

Built on 130 years of memory research — FSRS-6 spaced repetition, prediction error gating, synaptic tagging, spreading activation, memory dreaming — all running in a single Rust binary with a 3D neural visualization dashboard. 100% local. Zero cloud.

Quick Start | Dashboard | How It Works | Tools | Docs


What's New in v2.0.5 "Intentional Amnesia"

The first AI memory system that can actively forget. New suppress tool applies top-down inhibitory control over retrieval — each call compounds a penalty (up to 80%), a background Rac1 worker fades co-activated neighbors over 72h, and it's reversible within a 24h labile window. Never deletes — the memory is inhibited, not erased.

Based on Anderson et al. 2025 (Suppression-Induced Forgetting) and Cervantes-Sandoval et al. 2020 (Rac1 synaptic cascade). 24 tools · 30 cognitive modules · 1,284 tests.

Earlier releases (v2.0 "Cognitive Leap" → v2.0.4 "Deep Reference")
  • v2.0.4 — deep_reference Tool — 8-stage cognitive reasoning pipeline with FSRS-6 trust scoring, intent classification, spreading activation, contradiction analysis, and pre-built reasoning chains. Token budgets raised 10K → 100K. CORS tightened.
  • v2.0 — 3D Memory Dashboard — SvelteKit + Three.js neural visualization with real-time WebSocket events, bloom post-processing, force-directed graph layout.
  • v2.0 — WebSocket Event Bus — Every cognitive operation broadcasts events: memory creation, search, dreaming, consolidation, retention decay.
  • v2.0 — HyDE Query Expansion — Template-based Hypothetical Document Embeddings for dramatically improved search quality on conceptual queries.
  • v2.0 — Nomic v2 MoE (experimental) — fastembed 5.11 with optional Nomic Embed Text v2 MoE (475M params, 8 experts) + Metal GPU acceleration.
  • v2.0 — Command PaletteCmd+K navigation, keyboard shortcuts, responsive mobile layout, PWA installable.
  • v2.0 — FSRS Decay Visualization — SVG retention curves with predicted decay at 1d/7d/30d.

Quick Start

# 1. Install (macOS Apple Silicon)
curl -L https://github.com/samvallad33/vestige/releases/latest/download/vestige-mcp-aarch64-apple-darwin.tar.gz | tar -xz
sudo mv vestige-mcp vestige vestige-restore /usr/local/bin/

# 2. Connect to Claude Code
claude mcp add vestige vestige-mcp -s user

# Or connect to Codex
codex mcp add vestige -- /usr/local/bin/vestige-mcp

# 3. Test it
# "Remember that I prefer TypeScript over JavaScript"
# ...new session...
# "What are my coding preferences?"
# → "You prefer TypeScript over JavaScript."
Other platforms & install methods

macOS (Intel):

curl -L https://github.com/samvallad33/vestige/releases/latest/download/vestige-mcp-x86_64-apple-darwin.tar.gz | tar -xz
sudo mv vestige-mcp vestige vestige-restore /usr/local/bin/

Linux (x86_64):

curl -L https://github.com/samvallad33/vestige/releases/latest/download/vestige-mcp-x86_64-unknown-linux-gnu.tar.gz | tar -xz
sudo mv vestige-mcp vestige vestige-restore /usr/local/bin/

Windows: Download from Releases

npm:

npm install -g vestige-mcp-server

Build from source (requires Rust 1.91+):

git clone https://github.com/samvallad33/vestige && cd vestige
cargo build --release -p vestige-mcp
# Optional: enable Metal GPU acceleration on Apple Silicon
cargo build --release -p vestige-mcp --features metal

Works Everywhere

Vestige speaks MCP — the universal protocol for AI tools. One brain, every IDE.

IDE Setup
Claude Code claude mcp add vestige vestige-mcp -s user
Codex Integration guide
Claude Desktop 2-min setup
Xcode 26.3 Integration guide
Cursor Integration guide
VS Code (Copilot) Integration guide
JetBrains Integration guide
Windsurf Integration guide

🧠 3D Memory Dashboard

Vestige v2.0 ships with a real-time 3D visualization of your AI's memory. Every memory is a glowing node in 3D space. Watch connections form, memories pulse when accessed, and the entire graph come alive during dream consolidation.

Features:

  • Force-directed 3D graph with 1000+ nodes at 60fps
  • Bloom post-processing for cinematic neural network aesthetic
  • Real-time WebSocket events: memories pulse on access, burst on creation, fade on decay
  • Dream visualization: graph enters purple dream mode, replayed memories light up sequentially
  • FSRS retention curves: see predicted memory decay at 1d, 7d, 30d
  • Command palette (Cmd+K), keyboard shortcuts, responsive mobile layout
  • Installable as PWA for quick access

Tech: SvelteKit 2 + Svelte 5 + Three.js + Tailwind CSS 4 + WebSocket

The dashboard runs automatically at http://localhost:3927/dashboard when the MCP server starts.


Architecture

┌─────────────────────────────────────────────────────┐
│  SvelteKit Dashboard (apps/dashboard)                │
│  Three.js 3D Graph · WebGL + Bloom · Real-time WS   │
├─────────────────────────────────────────────────────┤
│  Axum HTTP + WebSocket Server (port 3927)            │
│  15 REST endpoints · WS event broadcast              │
├─────────────────────────────────────────────────────┤
│  MCP Server (stdio JSON-RPC)                         │
│  24 tools · 30 cognitive modules                     │
├─────────────────────────────────────────────────────┤
│  Cognitive Engine                                    │
│  ┌──────────┐ ┌──────────┐ ┌───────────────┐       │
│  │ FSRS-6   │ │ Spreading│ │ Prediction    │       │
│  │ Scheduler│ │ Activation│ │ Error Gating  │       │
│  └──────────┘ └──────────┘ └───────────────┘       │
│  ┌──────────┐ ┌──────────┐ ┌───────────────┐       │
│  │ Memory   │ │ Synaptic │ │ Hippocampal   │       │
│  │ Dreamer  │ │ Tagging  │ │ Index         │       │
│  └──────────┘ └──────────┘ └───────────────┘       │
├─────────────────────────────────────────────────────┤
│  Storage Layer                                       │
│  SQLite + FTS5 · USearch HNSW · Nomic Embed v1.5    │
│  Optional: Nomic v2 MoE · Qwen3 Reranker · Metal   │
└─────────────────────────────────────────────────────┘

Why Not Just Use RAG?

RAG is a dumb bucket. Vestige is an active organ.

RAG / Vector Store Vestige
Storage Store everything Prediction Error Gating — only stores what's surprising or new
Retrieval Nearest-neighbor 7-stage pipeline — HyDE expansion + reranking + spreading activation
Decay Nothing expires FSRS-6 — memories fade naturally, context stays lean
Duplicates Manual dedup Self-healing — auto-merges "likes dark mode" + "prefers dark themes"
Importance All equal 4-channel scoring — novelty, arousal, reward, attention
Sleep No consolidation Memory dreaming — replays, connects, synthesizes insights
Health No visibility Retention dashboard — distributions, trends, recommendations
Visualization None 3D neural graph — real-time WebSocket-powered Three.js
Privacy Usually cloud 100% local — your data never leaves your machine

🔬 The Cognitive Science Stack

This isn't a key-value store with an embedding model bolted on. Vestige implements real neuroscience:

Prediction Error Gating — The hippocampal bouncer. When new information arrives, Vestige compares it against existing memories. Redundant? Merged. Contradictory? Superseded. Novel? Stored with high synaptic tag priority.

FSRS-6 Spaced Repetition — 21 parameters governing the mathematics of forgetting. Frequently-used memories stay strong. Unused memories naturally decay. Your context window stays clean.

HyDE Query Expansion (v2.0) — Template-based Hypothetical Document Embeddings. Expands queries into 3-5 semantic variants, embeds all variants, and searches with the centroid embedding for dramatically better recall on conceptual queries.

Synaptic Tagging — A memory that seemed trivial this morning can be retroactively tagged as critical tonight. Based on Frey & Morris, 1997.

Spreading Activation — Search for "auth bug" and find the related JWT library update from last week. Memories form a graph, not a flat list. Based on Collins & Loftus, 1975.

Dual-Strength Model — Every memory has storage strength (encoding quality) and retrieval strength (accessibility). A deeply stored memory can be temporarily hard to retrieve — just like real forgetting. Based on Bjork & Bjork, 1992.

Memory Dreaming — Like sleep consolidation. Replays recent memories to discover hidden connections, strengthen important patterns, and synthesize insights. Dream-discovered connections persist to a graph database. Based on the Active Dreaming Memory framework.

Waking SWR Tagging — Promoted memories get sharp-wave ripple tags for preferential replay during dream consolidation. 70/30 tagged-to-random ratio. Based on Buzsaki, 2015.

Autonomic Regulation — Self-regulating memory health. Auto-promotes frequently accessed memories. Auto-GCs low-retention memories. Consolidation triggers on 6h staleness or 2h active use.

Active Forgetting (v2.0.5) — Top-down inhibitory control via the suppress tool, distinct from passive FSRS decay and from bottom-up retrieval-induced forgetting. Each call compounds (Suppression-Induced Forgetting), a background Rac1 cascade worker fades co-activated neighbors, and a 24-hour labile window allows reversal. The memory persists — it's inhibited, not erased. Based on Anderson et al., 2025 and Cervantes-Sandoval et al., 2020. First AI memory system to implement this.

Full science documentation ->


🛠 24 MCP Tools

Context Packets

Tool What It Does
session_context One-call session init — replaces 5 calls with token-budgeted context, automation triggers, expandable IDs

Core Memory

Tool What It Does
search 7-stage cognitive search — HyDE expansion + keyword + semantic + reranking + temporal + competition + spreading activation
smart_ingest Intelligent storage with CREATE/UPDATE/SUPERSEDE via Prediction Error Gating. Batch mode for session-end saves
memory Get, delete, check state, promote (thumbs up), demote (thumbs down)
codebase Remember code patterns and architectural decisions per-project
intention Prospective memory — "remind me to X when Y happens"

Cognitive Engine

Tool What It Does
dream Memory consolidation — replays memories, discovers connections, synthesizes insights, persists graph
explore_connections Graph traversal — reasoning chains, associations, bridges between memories
predict Proactive retrieval — predicts what you'll need next based on context and activity

Autonomic

Tool What It Does
memory_health Retention dashboard — distribution, trends, recommendations
memory_graph Knowledge graph export — force-directed layout, up to 200 nodes

Scoring & Dedup

Tool What It Does
importance_score 4-channel neuroscience scoring (novelty, arousal, reward, attention)
find_duplicates Detect and merge redundant memories via cosine similarity

Maintenance

Tool What It Does
system_status Combined health + stats + cognitive state + recommendations
consolidate Run FSRS-6 decay cycle (also auto-runs every 6 hours)
memory_timeline Browse chronologically, grouped by day
memory_changelog Audit trail of state transitions
backup / export / gc Database backup, JSON export, garbage collection
restore Restore from JSON backup

Deep Reference (v2.0.4)

Tool What It Does
deep_reference Cognitive reasoning across memories. 8-stage pipeline: FSRS-6 trust scoring, intent classification, spreading activation, temporal supersession, contradiction analysis, relation assessment, dream insight integration, and algorithmic reasoning chain generation. Returns trust-scored evidence with a pre-built reasoning scaffold.
cross_reference Backward-compatible alias for deep_reference.

Active Forgetting (v2.0.5)

Tool What It Does
suppress Top-down active forgetting — neuroscience-grounded inhibitory control over retrieval. Distinct from memory.delete (destroys the row) and memory.demote (one-shot ranking hit). Each call compounds a retrieval-score penalty (Anderson 2025 SIF), and a background Rac1 cascade worker fades co-activated neighbors over 72h (Davis 2020). Reversible within a 24-hour labile window via reverse: true. The memory persists — it is inhibited, not erased.

Make Your AI Use Vestige Automatically

Add this to your CLAUDE.md:

## Memory

At the start of every session:
1. Search Vestige for user preferences and project context
2. Save bug fixes, decisions, and patterns without being asked
3. Create reminders when the user mentions deadlines
You Say AI Does
"Remember this" Saves immediately
"I prefer..." / "I always..." Saves as preference
"Remind me..." Creates a future trigger
"This is important" Saves + promotes

Full CLAUDE.md templates ->


Technical Details

Metric Value
Language Rust 2024 edition (MSRV 1.91)
Codebase 80,000+ lines, 1,284 tests (364 core + 419 mcp + 497 e2e + 4 doctests)
Binary size ~20MB
Embeddings Nomic Embed Text v1.5 (768d → 256d Matryoshka, 8192 context)
Vector search USearch HNSW (20x faster than FAISS)
Reranker Jina Reranker v1 Turbo (38M params, +15-20% precision)
Storage SQLite + FTS5 (optional SQLCipher encryption)
Dashboard SvelteKit 2 + Svelte 5 + Three.js + Tailwind CSS 4
Transport MCP stdio (JSON-RPC 2.0) + WebSocket
Cognitive modules 30 stateful (17 neuroscience, 11 advanced, 2 search)
First run Downloads embedding model (~130MB), then fully offline
Platforms macOS (ARM/Intel), Linux (x86_64), Windows

Optional Features

# Metal GPU acceleration (Apple Silicon — faster embedding inference)
cargo build --release -p vestige-mcp --features metal

# Nomic Embed Text v2 MoE (475M params, 305M active, 8 experts)
cargo build --release -p vestige-mcp --features nomic-v2

# Qwen3 Reranker (Candle backend, high-precision cross-encoder)
cargo build --release -p vestige-mcp --features qwen3-reranker

# SQLCipher encryption
cargo build --release -p vestige-mcp --no-default-features --features encryption,embeddings,vector-search

CLI

vestige stats                    # Memory statistics
vestige stats --tagging          # Retention distribution
vestige stats --states           # Cognitive state breakdown
vestige health                   # System health check
vestige consolidate              # Run memory maintenance
vestige restore <file>           # Restore from backup
vestige dashboard                # Open 3D dashboard in browser

Documentation

Document Contents
FAQ 30+ common questions answered
Science The neuroscience behind every feature
Storage Modes Global, per-project, multi-instance
CLAUDE.md Setup Templates for proactive memory
Configuration CLI commands, environment variables
Integrations Codex, Xcode, Cursor, VS Code, JetBrains, Windsurf
Changelog Version history

Troubleshooting

"Command not found" after installation

Ensure vestige-mcp is in your PATH:

which vestige-mcp
# Or use the full path:
claude mcp add vestige /usr/local/bin/vestige-mcp -s user
Embedding model download fails

First run downloads ~130MB from Hugging Face. If behind a proxy:

export HTTPS_PROXY=your-proxy:port

Cache: macOS ~/Library/Caches/com.vestige.core/fastembed | Linux ~/.cache/vestige/fastembed

Dashboard not loading

The dashboard starts automatically on port 3927 when the MCP server runs. Check:

curl http://localhost:3927/api/health
# Should return {"status":"healthy",...}

More troubleshooting ->


Contributing

Issues and PRs welcome. See CONTRIBUTING.md.

License

AGPL-3.0 — free to use, modify, and self-host. If you offer Vestige as a network service, you must open-source your modifications.


Built by @samvallad33
80,000+ lines of Rust · 30 cognitive modules · 130 years of memory research · one 22MB binary