Skip to main content

MemoryMaster

Covers: installation, governed capture and recall, graph observations, compiled profile, scheduling, and safety.

Key terms: claims, citations, steward, graph observations, compiled profile, Gemini, GLM, SQLite, MCP.

Read when: evaluating, installing, operating, or upgrading MemoryMaster.

Default: private local SQLite; observations and generated views never bypass claim governance.

CI PyPI Python 3.10+ License: MIT

MemoryMaster is persistent memory for coding agents where every durable fact is a governed claim—not an opaque chunk that silently lives forever.

It captures evidence, extracts candidate claims, preserves citations, detects conflicts, promotes trustworthy claims through a steward, and retires facts when their support stops being current. Claude Code, Codex, Gemini-powered workers, Hermes, and any MCP client can share the same local memory without surrendering authority to a vector database or generated summary.

evidence -> candidate claim -> steward -> confirmed claim -> governed recall
                                      \-> supported graph
                                           \-> candidate observation
                                                \-> steward -> opt-in recall

What shipped in 4.7

Capability What it does Default
Governed graph observations Derives supported dependencies, constraints, recurring patterns and root causes from confirmed evidence Generation enabled explicitly; recall opt-in
Compiled user profile Builds a disposable, cited projection from multiple independent sessions Explicitly enabled; never an instruction source
Fast conversational recall Finds relevant claims on the local lexical path without an embedding, Qdrant or provider call On
Private-context intake guard Redacts RFC1918 topology and absolute Windows/UNC paths from durable claim fields while preserving useful prose On
Governed skills Stores reviewed reusable procedures separately from ordinary facts Recall opt-in
Hermes integration Provides exact session/project scoping, local HTTP/stdio compatibility and replay-safe outbox behavior Optional integration
Operational review Performs a read-only six-hour integrity, queue, profile, intake and retrieval review Optional Windows task

MemoryMaster 4.7 uses the configured Gemini extraction + GLM consolidation path for this installation. OpenAI and Anthropic remain optional provider adapters; neither is required for graph-observation discovery or ordinary recall.

Why MemoryMaster exists

Typical memory stacks optimize retrieval while leaving correctness and retirement to the caller. MemoryMaster makes those properties explicit:

  • Every claim has lifecycle state, scope, provenance, confidence and validity.
  • Trusted recall returns confirmed, authorized, non-sensitive claims only.
  • Contradictions become visible conflicts instead of silently coexisting.
  • Citations and support tables make derived output traceable back to evidence.
  • forget previews logical retirement; it never implies an unsafe hard delete.
  • SQLite is authoritative. Qdrant is optional and may only propose IDs that are rehydrated and re-authorized from SQLite.
  • Generated observations, profiles, skills and wiki pages never recursively reinforce the claims that produced them.

Quick start

Install the private local MCP profile:

python -m pip install "memorymaster[mcp,capture,security]"
memorymaster-setup --yes --profile minimal --no-full-stack --json

Restart the agent session once so its long-lived MCP process loads the installed package, then verify:

query_memory("What decisions have we made about storage?")

Try the complete lifecycle in a disposable database:

memorymaster --json demo

Four public operations

The stable Python, CLI and MCP interface is intentionally small:

memorymaster --workspace . remember --text "Atlas uses SQLite WAL."
memorymaster --workspace . recall "What does Atlas use?"
memorymaster --workspace . forget --source-item-id 1
memorymaster --workspace . improve --scope project:atlas
from memorymaster import forget, improve, recall, remember

receipt = remember(text="Atlas uses SQLite WAL.", scope="project:atlas")
context = recall("What does Atlas use?", scope_allowlist=["project:atlas"])
preview = forget(source_item_id=receipt.source_item["id"])
queued = improve(scope="project:atlas")
  • remember stores source/evidence lineage and queues governed extraction.
  • recall is confirmed-only in trusted mode.
  • forget previews by default; --apply performs lifecycle retirement.
  • improve queues bounded work. It does not confirm or rewrite claims inside the request.

