Skip to main content
Glama

ach-memory

A governed, engine-neutral access and delivery layer for memory engines, used by coding agents over MCP. The engine remembers; ach-memory decides who may read and write which bank, keeps the journal, scrubs secrets, and delivers a bounded standing context at session start. Hindsight is the first engine.

Status: 0.1.0. Contract in SPEC.md; why it looks like this in docs/lessons.md.

agent host (Claude Code, Codex)
  │ stdio                       ┌────────────────────────────┐
  ▼                             │ ach-memory (this service)   │
ach-memory mcp  ── HTTPS/MCP ──▶│  auth → scope → service     │──▶ Postgres
  (proxy: git origin → slug,    │  retain · recall · curation │    users, projects,
   auth header)                 │  standing context           │    journal
                                │  Backend ABC ─ Hindsight    │──▶ Hindsight (banks,
                                └────────────────────────────┘    mental models)

Tools

retain · recall · reflect · forget · restore · correct · delete_memory · list_memories · get_memory · history · load_context · get_operation · rename_project. One MCP endpoint (/mcp/), one health route (/health). No REST data plane.

Related MCP server: Menhir

Install on a host

See docs/hosts.md. Short version:

export ACH_MEMORY_URL=https://api.<domain>/ach-memory/mcp/
export ACH_MEMORY_API_KEY=<your platform key>

claude   plugin marketplace add ackstorm/ach-memory && claude plugin install ach-memory@ach-memory
codex    plugin marketplace add ackstorm/ach-memory && codex  plugin add     ach-memory@ach-memory
opencode plugin ach-memory@git+https://github.com/ackstorm/ach-memory.git --global
pi       install git:github.com/ackstorm/ach-memory

opencode also installs straight from the service, with no git and no registry — the endpoint serves the running release's own bundle:

opencode plugin https://api.<domain>/ach-memory/plugin --global

This repository is the plugin bundle: each host reads its own root manifest (.claude-plugin/, .codex-plugin/, package.json) and gets the one skill, the one set of hook scripts, and a stdio proxy built from the checkout it just installed -- so there is no version to pin and nothing of ours to run first.

Run it

make up          # Postgres + Hindsight (mock LLM) + migrations + API on :8000
make e2e         # the same stack, then scripts/mcp-smoke.py over all twelve tools
make test        # unit + contract tests against the fake engine (Postgres on :5434)
MEMORY_HINDSIGHT_URL=http://localhost:8888 uv run pytest -m integration tests/backend

Configure

Every setting is an environment variable with the MEMORY_ prefix (src/memory/config.py). The ones a deployment must set:

Variable

Meaning

MEMORY_DATABASE_URL

Postgres, postgresql+psycopg://…

MEMORY_HINDSIGHT_URL

engine base URL (…/api in the cluster, bare :8888 locally)

MEMORY_MCP_ALLOWED_HOSTS

Host header values the MCP transport accepts (421 otherwise)

MEMORY_AUTH_PLATFORM_*

who owns the caller's key: incoming header, resolver URL/header, user and groups fields

MEMORY_AUTH_JWT_*

alternatively, JWKS-verified JWTs

MEMORY_MASTER_USERS / _GROUPS

operators, matched on the identity provider's subject

Engine profile (verbatim extraction, types=world recall, semantic floor) lives in the Hindsight adapter, not in core; see SPEC.md §5.

Add an engine

Subclass memory.backend.base.Backend in src/memory/backend/<name>.py, add one line to get_backend(), and run the contract suite (tests/backend/test_contract.py) against it. Core never imports a concrete adapter.

Deploy

Helm chart in deploy/helm/ach-memory (image ghcr.io/ackstorm/ach-memory, chart oci://ghcr.io/ackstorm/charts/ach-memory). Release: make release-bump VERSION=x.y.z → commit → make release-cut VERSION=x.y.z; CI publishes the image, the chart and the GitHub release from the tag.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Governed shared memory platform for AI agents and agent fleets. Provides persistent memory, cross-agent knowledge sharing, permissions, audit trails, and multi-tenant isolation through a Model Context Protocol (MCP) server.
    4 npm
    528
    Apache 2.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides coding agents with governed semantic memory and code-graph context via MCP, enabling code-linked recall, blast-radius impact analysis, and lifecycle-aware memory management.
    3
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables coding agents to store, recall, and manage persistent memory across sessions through MCP tools, with reviewable handoffs and SQLite-backed local storage.
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to maintain a persistent identity and structured memory—including reasoning patterns, episodic history, and knowledge—while exposing procedures for managing that memory over MCP.
    Apache 2.0