vestige/docs/CONFIGURATION.md
Sam Valladares 0e9b260518
Some checks are pending
CI / Test (macos-latest) (push) Waiting to run
CI / Test (ubuntu-latest) (push) Waiting to run
CI / Release Build (aarch64-apple-darwin) (push) Blocked by required conditions
CI / Release Build (x86_64-unknown-linux-gnu) (push) Blocked by required conditions
CI / Release Build (x86_64-apple-darwin) (push) Blocked by required conditions
Test Suite / Unit Tests (push) Waiting to run
Test Suite / MCP E2E Tests (push) Waiting to run
Test Suite / User Journey Tests (push) Blocked by required conditions
Test Suite / Dashboard Build (push) Waiting to run
Test Suite / Code Coverage (push) Waiting to run
chore: remove 3,091 LOC of orphan code + fix ghost env-var docs
Nine tool modules in crates/vestige-mcp/src/tools/ had zero callers after
the v2.0.x unification work shipped *_unified + maintenance::* replacements.
They'd been #[allow(dead_code)]-papered over and forgotten. Verified each
module independently: grep for tools::<name>::, string dispatch in server.rs,
cross-crate usage — all nine returned zero external callers.

Removed modules (all superseded):
  checkpoint (364 LOC) — no callers anywhere
  codebase (298) — superseded by codebase_unified
  consolidate (36) — superseded by maintenance::execute_consolidate
  ingest (456) — superseded by smart_ingest
  intentions (1,093) — superseded by intention_unified
  knowledge (106) — no callers anywhere
  recall (403) — superseded by search_unified
  search (184) — superseded by search_unified
  stats (132) — superseded by maintenance::execute_system_status

Also removed:
  - EmotionCategory::base_arousal (10 LOC, zero callers)

Kept (still string-dispatched from server.rs):
  - context, feedback, memory_states, review, tagging

Doc fixes (ghost env vars that were documented but zero Rust source reads):
  - docs/CONFIGURATION.md — dropped VESTIGE_DATA_DIR, VESTIGE_LOG_LEVEL rows
    (neither is read anywhere; --data-dir CLI flag + RUST_LOG are the real
    mechanisms). Added the full real env-var table.
  - packages/vestige-mcp-npm/README.md — same two ghost rows dropped
  - docs/VESTIGE_STATE_AND_PLAN.md:399 — dropped VESTIGE_DATA_DIR row
  - docs/VESTIGE_STATE_AND_PLAN.md:709 — typo VESTIGE_API_KEY
    -> VESTIGE_AUTH_TOKEN (matches shipping convention), "open if unset"
    -> "auto-generated if unset" to match actual behavior

Verified post-cleanup:
  - cargo check --workspace       clean
  - cargo clippy --workspace -D warnings  clean
  - cargo test --workspace        1,223 passing / 0 failed
  - cargo build --release -p vestige-mcp  clean

Net: -3,091 LOC (14 files), zero behavior change, zero regressions.
2026-04-23 03:18:53 -05:00

3.8 KiB

Configuration Reference

Environment variables, CLI commands, and setup options


First-Run Network Requirement

Vestige downloads the Nomic Embed Text v1.5 model (~130MB) from Hugging Face on first use.

All subsequent runs are fully offline.

Model Cache Location

The embedding model is cached in platform-specific directories:

Platform Cache Location
macOS ~/Library/Caches/com.vestige.core/fastembed
Linux ~/.cache/vestige/fastembed
Windows %LOCALAPPDATA%\vestige\cache\fastembed

Override with environment variable:

export FASTEMBED_CACHE_PATH="/custom/path"

Environment Variables

Variable Default Description
RUST_LOG info (via tracing-subscriber) Log verbosity + per-module filtering
FASTEMBED_CACHE_PATH ./.fastembed_cache Embedding model cache location
VESTIGE_DASHBOARD_PORT 3927 Dashboard HTTP + WebSocket port
VESTIGE_HTTP_PORT 3928 Optional MCP-over-HTTP port
VESTIGE_HTTP_BIND 127.0.0.1 HTTP bind address
VESTIGE_AUTH_TOKEN auto-generated Dashboard + MCP HTTP bearer auth
VESTIGE_DASHBOARD_ENABLED true Set false to disable the web dashboard
VESTIGE_CONSOLIDATION_INTERVAL_HOURS 6 FSRS-6 decay cycle cadence

Storage location is controlled by the --data-dir <path> CLI flag (see below), not an env var. Default is your OS's per-user data directory: ~/Library/Application Support/com.vestige.core/ on macOS, ~/.local/share/vestige/ on Linux, %APPDATA%\vestige\core\data\ on Windows.


Command-Line Options

vestige-mcp --data-dir /custom/path   # Custom storage location
vestige-mcp --help                     # Show all options

CLI Commands (v1.1+)

Stats and maintenance were moved from MCP to CLI to minimize context window usage:

vestige stats              # Memory statistics
vestige stats --tagging    # Retention distribution
vestige stats --states     # Cognitive state distribution
vestige health             # System health check
vestige consolidate        # Run memory maintenance
vestige restore <file>     # Restore from backup

Client Configuration

Codex (One-liner)

codex mcp add vestige -- /usr/local/bin/vestige-mcp

Codex (Manual)

Add to ~/.codex/config.toml:

[mcp_servers.vestige]
command = "/usr/local/bin/vestige-mcp"

Claude Code (One-liner)

claude mcp add vestige vestige-mcp -s user

Claude Code (Manual)

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "vestige": {
      "command": "vestige-mcp"
    }
  }
}

Claude Desktop (macOS)

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "vestige": {
      "command": "vestige-mcp"
    }
  }
}

Claude Desktop (Windows)

Add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "vestige": {
      "command": "vestige-mcp"
    }
  }
}

Custom Data Directory

For per-project or custom storage:

{
  "mcpServers": {
    "vestige": {
      "command": "vestige-mcp",
      "args": ["--data-dir", "/path/to/custom/dir"]
    }
  }
}

See Storage Modes for more options.


Updating Vestige

Latest version:

cd vestige
git pull
cargo build --release
sudo cp target/release/vestige-mcp /usr/local/bin/

Pin to specific version:

git checkout v1.1.2
cargo build --release

Check your version:

vestige-mcp --version

Development

# Run tests
cargo test --all-features

# Run with logging
RUST_LOG=debug cargo run --release

# Build optimized binary
cargo build --release --all-features