See Public v1 for receipts and full parameter contracts.

Graph observations (PPR-7)

Graph observations answer questions that individual facts cannot, such as:

  • Which three blockers form one dependency chain?
  • What recurring pattern is supported by several independent episodes?
  • Which root cause is cited by multiple confirmed claims?
  • Which observation became stale when its supporting evidence was retired?

Component membership is deterministic. Exact canonical graph signatures and union-find decide which evidence belongs together; an LLM may summarize an eligible component but cannot choose membership, invent support, promote its own output, or feed the result back into graph extraction.

Recall remains explicit:

memorymaster --workspace . recall "What dependencies keep recurring?" --include-observations
result = recall(
    "What dependencies keep recurring?",
    include_observations=True,
    observation_limit=2,
)

Trusted mode revalidates support at read time and returns confirmed observations only. Exploratory mode can label candidates or stale observations. Ordinary recall remains unchanged while include_observations is off.

Evidence-bound compiled profile

The compiled profile turns repeated, independently supported transcript facts into a bounded session-start briefing. It is a disposable projection:

  • SQLite transcript/support rows remain authoritative.
  • New or replacement facts need at least two independent sessions.
  • Unknown support IDs, sensitive output, instructions and malformed provider output fail closed.
  • The injected profile is context about the user—not permission and not an instruction hierarchy.

Enable both 4.7 features for new processes:

[Environment]::SetEnvironmentVariable("MEMORYMASTER_GRAPH_OBSERVATIONS", "1", "User")
[Environment]::SetEnvironmentVariable("MEMORYMASTER_COMPILED_PROFILE", "1", "User")

Hooks are re-read on every event and update immediately. MCP servers and other long-lived daemons must be restarted to load newly installed package code or new environment variables.

Scheduled operation—release first, review afterward

There is no 24-hour implementation or release prerequisite. A long observation window is useful only as later evidence about queue health, cost and lifecycle. It must never keep working code out of main merely because the clock has not elapsed.

On Windows, install the bounded read-only review task after installing the release:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install-windows-operational-review.ps1 `
  -PythonExe "<runtime-python.exe>" `
  -Database "<memorymaster.db>" `
  -ExpectedVersion "4.7.2" `
  -EveryHours 6

MemoryMaster-Operational-Review then checks:

  • installed version, schema, SQLite quick_check and foreign keys;
  • observation backlog, blocked jobs and expired leases;
  • compiled-profile runs, facts and exact support counts;
  • recent claim fields for private topology or absolute-path residue;
  • the configured natural-language retrieval canary.

It writes latest.json and append-only execution history under the user's local application-data directory. The review opens SQLite read-only, performs no claim or job mutation, and never turns task transport into a false success receipt. Exit codes are 0=PASS, 1=FAIL, and 3=WARN.

Architecture and governance

producer
  -> source_items
  -> evidence_items
  -> candidate claims
  -> steward proposals / lifecycle events
  -> confirmed claims
  -> FTS5 recall + supported entity graph
  -> optional observations / skills / compiled profile

The default product is one private local SQLite database in WAL mode plus a stdio MCP server. No new database, cloud service or vector server is required. PostgreSQL team operation remains explicitly deferred; Qdrant remains an optional semantic accelerator rather than a source of truth.

Important boundaries:

  • Claim fields pass through the shared sensitivity filter on every ingest path.
  • Raw user-selected source/evidence remains governed by the separate preservation boundary described in ADR-0006.
  • Generated observations cannot support future observations.
  • Trusted graph traversal requires active, authorized support in the same scope and tenant.
  • Schema changes use immutable checksum-verified migrations.
  • The Obsidian wiki is an opt-in human view, not the read layer.

See Architecture, Operations, and the Graph Observations ledger.

MCP configuration

