A governed, local-first memory brain: three-tier recall that never bluffs, layered recall under a token budget, documents and pictures, Memory health, SLM-Mesh, outcome learning, cache and compression, and governance — per-workspace isolation, role-based access, GDPR controls, and a per-mode EU AI Act self-assessment. Optional network features are disclosed per capability.
From recall that admits what it does not know to agents and web bots that talk to each other. Each card links to its guide; optional network features are disclosed separately.
Every recall ends in one of three tiers: a supported answer; “I don’t have this exactly — here are the closest memories” (up to three, labelled); or “That isn’t in SuperLocalMemory.” for nonsense. While models load, recall says it is still warming up and to try again in a few minutes. Hooks that inject memory automatically only ever inject supported answers.
Depth 0 is a one-line glance, depth 1 the facts, depth 2 adds the source, session neighbours, related entities and corrections. A hard max_tokens cap bounds the reply, and the expand tool drills into one result only when the agent needs it.
Semantic, keyword (BM25), entity-graph, temporal, associative (Hopfield), spreading-activation and picture channels feed fusion and reranking, with inspectable diagnostics; slm trace shows each channel's score.
Bi-temporal facts: ask what was true then (--valid-at) or what SLM knew then (--known-as-of). Corrections replace a fact and stay undoable; unused memories fade the way human memory does.
Google's EmbeddingGemma 2, on your computer, is the one model for text and pictures in one search space, so a description finds the image. OCR runs locally too. Pictures are found by describing them, PDFs are indexed page by page, and every answer cites its file and page. Folders and Obsidian vaults mirror in read-only. No generative model ever looks at your files.
A document index of every file with its people, projects and dates, and a document health check that finds empty pages, unlinked documents, duplicate pages and contradicted facts. Hybrid search is kept for finding things.
While your computer is idle, older memories get dates, names, projects and kinds filled in — only by adding, never over what you wrote. Repairs that move or delete wait for your Fix, and Undo puts everything back.
A second opinion on whether the memories found really answer the question. Laya runs on-device and is on by default on Apple Silicon; Jev runs online only after you consent, through TypeSafe or OpenRouter.
Roles and workspaces, save receipts, a hash-chained audit trail, per-profile retention, and GDPR export and erasure that reach every derived copy — summaries, caches, indexes, picture mirrors — with a verifiable receipt. Engineering controls, not a certification.
Every write records which agent made it, with Bayesian trust scores against memory poisoning, so several agents can share one memory without poisoning it.
Messages, waits, locks and shared state between Claude Code, Codex and Hermes sessions on one machine or several. ChatGPT, Claude on the web, Grok Bot and Muse join with your permission: message a named peer and read the inbox. Messages arrive labelled as data, never as instructions.
Outcomes teach the ranker; stable habits become soft prompts; agent skills are measured and revised. A new ranker is promoted only on a statistically valid win and rolled back automatically if it slips.
Loops end only when an independent gate passes (tests, a linter, a schema), never on the agent's word, and every lap is stored as auditable memory. Multi-step graphs run in Bounded Loops, and SLM keeps their finished runs as read-only evidence.
SQLite with WAL, FTS, and profile isolation is the canonical path. Optional CozoDB graph and LanceDB vector copies serve only once they match SQLite. A restore point is taken before every store update.
Profile-selected MCP tools, structured CLI commands, and additive client assets support Claude Code, Codex, Cursor, Copilot, Antigravity, Hermes and any harness that speaks MCP or runs a command, without overwriting a user's configuration.
Search, knowledge graph, Entity Explorer, answer check, Memory health, documents and images, connected apps, bot messages and governance, all through the local service.
More depth: Answer check, Governance, Skill evolution and Plugins and bots. Memory kinds are covered under Workflows. The full README is at GitHub.
An inspectable stack from SQLite-backed storage through retrieval diagnostics, lifecycle controls, optional optimization, and local visualization.
SuperLocalMemory records local behavioral signals that influence ranking without a separate LLM call for the learning step. Three phases: baseline observation, rule-based heuristics, optional ML model activation. Inspect signals, thresholds, and rank changes; optional modes and integrations retain their own network paths.
Semantic, graph, and adaptive channels feed the ranking pipeline. Each channel is independently inspectable.
Dense vector candidates from a local embedding model. Finds memories conceptually related to a query even when keywords do not match exactly.
Entities — files, functions, concepts — are extracted and linked. Querying one entity can surface linked neighbours via graph traversal, not keyword matches alone.
Local behavioral signals — access patterns, explicit feedback, recency — adjust candidate rank without an additional LLM call for the learning step itself.
Recall emits local exposure telemetry. Exposure alone is not positive feedback and does not increase truth or trust scores stored in memory.
Optional reranking and channel diagnostics can record exposure. Explicit positive, negative, or corrective feedback remains separate from stored-memory confidence and trust. No model activation at this phase.
Heuristic boosts from learned patterns: recency weight, access frequency, and trust score. The ranking influence is deterministic and inspectable — no trained model is loaded at this phase.
When the learning path has sufficient valid signals and model activation is enabled, it can train on local behavioral state. Verify activation, model state, and rank impact in the installed release.
Each signal type has distinct semantics. Read the source before inferring intent from a rank change.
These features require hooks, background workers, or explicit configuration. Each needs independent verification for a complete deployment review.
Query enters, candidate producers run, re-ranking applies behavioral weights, ranked context exits. Every stage is traceable.
# Five candidate producers run in parallel stage candidates semantic (dense, local embedding) bm25 (full-text lexical) temporal (recency) hopfield (associative) spreading activation stage re-rank fusion score · entity-graph adjustment · access weight · trust score · decay ✓ ranked context returned · rank deltas inspectable in the dashboard # Per-channel score breakdown for any query $ slm trace "token expiry" names the channels that contributed to each result ✓ signal sources visible · no black-box ranking
Entity-graph information can adjust a post-fusion score but is not a separate candidate producer.
An exact cache path, content-aware compression controls, provider-prefix preparation, and release-gated semantic-cache safeguards. Cache reuse and compression results remain workload- and configuration-specific. Defaults: exact cache on, semantic cache off, safe compression on, aggressive compression off.
The primary Claude conversation turn cannot be cached without the proxy; the MCP tools and skills cache results you explicitly route through SLM. Optimization is designed to fail open: handled optimization errors pass through to the provider, though provider and transport failures remain possible.
The exact cache is the stable path. Semantic caching is opt-in because a similarity threshold can return the wrong response. The implementation contains threshold-learning machinery, but it is not a production claim until the frozen release proves calibration, invalidation, tenant isolation, and false-hit behavior on a representative corpus.
# Opt-in experimental path $ slm cache semantic on ↳ Enabled locally; this is not evidence of production precision # Inspect the cache $ slm cache status Entry count, DB size, TTLs, hit rate
Safe mode is lossless: whitespace and compact-JSON normalisation only. It never removes content and leaves code untouched, so reduction may be small or zero. Aggressive mode is opt-in and applies LLMLingua-2 to prose only, never code, numbers, structured data, instructions, or the current turn. A lossy result can be made reversible by storing its original in the CCR path and using the returned identifier before its TTL expires.
$ slm compress status ↳ Mode and per-channel state $ slm compress mode safe ↳ Lossless normalisation (aggressive is the opt-in alternative) $ slm compress prose on ↳ Prose compression, aggressive mode only
Alignment stabilises the prompt prefix to improve reuse of native provider prefix caching, and is on when compression is on. It helps only when the configured provider supports prompt caching and its cache conditions are met. Pricing, minimums, TTLs, and discounts belong to the provider's current contract; measure actual usage instead of publishing a fixed saving.
$ slm wrap claude ↳ Starts the proxy, sets ANTHROPIC_BASE_URL, launches Claude Code $ slm optimize status ↳ Show all settings (also: on, off) $ slm optimize savings --since 7 ↳ Token and cost report; compare against provider accounting ✓ No fixed hit-rate or cost multiplier without release-linked evidence
Read the full technical architecture or the published research behind the memory design, then follow the installation guide and compare cache correctness, token use, latency, and provider accounting on your own workload.