LIVE v0.4.2 · MIT CORE · EU-HOSTED PRO

Memory that stays
on your machine.

The MCP memory layer for AI agents. Local-first, end-to-end encrypted, ready to plug into Claude Code, Cursor, and anything else that speaks the Model Context Protocol.

brew install raviolelabs/tap/engram

Capabilities

Six primitives. One local SQLite file.

Plug it into any MCP-compatible runtime and let your agent remember across sessions, sources, and machines.

01 · PROTOCOL

MCP-native, zero glue.

Twenty-one tools exposed over the Model Context Protocol. Drop-in for Claude Code, Cursor, Cline, Continue, Zed, OpenAI agents, custom runtimes. No SDK, no wrapper.

{ "mcpServers": {
  "engram": {
    "command": "engram-mcp"
  }
}}
02 · RUNTIME

Local-first. SQLite + LanceDB.

Embeddings via Ollama (nomic-embed-text) by default. Nothing leaves your machine unless you opt into Pro for sync and mobile capture.

▸ ~/.engram/memory.db

single SQLite file · portable · grep-able

03 · INGEST

Multi-source.

Drive, Notion, YouTube, Obsidian, voice, agent transcripts. Connect once, Engram watches and re-indexes on change. No one-shot imports.

04 · ENRICH

Auto-tagged.

Your agent supplies titles and tags via remember. We add vectors, typed fields, and views. Cluster patterns and missing context surface via analyze_patterns and find_gaps.

05 · MOBILE

iOS and Android (Pro).

Voice, text, link share. Capture from anywhere, sync back home through end-to-end encrypted transit. Local Whisper transcribes audio once it reaches the daemon.

06 · SYNC

Encrypted multi-PC sync (Pro).

Bidirectional ops-log over XChaCha20-Poly1305. Your laptop and desktop share one brain. The server sees ciphertext, never content. Key derived via Argon2id, never uploaded.

How it works

From brew install to recall in 3 steps.

No cloud account required to get started. The local server runs as a daemon and exposes itself to any MCP client.

1 · INSTALL

Run one command. The Engram daemon installs locally, sets up SQLite + LanceDB, and downloads the Ollama embedding model in the background. macOS, Linux, Windows (WSL).

$ brew install raviolelabs/tap/engram
==> Installing engram from raviolelabs/tap
==> Downloading nomic-embed-text via Ollama...
==> ✓ engram is ready at localhost:8765

$ engram status
running · 0 memories · 0 synapses

2 · CONNECT

Plug it into your agent. Add one block to your MCP config. Claude Code, Cursor, Cline, Continue: they all discover Engram's 21 tools automatically on next launch.

~/.claude/config.json
{ "mcpServers": {
  "engram": { "command": "engram-mcp" }
}}

→ discovered: remember, recall, recent, watch, ingest, relate ...

3 · REMEMBER

Your agent grows a brain. Every meaningful exchange gets a memory. Every recall pulls semantic context from the local vector store.

claude · session
user: remember that I prefer Polar over Stripe for EU billing
claude → engram.remember()
  ✓ saved · id=mem_a8x2k · tags=[billing, polar, eu]

user: how do I bill EU customers?
claude → engram.recall("eu billing")
  ✓ 3 memories · top: "Polar over Stripe..."

21 MCP tools

A vocabulary for memory.

Each tool is a single verb your agent can call. Self-documenting via MCP. Your agent introspects them automatically.

remember

Save a memory with content, title, tags.

recall

Semantic vector search across all memories.

recent

Time-ordered recall, filtered by type or source.

get

Fetch a memory by ID with all metadata.

update

Edit content, tags, or properties of a memory.

forget

Soft-delete by ID. Recoverable for 30 days.

relate

Create typed links between two memories.

watch

Subscribe to changes on a query or source.

unwatch

Cancel a previously created watch.

ingest

Pull a source (URL, file, transcript) into memory.

connect_drive

Link a Google Drive folder for incremental sync.

connect_notion

Link a Notion workspace for page sync.

list_sources

List active sources and their sync status.

list_types

List memory types defined in your schema.

create_type

Define a new typed memory with custom fields.

delete_type

Remove a type and re-classify its memories.

suggest_properties

Infer schema properties from existing data.

analyze_patterns

Find clusters and trends across memories.

find_gaps

Identify missing context the agent should ask about.

summarize_recent

Generate a digest of the last N memories.

get_ingest_status

Poll progress on a long-running ingestion job.

Confidentiality

Yours alone. By design.

Local-first is the default. The Pro tier adds exactly two cloud-side primitives: sync transit and hosted compute. Everything else stays on your disk.

DATA HANDLING LEDGER · v0.4.2 · EU-HOSTED

ItemPurposeState
emailAccount identifier. Used for receipts and recovery.SEEN
stripe.customer_idSubscription state lookup. Billing via Polar (MoR).SEEN
transit.metadataSize, timestamp, type. Used to route sync. 30-day TTL.SEEN
transit.contentXChaCha20-Poly1305 ciphertext. Key derived via Argon2id, never uploaded.CIPHER
memory.localYour SQLite + LanceDB store. Lives on your disk.NEVER
files.localSources (Drive, Notion, Obsidian) indexed on your machine.NEVER
telemetryNo analytics, no pixels, no fingerprinting. Nothing.NEVER

Example prompts

What you can ask your agent.

Once Engram is connected and you've ingested some sources, your agent gains durable memory. These are the calls that get triggered by natural prompts.

  • "Remember that I prefer Polar over Stripe for EU billing." remember
  • "What did we decide about the auth architecture last week?" recall
  • "Summarize everything I've said about pricing this month." summarize_recent · recall
  • "Connect my Notion workspace and watch the Engineering page." connect_notion · watch
  • "What's missing from our launch plan? What haven't I told you?" find_gaps
  • "Ingest this YouTube video and tell me when I bring it up later." ingest · remember

Pricing

Free forever. Pro when you sync.

The local server is MIT-licensed. Pay only when you want mobile capture, multi-PC sync, and an always-on dashboard.

CORE · LOCAL

$0/forever
  • Local MCP server, all 21 tools
  • All memory types (notes, audio, YouTube, Obsidian, Drive, Notion)
  • Local embeddings via Ollama (auto-installed)
  • Local Whisper transcription
  • Dashboard via local bridge
  • BYO premium embeddings (Voyage or OpenAI)
Sign up free →

PRO · CLOUD SYNC

$9/month
  • Everything in Core
  • iOS + Android capture (voice, text, links)
  • Multi-PC encrypted sync (E2E)
  • Always-on cloud dashboard
  • Hosted embeddings (10M tokens/mo)
  • Hosted Whisper (5h audio/mo)
Upgrade to Pro →

Billing via Polar (Merchant of Record, handles EU VAT). Cancel anytime.

Open source core

The daemon is MIT.

The MCP server (local daemon, all 21 tools, ingestion pipelines) is on GitHub at github.com/RavioleLabs/engram-mcp. The cloud workers that power Pro (sync, hosted embeddings, hosted Whisper) are proprietary. That's what we charge for.