{
  "mcpServers": {
    "memorymaster": {
      "command": "memorymaster-mcp",
      "env": {
        "MEMORYMASTER_DEFAULT_DB": "<path-to-memorymaster.db>",
        "MEMORYMASTER_WORKSPACE": "<project-root>",
        "MEMORYMASTER_MCP_AUTH_MODE": "local-trusted"
      }
    }
  }
}

local-trusted is only for a private SQLite stdio process controlled by one OS user. Regenerate old brownfield entries that do not declare an authorization mode. The full tool inventory is generated from code in release truth; operational examples are in MCP tools.

Providers

Provider calls are for extraction, consolidation and selected steward phases— not for ordinary local recall.

Provider Configuration Typical use
Gemini MEMORYMASTER_LLM_PROVIDER=google plus configured Google credentials Activated extraction path
GLM through authenticated OpenCode configured consolidation model Activated Dreaming/profile consolidation path
Claude CLI OAuth MEMORYMASTER_LLM_PROVIDER=claude_cli Optional batch/steward path
Ollama MEMORYMASTER_LLM_PROVIDER=ollama Optional local provider
OpenAI / Anthropic APIs corresponding provider and environment credential Supported optional adapters

Never put credentials in claims, repository files, task arguments, logs or generated profiles.

Useful commands

# Trusted recall with score explanation
memorymaster query "topic" --explain

# One bounded steward cycle
python -m memorymaster --db memorymaster.db run-cycle

# Database checks
memorymaster --db memorymaster.db --json integrity --quick-check --fk-check

# Dashboard
memorymaster-dashboard --db memorymaster.db

# Validate generated release inventory
python scripts/generate_release_truth.py --check

Upgrade and rollback

Upgrade the package, then restart long-lived MCP/daemon processes:

python -m pip install --upgrade "memorymaster[mcp,capture,security]"

Feature rollback does not delete history:

[Environment]::SetEnvironmentVariable("MEMORYMASTER_GRAPH_OBSERVATIONS", "0", "User")
[Environment]::SetEnvironmentVariable("MEMORYMASTER_COMPILED_PROFILE", "0", "User")

Disabling generation/recall leaves additive tables and audit history intact. Candidates can be archived and confirmed generated observations made stale only through the governed lifecycle—not by deleting database rows.

Project status and documentation

MemoryMaster is MIT licensed. Contributions should preserve SQLite authority, claim governance, exact support lineage, privacy boundaries and opt-in derived recall.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

memorymaster-4.7.2.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

memorymaster-4.7.2-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

Details for the file memorymaster-4.7.2.tar.gz.

File metadata

  • Download URL: memorymaster-4.7.2.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for memorymaster-4.7.2.tar.gz
Algorithm Hash digest
SHA256 77229f36b0d5f89cf34a63bc7d9d57cc4b0784f32f7404f4f7750beff793ee21
MD5 f300596330309b8ed2a8235d19138297
BLAKE2b-256 2593aef89201c1cac16a7bddc86a0e9b9d287ea559f28fd34d1d3dfe82c5e40d

See more details on using hashes here.

Provenance

The following attestation bundles were made for memorymaster-4.7.2.tar.gz:

Publisher: publish.yml on wolverin0/memorymaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file memorymaster-4.7.2-py3-none-any.whl.

File metadata

  • Download URL: memorymaster-4.7.2-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for memorymaster-4.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fda7dc10e4cc63421a7504d97ba5c12f89be3986bd649a28a154917f217fbc6c
MD5 01e6f841dc4674f72cf34ed8535d3a97
BLAKE2b-256 15f040d44d429457ed22e5bbfa6f6299ebebe3a27f1f943f57282f2d41676f2b

See more details on using hashes here.

Provenance

The following attestation bundles were made for memorymaster-4.7.2-py3-none-any.whl:

Publisher: publish.yml on wolverin0/memorymaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page