← Back to Notes & PKM
Notes & PKM by @belkouche

vestige

Cognitive memory system using FSRS-6 spaced repetition

0
Source Code

Vestige Memory Skill

Cognitive memory system based on 130 years of memory research. FSRS-6 spaced repetition, spreading activation, synaptic tagging—all running 100% local.

Binary Location

~/bin/vestige-mcp
~/bin/vestige
~/bin/vestige-restore

When to Use

  • Persistent memory across sessions
  • User preferences ("I prefer TypeScript", "I always use dark mode")
  • Bug fixes and solutions worth remembering
  • Project patterns and architectural decisions
  • Reminders and future triggers

Quick Commands

Search Memory

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"user preferences"}}}' | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text // .error.message'

Save Memory (Smart Ingest)

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"smart_ingest","arguments":{"content":"User prefers Swiss Modern design style for presentations","tags":["preference","design"]}}}' | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text // .error.message'

Simple Ingest

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ingest","arguments":{"content":"TKPay Offline project: POC 2 months, MVP 2 months, budget 250K DH","tags":["project","tkpay"]}}}' | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text // .error.message'

Check Stats

~/bin/vestige stats

Health Check

~/bin/vestige health

MCP Tools Available

Tool Description
search Unified search (keyword + semantic + hybrid)
smart_ingest Intelligent ingestion with duplicate detection
ingest Simple memory storage
memory Get, delete, or check memory state
codebase Remember patterns and architectural decisions
intention Set reminders and future triggers
promote_memory Mark memory as helpful (strengthens)
demote_memory Mark memory as wrong (weakens)

Trigger Words

User Says Action
"Remember this" smart_ingest immediately
"Don't forget" smart_ingest with high priority
"I always..." / "I never..." Save as preference
"I prefer..." / "I like..." Save as preference
"This is important" smart_ingest + promote_memory
"Remind me..." Create intention

Session Start Routine

At the start of conversations, search for relevant context:

# Search user preferences
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"user preferences instructions"}}}' | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text'

# Search project context
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search","arguments":{"query":"current project context"}}}' | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text'

Helper Script

For easier usage, create ~/bin/vmem:

#!/bin/bash
# Vestige Memory Helper
ACTION=$1
shift

case $ACTION in
  search)
    echo "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"search\",\"arguments\":{\"query\":\"$*\"}}}" | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text // .error.message'
    ;;
  save)
    echo "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\"params\":{\"name\":\"smart_ingest\",\"arguments\":{\"content\":\"$*\"}}}" | ~/bin/vestige-mcp 2>/dev/null | jq -r '.result.content[0].text // .error.message'
    ;;
  stats)
    ~/bin/vestige stats
    ;;
  *)
    echo "Usage: vmem [search|save|stats] [content]"
    ;;
esac

Data Location

  • macOS: ~/Library/Application Support/com.vestige.core/
  • Linux: ~/.local/share/vestige/
  • Embedding cache: ~/Library/Caches/com.vestige.core/fastembed/

Integration Notes

Vestige complements the existing memory/ folder system:

  • memory/*.md = Human-readable daily logs
  • MEMORY.md = Curated long-term notes
  • Vestige = Semantic search + automatic decay + spaced repetition

Use Vestige for:

  • Things you want to recall semantically (not just keyword search)
  • Preferences that should persist indefinitely
  • Solutions worth remembering (with automatic decay if unused)