Rent an LLM β but own the memory, for your company and for your industry.
The governed memory layer for AI agents: local-first, auditable, and built for the compliance obligations teams now actually carry.
Models are interchangeable and rented by the token. What your agents remember is
yours β it is your customers' data, your retention obligations, and your audit trail. SLM
keeps that layer on infrastructure you control, with multi-workspace isolation, role-based
access, and GDPR + EU AI Act governance controls built in.
The boundary. SuperLocalMemory starts with a local runtime;
provider-backed enrichment, cloud backup, connectors, and proxy use are explicit choices.
Different products solve different boundaries. Published benchmark evidence carried into V4
comes from the published V3 research architecture; it is not a claim of a newly rerun V4 package benchmark.
How to check that, rather than believe it. Every reliability
guarantee here is stated as a falsifiable invariant, tested under an adversarial condition with a
negative control, and shipped with the harness that regenerates the evidence:
python benchmark/run_all.py --trials 200 --output-dir results/. What each experiment
does not exercise is stated too.
v4.0.10 β one control plane: SLM-Mesh peer coordination Β· multi-scope memory (personal / shared / global) Β· profiles Β· Cache Β· Compress Β· 7-layer retrieval Β· code graph Β· Entity Explorer Β· skill evolution Β· Modes A/B/C Β· GDPR retention & audit chain Β· bounded loops β across CLI, MCP, dashboard, the Claude plugin, the Codex add-on, and documented IDE integrations.
Proxy: slm wrap claude Β Β·Β MCP: add slm_compress to your config Β Β·Β Skill: zero-config
SuperLocalMemory is an enterprise-grade, local-first memory control plane for AI agents. Your team's agent memory lives on infrastructure you control, with per-workspace isolation, role-based access, and GDPR / EU AI Act governance controls β built for organizations, and for EU data-residency obligations where agent context must not leave your environment by default.
Agent-memory systems make different storage, model-provider, and deployment trade-offs. SuperLocalMemory starts with a local runtime and makes provider-backed enrichment, cloud backup, connectors, and proxy use explicit choices.
Different products solve different boundaries. The published LoCoMo benchmark evidence in this README is protocol-scoped evidence from the published V3 research architecture; it is carried forward for continuity and is not a claim of a newly rerun V4 package benchmark.
SuperLocalMemory V4 combines conventional dense and lexical retrieval with graph, temporal, associative, and statistical relevance scoring in a 7-layer control plane (admission β queryable core β enrichment β brain β multi-channel retrieval β context safety β operations). The default local runtime does not require Docker, a separately operated graph database, or an API key.
Memory with a sense of time. SLM does not only store what an agent learned β it records when. Every fact carries ingestion timing and provenance; recall runs a dedicated temporal candidate channel alongside semantic, lexical, and associative retrieval; scenes and entity timelines reconstruct sequence; and the lifecycle lets neglected memory decay and self-archive instead of growing without bound. Time is a first-class ranking and lifecycle signal rather than a timestamp column an agent never reads β which is what lets a long-lived agent reason about how its context changed, not only what it currently holds.
What V4.0.7 ships. Three things that existed but could not be used. slm summary gives you a readable layer over your own memories β day for what you recorded today, project for a directory, session for one session β each stating how much of the underlying data it could actually see, with --json listing the exact memories it came from. Memories that mention a function, method or file are now linked to that code, with a short description of what they point at and a marker once the code has changed; expanding a memory in the dashboard shows it. Both need no language model, so they work in the fully local mode. The codeβmemory bridge behind the second one had never run at all: the setup flag was written and never read, the build discarded it, its settings had no loader, and the method it was written against was an unimplemented placeholder. Linking runs during background maintenance, never when a memory is saved. See reviewed corrections for the correction lifecycle and MCP tools for host-facing commands.
Fixed in V4.0.7. Version numbers disagreed across the project β the pip requirement pins, npm lockfile, editor plugin manifest, citation metadata and lockfile all still named the previous release, so installing from requirements.txt fetched the wrong version; one script now sets all fifteen. Stale-memory checks reported "nothing is stale" when code linking was simply switched off, and pointed at a setting that did not exist. slm gdpr was missing from slm help. Consolidation, handed something that was neither a database handle nor a path, created a file named after the object instead of refusing it.
Carried forward from V4.0.5 and V4.0.6. A correction is a review-gated lifecycle, not an in-place edit: SLM creates an immutable successor, keeps it out of current recall until an authenticated reviewer applies it, and preserves the predecessor for time-aware history. Every candidate path β cached context, pins, bridge and scene expansion β uses hard current-truth admission and abstains if that truth cannot be read. slm brain, MCP, HTTP and the Living Brain share one observation-only BrainTruth snapshot; feedback, external Bounded Loops evidence and receipt claims are shown honestly but never silently alter recall, ranking or model routing. The Living Brain leads with how many questions your memory has answered rather than a raw event count, and says so plainly where nothing has been measured yet. The knowledge graph opens reliably, with a default of 50 nodes and its details panel reachable on narrow screens. The optional adaptive ranker stays off unless an operator sets SLM_RANKING (v1, v2, or v2-ensemble) β that gate prevents feedback and observation data from changing ranking without an explicit decision, and does not disable the normal retrieval channels.
SLM-Mesh β authenticated cross-session and cross-machine peer coordination (messages, locks, shared state, inbox/outbox, optional discovery). Coordination only β not automatic replicated memory.
Multi-scope memory & profiles β workspaces (profiles) plus personal / shared / global scopes; cross-profile recall is default-deny.
Cache & compression (context optimization) β exact-match cache with tagged invalidation, safe compression, and opt-in reversible/aggressive paths across proxy, MCP, and skill surfaces.
Entity Explorer & skill evolution β compiled entity summaries/timelines; opt-in skill lineage, budgets, and verification outcomes.
Modes A / B / C β local-only (A), on-device LLM enrichment (B), provider-assisted (C). An operating mode records technical locality facts; it does not determine EU AI Act legal compliance (that is deployment-context assessment β see Privacy controls).
GDPR posture, retention & audit chain β export, fail-closed cross-store erasure, retention policies, and a hash-chained audit trail. Engineering controls for compliance programs, not a legal certification.
7-layer retrieval/recall stack & code graph β multi-channel candidates (semantic, BM25, temporal, Hopfield, spreading activation) plus optional code-graph tools for blast radius and review context.
MCP profiles β code exposes 31 tools for installed coding agents; full49; power61; whole94 (all registered). Also core (16), mesh (8), and the unrestricted default surface (49 with mesh enabled).
Governed write path & verifiable transactions β admission + policy control, a per-owner obligation ledger, and a hash-sealed completion manifest with a reconciler that redrives unmet obligations.
Self-healing lifecycle & admin remediation β stale locks cleared on restart; list/resolve stuck operations from CLI, MCP, or the dashboard.
SLM is one strand of Qualixar's work on AI reliability engineering: making agent behavior observable, bounded, and reproducible instead of best-effort.
The architecture evaluated in the V3 paper remains the foundation of this release. The figures below keep their original LoCoMo protocol, answer-construction, model, and sample scope.
How SLM fits beside other memory systems
Different products solve different boundaries. SLM is for developers who want
one local-first operating control planeβnot only an SDK, managed context API,
or agent runtime. It combines dated evidence, graph-aware retrieval, cache and
compression controls, SLM-Mesh, and MCP/CLI/hooks/dashboard/IDE
surfaces in one install.
If your primary need isβ¦
Product boundary to evaluate
Local-first agent memory plus operations, optimization, and IDE-agent surfaces
SuperLocalMemory β Mode A local core; Modes B/C by explicit choice.
A memory SDK, self-hosted server, or managed platform
See the source-linked market comparison
for current primary sources and protocol-scoped benchmark evidence. A LoCoMo
percentage is comparable only when the dataset scope, answer model, judge,
retrieval stack, and release artifact match.
The V4 capability architecture
SuperLocalMemory is one local control plane for persistent agent context. It is
not just a vector store: the same runtime can accept evidence, build and govern
memory, retrieve bounded evidence for an agent, and expose cache, compression,
and SLM-Mesh peer-coordination controls through a CLI, MCP, dashboard, and supported
IDE integrations.
Architecture boundary: SQLite + sqlite-vec remain canonical; CozoDB and
LanceDB are parity-gated projections; SLM-Mesh coordinates trusted peers rather
than replicating a distributed memory database; connectors are opt-in.
Memory boundaries: profiles isolate workspaces by default. Every memory is
personal, shared with named profile readers, or global; cross-profile
recall is default-deny and must be explicitly enabled. This scoped sharing is
local authorization, not SLM-Mesh synchronization. See
shared-memory.md.
The seven stages are an execution model, not a promise that every optional
enricher or retrieval channel runs for every request. The receipt, trace, and
health surfaces expose the stages actually completed by the installed runtime.
Learning is evidence-driven; it does not claim autonomous correctness or guaranteed improvement.
Knowledge graph and entities
Canonical entities, aliases, entity profiles, graph edges, scenes, timelines, explorer and graph APIs
Stored/derived graph data is evidence, not an instruction authority.
Scale Engine
SQLite + sqlite-vec are canonical. CozoDB graph and LanceDB vector projections are managed with prepare β verify β promote β rollback; a structurally detected pre-v3.7 projection can be explicitly adopted.
Promotion is parity-gated and crash-recoverable. Legacy adoption preserves the prior projection as a rollback backup; repeated physical edge rows normalize to one logical edge with the strongest weight.
These are engineering controls, not a legal certification.
Integrations
CLI, Python SDK, MCP HTTP/stdio, Claude plugin, Codex add-on, supported IDE configurations, Gmail/Calendar/transcript adapters
Hooks, IDE edits, connectors, and networked adapters require explicit operator activation.
What the dashboard exposes
slm dashboard opens a local operational view of the same control plane:
Workspace
Use it to inspect or control
Dashboard and Health
daemon identity, storage/runtime health, diagnostics and recent activity
Brain
consolidation, behavioral patterns, outcomes/rewards, learning state and soft prompts
Knowledge Graph and Memories
graph neighborhoods, entities, scenes, temporal evidence, memory inspection and mutation
Operations
ingestion-operation state, traces, maintenance and lifecycle work
Entity Explorer and Skill Evolution
compiled entity summaries/timelines; opt-in skill lineage, budgets and verification outcomes
Multi-Agent Memory
per-agent write activity and attribution; memories stamped by SLM_AGENT_ID, agent write counts, and trust signals
SLM-Mesh Peers
configured peers, inbox/outbox, pending coordination and locks
Settings and Optimize
mode/provider/configuration; cache, compression and savings telemetry
Dashboard visibility is not a substitute for runtime proof: use slm doctor,
slm health, slm trace, and the relevant CLI/MCP operation to validate a
deployment.
Watch the product walkthrough
Watch the SuperLocalMemory demo on YouTube β a five-minute walkthrough of installation, setup, recall, cache, and compression. The video shows a product walkthrough; use the commands and release notes in this README as the current release contract.
Published LoCoMo evidence (V3 architecture, carried into V4)
The V3 paper evaluates the multi-channel architecture that V4 still runs. Every figure below
is protocol-scoped, so a reader can distinguish local retrieval, answer
construction, and cloud-assisted evaluation rather than treating unlike runs as
one score.
Published configuration
LoCoMo aggregate
Protocol scope
What the result establishes
Mode A Raw
60.4%
10 conversations; 1,276 scored questions; local embeddings, local retrieval, and zero-LLM answer construction
End-to-end local answer construction under the published V3 protocol.
Mode A Retrieval
74.8%
10 conversations; 1,276 scored questions; local retrieval, then GPT-4.1-mini answer synthesis
Retrieval evidence: local retrieval contributes the evidence, while the disclosed external model constructs the final answer.
Mode C
87.7%
Conv-30 only; 81 scored questions; text-embedding-3-large plus GPT-4.1-mini answer generation and judge
Cloud-assisted configuration on one fully disclosed conversation; not a full-dataset result.
Published category results: Mode A Retrieval scored 72.0% single-hop,
70.3% multi-hop, 80.0% temporal, and 85.0% open-domain. Mode C
scored 64.0% single-hop, 100.0% multi-hop, and 86.0% open-domain
on its 81-question Conv-30 scope (no temporal category was reported for that
run). Across six LoCoMo conversations, the paper reports 71.7% with the
information-geometric layers versus 58.9% without them: +12.7pp.
See arXiv:2603.14588 and the official
LoCoMo paper for the full protocol,
ablation table, and limitations. These are published V3 architecture results
carried into V4βnot a substitute for a newly rerun release-artifact benchmark.
Quick Start
bash
# Primary path 1 β npm global CLI (Node 18+)# Creates a package-owned virtual environment. It does not modify system Python.
npm install -g superlocalmemory
slm setup # Choose mode (A/B/C)
slm doctor # Verify everything is working
bash
# Primary path 2 β Python CLI + SDK in an activated virtual environment
python3 -m venv .venv
source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install superlocalmemory
slm setup
slm doctor
bash
# First use
slm remember "Alice works at Google as a Staff Engineer" --json
slm recall "What does Alice do?"
slm status
The default daemon write commits raw evidence plus a relational/FTS projection
and returns a durable receipt in queryable state. Enrichment then advances the
same operation through enriching to complete, or records a retryable
failed state. Use slm remember "..." --sync when the caller must wait for
all declared derivation and projector stages. JSON output includes the opaque
operation_id, current materialization_state, and fact IDs.
bash
# Wrap your agent β starts proxy + sets environment + launches agent
slm wrap claude
# Your first repeat prompt β CACHE HIT β $0.00# See savings: slm optimize savings --since 1
Upgrading: use the owner of the installation: npm update -g superlocalmemory
or, while the Python virtual environment is active,
python -m pip install --upgrade superlocalmemory. Then run
slm restart && slm doctor. Repository-clone users use the matching upgrade
action in scripts/install.sh or scripts/install.ps1. Installers never move
or delete memory data.
Three Pillars
Memory
Current recall has five candidate producersβdense semantic, BM25 lexical,
temporal, Hopfield associative, and spreading activationβfollowed by fusion,
optional reranking, and entity-graph score enhancement. The entity graph does
not create an independent candidate in the current implementation. Core memory
is SQLite-backed. SQLite and sqlite-vec remain the canonical source of truth.
The packaged Scale Engine can maintain CozoDB graph and LanceDB vector
projections, and it remains outside active retrieval paths until a staged
parity witness proves it matches the canonical store. New installations remain
on Local Core. During upgrade, slm db scale status can identify a positive
pre-v3.7 layout candidate; the operator confirms it with slm db scale adopt.
SLM then rebuilds from canonical SQLite, verifies it, and promotes it with a
durable recovery journal while retaining the prior directories as a rollback
backup. adopt reports restart_required: true; run slm restart before
checking daemon health. If proof fails, recall remains on SQLite and status
retains the rejected manifest for inspection, retires its replaceable derived
payload, and allows a corrected retry.
Canonical ingestion is a durable state machine: raw β queryable β enriching β complete, with failed retaining raw evidence, error details, attempt count,
and retry timing. SQLite relational facts and FTS are the queryable checkpoint;
optional ANN/vector projectors are verified before complete is granted.
Recalled text is treated as untrusted evidence. Hooks, MCP session_init, CLI
session context, and chat use one bounded renderer that redacts recognized
secrets, neutralizes forged boundary markers, and attaches provenance. Trusted
IDE instruction files contain only the static SLM protocol; fresh memory is
retrieved at runtime rather than copied into those files.
Score Contract v2:relevance_score is query-relative relevance;
ranking_score is internal ranking utility; memory_confidence belongs to the
stored assertion; and trust_score is an evidence-policy signal. Legacy
score and confidence remain aliases for one compatibility release. V3.8.0 is
explicitly uncalibrated: calibration_status is uncalibrated and
answer_confidence is null. See
the retrieval score contract.
The retrieval/lifecycle implementation includes three mathematical layers that
can run without a cloud LLM:
Fisher-informed scoring β dense candidate generation uses cosine similarity; Fisher-derived terms can modify later scoring when their state is available.
Sheaf Cohomology for Consistency β algebraic topology detects contradictions via coboundary norms on the knowledge graph.
Riemannian Langevin Lifecycle β memory positions evolve on the Poincare ball; neglected memories self-archive, no hardcoded thresholds.
Auto-capture hooks are installed explicitly with slm hooks install (Claude
Code) or slm hooks install --agent codex (Codex). Hook latency and capture
quality must be evaluated for the target client and workload; V3.8.0 publishes no universal p99 claim.
Multi-scope memory (v3.6.15, opt-in): keep memories personal (default), shared with named profiles, or global across the machine. Off by default β recall only ever returns your own facts until you turn sharing on, per call or in config. See docs/shared-memory.md.
Multilingual models: configure an OpenAI-compatible embedding endpoint such as Ollama, vLLM, LiteLLM, bge-m3, multilingual-e5, or Qwen3-Embedding. Language coverage and retrieval quality depend on the selected model and should be evaluated for the deployment corpus.
Cache + Compress
One engine, three ways in β choose the surface that fits your setup:
Surface
How you use it
Requires proxy?
Window effect
Cache scope
A β Proxy
slm wrap claude or ANTHROPIC_BASE_URL=http://127.0.0.1:8765
Yes
Shrinks
Full-turn cache β every call
B β MCP tools
Add 5 tools to MCP config; call slm_compress, slm_cache_set/get
The hard constraint: The primary Claude conversation turn cannot be cached without a proxy. The MCP/skill path caches results you explicitly route through SLM (tool outputs, file reads, sub-model calls) β without a proxy the main conversation turn is not intercepted.
How to choose:
Metered API (pay-per-token), want every call cached β Proxy (A)
Pro/Max/Team subscription or any plan where you won't run a proxy β MCP tools (B) or Skill (C)
Zero configuration β Skill (C): install once, auto-compresses CLAUDE.md and large outputs
Agent-controlled caching of repeated file reads β MCP tools (B)
Cache: exact-match SQLite lookup is the stable cache path. Semantic cache
controls are experimental until release-linked precision, invalidation, and
tenant-isolation evidence exists. A cache hit can avoid a provider request, but
actual cost and latency savings depend on the intercepted surface and provider.
Compress: safe mode uses conservative normalization and preserves JSON and code; measured reduction varies by content and can be zero. Aggressive prose compression is opt-in and lossy. CCR can retain an original for later byte-exact retrieval when reversible storage is enabled.
SLM-Mesh is the V4 peer-coordination plane: authenticated messages, locks, shared lightweight state, inbox/outbox, and an offline queue between configured peers (same machine sessions or cross-machine). Optional mDNS discovery (SLM_MESH_DISCOVERY=on). It is not a replicated or conflict-resolving distributed-memory database β multi-scope memory sharing is a separate local-authorization feature.
bash
# Machine A (broker)export SLM_MESH_HOST=192.168.1.100
export SLM_MESH_SHARED_SECRET=my-secret-key
slm init
# Machine B (client)export SLM_MESH_PEER_URL=http://192.168.1.100:8765
export SLM_MESH_SHARED_SECRET=my-secret-key
slm init
V4 platform support: Apple Silicon macOS, 64-bit Windows, and 64-bit Linux. Intel Mac and 32-bit Windows are not supported by the patched cryptography 50 runtime.
Path
Command
When
npm global CLI (primary)
npm install -g superlocalmemory
Node 18+; package-owned virtual environment; system Python is not modified; run slm setup explicitly afterward
Python CLI + SDK (primary)
Activate a Python virtual environment, then python -m pip install superlocalmemory
Python 3.11+; the slm CLI and importable SDK stay inside that environment
Repository clone β macOS/Linux
./scripts/install.sh install
Research/contributor path; delegates to an existing uv or pipx installation
Repository clone β Windows
.\scripts\install.ps1 -Action Install
Research/contributor path; delegates to an existing uv or pipx installation
Claude Code Plugin
/plugin marketplace add qualixar/superlocalmemory then /plugin install superlocalmemory@qualixar
Wire any IDE without reinstalling; slm connect claude-code β plugin pointer
After any install path: slm setup β slm doctor β slm warmup (optional, pre-downloads ~500MB embedding model).
Upgrading an existing installation
An npm, pip, or repository update upgrades the SLM runtime; it does not silently
rewrite your IDE configuration, hooks, or plugin state. Review the existing
integrations first:
bash
slm upgrade-hosts
Then explicitly apply the hosts you approve, for example
slm upgrade-hosts --host codex --apply, or use
slm upgrade-hosts --all-detected --apply after reviewing the preview. See
Host Integration Upgrades for the full safety contract
and the Claude Code plugin update path.
Component
Size
When
Core libraries (numpy, scipy, networkx)
~50MB
During install
Dashboard & MCP server (fastapi, uvicorn)
~20MB
During install
Learning engine (lightgbm)
~10MB
During install
Search engine (sentence-transformers, torch)
~200MB
During install
Embedding model (nomic-embed-text-v1.5, 768d)
~500MB
First use or slm warmup
Mode B requires Ollama + a model (ollama pull llama3.2)
export SLM_MCP_PROFILE=full # or core / code / mesh / power / whole
slm mcp
For a predictable small surface, set core explicitly. Leaving the variable
unset retains the compatibility default, whose mesh tools follow the local
mesh setting. Count-suffixed aliases remain for backward compatibility and emit a migration warning: core14, core16, code20, code21, code24, code28, code29, code31, mesh8, full38, full39, full42, full46, full47, full49, power50, power51, power54, power58, power59, power61, whole81, whole84, whole91, whole92, whole94. Unknown names stop startup instead of silently selecting another tool set.
Per-IDE configs available for Claude Code, Cursor, Windsurf, VS Code Copilot, Continue, Gemini CLI, JetBrains, Zed, and more (15 configs in ide/configs/). See docs/ide-setup.md.
Claude Code Plugin
Install directly in Claude Code β no system-level npm/pip needed. This is how you
get the skills, agents, hooks, commands, and rules (the MCP server is
bootstrapped automatically). It is a two-step flow β add the marketplace once,
then install:
bash
# 1. Add the Qualixar marketplace (one-time β the repo IS the marketplace)
/plugin marketplace add qualixar/superlocalmemory
# 2. Install the plugin
/plugin install superlocalmemory@qualixar
Self-bootstraps a Python venv, installs all deps in an isolated SLM_DATA_DIR
Registers the 16-tool core MCP surface (core16 profile by default; core14 remains a compatibility alias)
Additive β does not replace an existing SLM install
slm connect claude-code detects an existing plugin install and links them
Plugin vs Python/npm:python -m pip install superlocalmemory inside an
activated virtual environment, or npm i -g superlocalmemory,
give you the slm CLI + the MCP server (the tools). The skills/agents/hooks/
commands come only through the plugin above. Use the plugin for Claude Code; use
pip/npm for the CLI or other IDEs.
To update later: /plugin marketplace update qualixar then /plugin install superlocalmemory@qualixar.
Codex add-on
For Codex, install the SLM-owned skills, two focused subagents, and four
lifecycle hooks explicitly:
bash
slm codex install
This adds only SLM-owned files under ~/.agents/skills, ~/.codex/agents, and
~/.codex/hooks.json; it does not replace another agent's hooks or rewrite
~/.codex/config.toml. Codex requires review and trust for new command hooks:
open /hooks after installation. MCP wiring remains a separate explicit step:
bash
slm connect codex
slm connect codex semantically merges the superlocalmemory MCP server into
~/.codex/config.toml, preserving unrelated configuration keys and writing
atomically. TOML serializers can normalize whitespace and comments, so it is
not a byte-preserving operation; use it only when you want the MCP server
configured. Check the result with slm codex status; undo SLM-owned add-ons
with slm codex remove.
GitHub Copilot integration
The shipped installer configures the SuperLocalMemory MCP server and additive
agent instructions for VS Code with GitHub Copilot:
bash
slm connect vscode-copilot --here
Run it from the project root. It semantically merges the SLM server into
.vscode/mcp.json and adds SLM-owned guidance inside
.github/copilot-instructions.md, preserving unrelated servers and existing
instructions. The generated copilot-plugin/ source bundle is maintained for
parity checks, but v3.8.1 does not claim that slm connect installs its prompt,
agent, or hook files.
Privacy controls and operating modes
Mode
What
Core memory path
Optional network behavior
A
Local Guardian
Local processing
Model/dependency downloads, connectors, backup, and other enabled integrations may use the network
B
Smart Local
Local Ollama enrichment
Same optional integrations as Mode A
C
Provider-assisted
Local storage with provider calls
Query or enrichment content is sent to the configured provider
bash
slm mode a # Zero-cloud (default)
slm mode b # Local Ollama
slm mode c # Cloud LLM
Mode A can run core memory operations without sending memory content to a cloud model provider. This does not disable optional connectors, cloud backup, proxy providers, dependency acquisition, or model downloads; review configuration and network policy for the deployment.
SuperLocalMemory provides local storage, export/erasure commands, provenance, policy, and audit features that can support a compliance program. The software is not a legal certification, and compliance depends on the use case, operator, configuration, and surrounding systems.
Available controls include local export and erasure commands, hash-chained audit records, provenance tracking, and ABAC policy enforcement. Verify their behavior and retention boundaries for your deployment; see docs/compliance.md.
Teams and Enterprise Memory (V4)
V4 includes multi-user, multi-workspace controls for teams and organizations (introduced on the 3.8 line and retained). These are opt-in β personal single-user installs work exactly as before with no required login.
Users and roles
SLM supports three role tiers within a workspace: admin, member, and viewer.
Role
Can read memory
Can write memory
Can manage users/config
admin
yes
yes
yes
member
yes
yes
no
viewer
yes
no
no
Roles are scoped per workspace (profile). A user may have different roles in different workspaces.
Workspace isolation
Each workspace (profile) is a fully isolated memory namespace. One workspace cannot read another's personal memories. Shared and global scopes are opt-in and still profile-bounded at the authorization layer.
Login gate
Enterprise deployments set require_login = true in configuration. With login enabled:
Every dashboard and API request requires an authenticated session.
First-run creates an admin account with a user-chosen password (no default credentials are shipped).
Session cookies use HttpOnly with optional Secure enforcement.
Personal installs run with require_login = false (loopback owner is trusted).
bash
slm config set security.require_login true# Enable for team/enterprise use
Recall is default-deny: shared and global facts are never returned unless the caller explicitly opts in (--include-shared, --include-global) or the scope policy allows it. See docs/shared-memory.md.
GDPR and data governance
SLM ships built-in controls that support GDPR compliance programs:
Export β full profile data export as a structured JSONL bundle
Erasure β profile deletion removes data from 30+ scoped tables; erasure is logged to the tamper-proof audit chain before any data is deleted
These are engineering controls. Compliance depends on deployment configuration, use case, and operator responsibility. See docs/compliance.md.
EU AI Act mode verification
SLM includes a per-mode EU AI Act technical posture report (EUAIActChecker). It records facts the runtime can know β whether data is configured to stay local, whether generative AI is used, and that transparency / human-oversight need deployment evidence.
An operating mode does not establish legal compliance under the EU AI Act. Legal risk classification and conformity assessment depend on intended purpose, affected persons, sector, deployment context, and operator controls. The checker therefore returns compliant=None / risk category undetermined for every mode and always requires deployment-context review. Mode A/B/C only change technical locality and enrichment options (for example Mode C may send content to a configured provider). See docs/compliance.md and src/superlocalmemory/core/modes.py.
Deployment tiers
SLM ships one binary and is configured for the appropriate tier at install or post-install time.
Tier
Login gate
PII redaction
Retention
Audit
Personal
off
off
off
on
Enterprise
on
on
on
on
The installer or slm reconfigure sets the tier. Each setting is independently overridable at runtime. Full tier documentation: docs/deployment-tiers.md.
A bounded loop terminates only when an independent gate passes β a test
suite exit code, a linter, a JSON-schema check, or an SLM-recall condition.
The agent's own "I finished" message is recorded as advisory context and never
used as the termination signal. Every lap is persisted to SLM memory under the
tag loop:<name>, so runs are auditable and resumable across sessions.
Three surfaces ship together:
Surface
How you use it
CLI
slm loop demo Β· slm loop history [--name <n>] Β· slm loop show <run_id>
Skill + agent
/slm-loop skill with the slm-loop-runner agent β delegate a task that has a checkable acceptance condition
MCP tools
slm_loop_run Β· slm_loop_history Β· slm_loop_show β call from any IDE or agent (available in the code and full MCP profiles)
bash
# Run the built-in convergence demo (no API key needed)
slm loop demo
# Inspect recorded runs
slm loop history --name convergence-demo
slm loop show <run_id>
Loop laps are stored as ordinary SLM memories and are visible in the dashboard
under Knowledge Graph and Memories (filter by tag loop:<name>) and in the
Multi-Agent Memory workspace.
Framework Adapters (V4)
SLM ships nine adapters under ide/integrations/: LangGraph, Semantic Kernel,
Microsoft Agent Framework, LangChain, LlamaIndex, CrewAI, AutoGen, Google ADK,
and OpenAI Agents. Each wires SLM as memory and history without replacing the
framework runtime; its directory contains installation/configuration guidance.
Pydantic AI is not included because it does not expose a formal external-memory
interface.
Open the web dashboard with slm dashboard; workspaces appear only when their
runtime capability is enabled and healthy. See CHANGELOG.md for
the complete release history.
If this project solves a real problem for you, please star the repo β it helps other developers discover Qualixar and signals that the AI agent reliability community is growing.