Skip to main content

Engram — local-first personal memory layer for AI agents: markdown vault + hybrid retrieval, exposed over MCP.

Project description

Engram

A local-first shared brain for AI agents.
One markdown file per fact, on your disk — written and recalled by every agent on your machine over MCP, and by you with grep.

PyPI Python MCP tools License

One command installs uv (if missing), registers the server, plugs in the skill, and starts the ping monitor:

curl -fsSL https://engram-site-xi.vercel.app/install.sh | sh

Or do it by hand:

claude mcp add engram --scope user -- uvx engram-vault@latest   # Claude Code
uvx --from engram-vault@latest engram setup                     # skill + ping monitor + auto-update

Any other MCP client — add to its config, then restart:

{ "mcpServers": { "engram": { "command": "uvx", "args": ["engram-vault@latest"] } } }

@latest so a relaunch auto-pulls new releases (uvx otherwise pins the first-installed version). engram setup auto-plugs the skill into ~/.claude/skills/, installs a desktop wake script, and runs notifyd as a kept-alive monitor so teammate pings reach you even when you're idle. Check it any time with engram doctor.

Teach your agent to remember

Copy this straight into your agent's system prompt (CLAUDE.md, custom instructions, anywhere it reads on boot):

You have Engram, a local-first shared memory, available over MCP
(tools: add, search, recall, register_agent, send_message, inbox, ...).

Recall — at the start of any substantive task, and whenever prior context
would help (past decisions, projects, people, preferences), call `search`
with a few keywords before answering.

Capture — when you produce knowledge worth keeping (facts about the user,
decisions, learnings, debugging breakthroughs), call `add` without asking.
One atomic fact per add. Tag consistently: project:<name>, person:<name>,
pref, decision, learning. Set source to your client name.

Fleet (optional) — call `register_agent` once per session to join the team
brain under a stable name; check `inbox` for teammate messages and reply
with `send_message`. Never claim another agent's name.

That's the whole onboarding: recall before answering, capture liberally, identify honestly.

Why

Agents forget everything between sessions, and every framework wants to own your data in a database you can't read. Engram inverts both: memory is plain markdown in a folder you own (~/Library/Application Support/KB, or KB_DIR), with retrieval and coordination layered on top — no lock-in, no cloud, greppable forever.

What you get

Memoryadd / update / supersede / pin facts with tags, scopes, and entity links. Confidence decays unless reinforced; superseded facts keep their history.

Retrieval that's actually fast — hybrid search (semantic ⊕ BM25 ⊕ entity) fused with reciprocal-rank fusion and MMR diversification: ~140 ms warm on a 9k-fact vault. recall is the "ask your memory" verb.

A real multi-agent layer — multiple agents (Claude Code sessions, apps, workers) share one vault as a team brain:

  • Authenticated identity (TOFU) — first register_agent mints a per-name token (sha256-only at rest); every message is stamped via: with the authenticated sender, and presence shows verified only when proven. Impersonation can't hide.
  • Messaging, handoffs, rooms — DMs, broadcasts, threads, ticket-style handoffs with read/done status, membership-gated rooms.
  • Wake on send, not polling — a message fires the recipient's alarm (desktop banner, SMS, in-app queue, or re-invoked agent session). Pollers that remain use inbox(since=…) cursors: an idle tick reads zero files.
  • Fleet viewsengram CLI (kb agents, kb feed equivalents via the engram entry point) and kb top, a full terminal mission control (fleet, ticket kanban, live comms).

Contracts, not conventionsCOORD.md documents the wire format any second implementation must honor; a bundled agent skill teaches the full protocol so a new agent can join the fleet cold.

The dogfood loop

Engram is built by the agent fleet that runs on it — the same vault coordinating its own development surfaced and fixed a thread-loading bug, an unauthenticated-sender gap, and a GC regression within hours of each shipping. The traces are the QA.

Links

Project details


Download files

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

Source Distribution

engram_vault-0.8.2.tar.gz (92.2 kB view details)

Uploaded Source

Built Distribution

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

engram_vault-0.8.2-py3-none-any.whl (94.0 kB view details)

Uploaded Python 3

File details

Details for the file engram_vault-0.8.2.tar.gz.

File metadata

  • Download URL: engram_vault-0.8.2.tar.gz
  • Upload date:
  • Size: 92.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.19

File hashes

Hashes for engram_vault-0.8.2.tar.gz
Algorithm Hash digest
SHA256 c6240b1afb0b61e81cf3388ddc84b67fc91ca09a6eea2b7a1c2d8bfac5087f9e
MD5 ab443f24d9f38cecc71c11607e313f1d
BLAKE2b-256 b3c00b1e489d5a906528ac2b225dd90ada4f4e01d542e6e5de2d669794bef65f

See more details on using hashes here.

File details

Details for the file engram_vault-0.8.2-py3-none-any.whl.

File metadata

File hashes

Hashes for engram_vault-0.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 70ee34d09fdcf921c274c9b656ed0294d3d3fe276141780c4f1b491db39e404a
MD5 905b095e09c8d6c6aa29c3118585d3e5
BLAKE2b-256 2c65ada78bd4440228c5e8230740ee45dc4b9cdff334ecb3c0f23ee975b70863

See more details on using hashes here.

Supported by

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