Perseus
Production Memory Engine — 15/15 Integration Tests

Mimir: Deterministic Persistent Memory for Professional AI Workflows

A Rust-built persistent memory sidecar with SQLite + FTS5 — 23 MCP tools, confidence decay, structured entities, and zero cloud dependencies. The default memory engine for Perseus, the backend for anna-recall, and a standalone MCP server.

Search Latency
< 0.1ms
Sub-millisecond BM25 keyword recall over local SQLite. P50 flat at scale.
Integration Tests
15/15
Full test suite passing. Production-grade reliability across all 23 MCP tools.
Cloud Dependencies
0cloud
100% self-contained. Runs on-device with zero API keys, zero model downloads, zero network calls.
MCP Tools
23tools
Memory recall, storage, entities, layers, decay config, stats, health, and more. Full MCP compliance.
“AI memories are historically locked inside specific agent frameworks or volatile cloud memory arrays. Mimir decouples memory into a single, portable, self-hosted SQLite file. Every agent on every machine syncs with the same vault.”
§ 01

Bring Your Own Memory (BYOM)

Mimir introduces the Bring Your Own Memory (BYOM) architectural design pattern. Instead of locking agent state, context history, and learned preferences inside proprietary developer SDKs or isolated sessions, Mimir decouples semantic memory into a lightweight, portable database.

Multi-Device Sync Strategy

Point your Mimir database path to a folder synced by Syncthing, Nextcloud, or Dropbox. SQLite's ACID-compliant architecture combined with file locking allows secure, multi-machine memory propagation:

Workstation A → mimir_store → synced/mimir.db ← (Sync Engine) → Workstation B
Standalone sidecar

Decoupled State

Point local and remote runtimes at the identical SQLite backend. All container workspaces share one cohesive recollection.

Infinite portability

Single-file SQLite

All of your memories are stored in a simple, compact mimir.db database file. Back it up, sync it, or host it on your local NAS.

§ 02

Performance & Compliance

Mimir proves that for developer context, keyword search with BM25 ranking is 100x faster, incredibly reliable, and completely free. Fully compliant with the Model Context Protocol (MCP), it exposes semantic memory reading and writing directly as system tools.

Recall Benchmarks

P50 Cold Query
0.09ms
Sub-millisecond cold recall over local SQLite.
P50 Warm Query
0.12ms
Consistent warm query latency flat across scale.
RAM Footprint
< 15MB
Ultra-lightweight Rust daemon footprint.

FTS5 Stemming Engine

SQLite FTS5

Porter Stemming

FTS5 indexing with porter stemming. Words like testing, tested, and tests map to the identical stem, ensuring high-relevance search matches.

Smart Query Fallback

LIKE Optimization

FTS5 MATCH treats multi-word strings as exact phrases. Mimir automatically sanitizes input and falls back to SQL LIKE operators for partial matches.

23 Registered MCP Tools

mimir_recall FTS5 BM25 search over semantic memory. Keyword + fuzzy fallback for high-relevance retrieval.
mimir_store Save markdown content with tags, type (insight, architecture, decision), importance, and confidence.
mimir_entity_* × 6 tools Create, read, update, delete, and search structured entities. Schema-validated with relationship linking.
mimir_layer_* × 4 tools Namespace memories into layers (project, team, personal). Isolate or merge recall across boundaries.
mimir_decay_config Control confidence decay curves per type. Memories fade unless reinforced — configurable half-life.
mimir_stats / mimir_health / ... Database statistics, structural integrity checks, daemon status, export, graph queries, and more.

23 tools total — full list at github.com/tcconnally/mimir

§ 03

Confidence Decay

Facts lose relevance over time. Mimir models this with confidence decay curves — configurable per memory type. An un-reinforced bug_detail decays faster than an architecture decision. Re-accessing or updating a memory resets its confidence to maximum.

Configurable Half-Life

Insights
30d
Half-life for general insights. Time-sensitive observations fade unless reinforced.
Architecture
90d
Structural knowledge decays slowly. Codebase patterns are long-lived.
Decisions
180d
Design choices persist. Deferred-access architecture decisions retain high confidence.
0% 50% 100% 90 days 180d recall confidence(t) decay
§ 04

Three Deployment Modes

One Rust binary, three roles. Mimir runs identically in each mode — the same SQLite+FTS5 engine, the same 23 MCP tools, the same production test suite.

Standalone MCP Server
pip install mimir
mimir serve

Use Mimir as a native MCP server alongside Claude Desktop, Cursor, Cline, or any MCP-compatible client. One mimir.db file, zero config.

Perseus Default Engine
perseus quickstart
↳ mimir auto-wired

Perseus ships with Mimir as its default persistent memory connector. Zero configuration: one command, context + memory running together.

anna-recall Backend
435-line plugin
15/15 tests pass

The anna-recall Anna AI plugin is just 435 lines because the heavy lifting is a tested Rust engine. Point it at Mimir, done.

§ 05

Quickstart Setup

1. Install Mimir
# Run the one-shot bootstrap installation
curl -sSL https://raw.githubusercontent.com/tcconnally/mimir/main/scripts/bootstrap.sh | bash

# Or build from source
git clone https://github.com/tcconnally/mimir.git ~/.mimir
cd ~/.mimir && cargo build --release
cp target/release/mimir ~/.local/bin/mimir
2. Configure Perseus
# In your workspace .perseus/config.yaml:
mimir:
  enabled: true
  transport: "stdio"
  command: ["mimir", "--db", "~/.mimir/data/mimir.db"]
  timeout_s: 10.0
  merge_strategy: "local_first"
  fallback_to_local: true
  circuit_breaker:
    threshold: 3
    cooldown: 120
  retry_policy:
    max_attempts: 3
    backoff_base: 1.5
Mimir GitHub Repository →