Install
openclaw skills install @tcconnally/mimirSelf-hosted persistent memory for OpenClaw agents via Mimir MCP — 23 tools, hybrid search, AES-256 encryption, zero external dependencies
openclaw skills install @tcconnally/mimirThis skill connects your OpenClaw agent to Mimir, a self-hosted Rust binary that provides durable, encrypted persistent memory via stdio MCP. No cloud, no API keys, no Docker — just one binary serving 23 memory tools.
Mimir runs entirely on your machine. No data leaves your environment. No external service sees your agent's memories. Every stored memory is AES-256-GCM encrypted at rest.
Your agent can remember facts, decisions, and context; recall them across sessions with keyword search; search semantically via dense embeddings; and forget stale memories. All memory operations are durable and survive OpenClaw restarts.
Mimir combines BM25 keyword search (FTS5) with dense vector embeddings via Reciprocal Rank Fusion (RRF). Your agent gets the best of both worlds — exact keyword matches and semantic similarity in a single query.
All stored data is AES-256-GCM encrypted. Even if someone accesses the database file, they can't read your agent's memories without the encryption key.
Mimir applies Ebbinghaus decay to memories — rarely-used facts fade and eventually archive. Your agent's context stays sharp without manual cleanup. Run a mimir_cohere grooming pass to auto-link related memories, promote frequently-used ones, and archive decayed ones.
Mimir is a single Rust binary (~8MB). No Docker, no PostgreSQL, no Redis, no cloud service. Drop it in, start it, connect via stdio MCP. It runs anywhere OpenClaw runs — Linux, macOS, Windows, even a Raspberry Pi.
mimir_remember — Store a fact, decision, or observation with category, key, tags, and confidencemimir_recall — Keyword search across all stored memories with FTS5mimir_get_entity — Retrieve full details of a specific memorymimir_forget — Soft-delete a memory (recoverable)mimir_embed — Generate and store dense embeddings for vector searchmimir_search_memories — Semantic search via dense embeddings (requires --llm-endpoint)mimir_ask — Ask a natural language question, get a grounded answer with cited sourcesmimir_cohere — Autonomous grooming: promote hot memories, link related ones, archive stalemimir_decay — Recalculate Ebbinghaus decay scores across all memoriesmimir_prune — Bulk archive low-decay or old memoriesmimir_compact — Archive memories below a decay thresholdmimir_link — Create relationships between memoriesmimir_unlink — Remove stale relationshipsmimir_traverse — Walk the relationship graph from any memorymimir_journal — Append structured decision/observation log entriesmimir_timeline — Query the journal by time range and event typemimir_vault_export — Export all memories to Obsidian-compatible .md filesmimir_vault_import — Import .md vault files, idempotent (no duplicates)mimir_state_set / mimir_state_get / mimir_state_delete — Key-value state with optional TTLmimir_recall_when — Proactive just-in-time memory: surfaces relevant memories before tool callsmimir_conflicts — Detect contradictory or duplicate memories for reviewmimir_health — Health checkmimir_stats — Entity counts by category, database size, date rangemimir_context — Pre-formatted markdown context block for session injectionmimir_workspace_list — List all knowledge domains in the databaseChoose one:
Download binary (fastest):
# Linux x86_64
curl -L https://github.com/Perseus-Computing-LLC/mimir/releases/latest/download/mimir-linux-x86_64 -o mimir
chmod +x mimir
sudo mv mimir /usr/local/bin/
Build from source (requires Rust):
git clone https://github.com/Perseus-Computing-LLC/mimir.git
cd mimir
cargo build --release
sudo cp target/release/mimir /usr/local/bin/
Python client (optional, for scripts):
pip install mimir-client
Add to your OpenClaw MCP servers config:
{
"mcpServers": {
"mimir": {
"command": "mimir",
"args": ["--db", "~/.openclaw/mimir/mimir.db"],
"env": {
"MIMIR_ENCRYPTION_KEY": "${MIMIR_ENCRYPTION_KEY}"
}
}
}
}
For semantic search with embeddings, also set:
{
"mcpServers": {
"mimir": {
"command": "mimir",
"args": [
"--db", "~/.openclaw/mimir/mimir.db",
"--llm-endpoint", "http://localhost:11434"
],
"env": {
"MIMIR_ENCRYPTION_KEY": "${MIMIR_ENCRYPTION_KEY}"
}
}
}
}
# Generate a 32-byte key
MIMIR_ENCRYPTION_KEY=$(openssl rand -hex 32)
echo "MIMIR_ENCRYPTION_KEY=$MIMIR_ENCRYPTION_KEY" >> ~/.openclaw/.env
Without an encryption key, Mimir stores data unencrypted (still local).
# Create the database directory
mkdir -p ~/.openclaw/mimir
# Start Mimir once to initialize
mimir --db ~/.openclaw/mimir/mimir.db --health
# Verify it's running
mimir --db ~/.openclaw/mimir/mimir.db --stats
Then start a new OpenClaw session. Your agent now has access to all 23 Mimir memory tools.
# Start the web dashboard on port 8789
mimir --db ~/.openclaw/mimir/mimir.db --dashboard --port 8789
# Open http://localhost:8789
Mimir is entirely self-hosted. No data leaves your machine.
mimir_remember or mimir_journal tool calls. No automatic capture, no silent monitoring.--db). You control the file.mimir_vault_export and git for backup/sharing.--llm-endpoint pointing to an Ollama instance or compatible embedding API. Keyword search (FTS5) works without it.Pair Mimir with these ClawHub skills for a complete memory stack:
memory-audit-guardian — Weekly memory governance auditskill-from-memory — Extract reusable skills from stored memoriesknox-governance — Audit logging of all memory operationsTo run Mimir in CI or scheduled jobs:
# Start Mimir in the background
mimir --db /tmp/mimir_ci.db &
# Run a coherence grooming pass nightly
mimir --db ~/.openclaw/mimir/mimir.db --cohere
# Export to vault for git backup
mimir --db ~/.openclaw/mimir/mimir.db --vault-export ~/mimir-vault/