Single binary — Zero dependencies

Give your agent a brain.

Persistent memory for AI coding agents. Agent-agnostic, SQLite + FTS5, a single Go binary. Works with Claude Code, Gemini CLI, Codex, VS Code and more.

$ brew install gentleman-programming/tap/engram

Also available for Windows & Mac/Linux

Engram elephant mascot

The problem

Your agent forgets everything
when the session ends.

Every time you start a new session, your AI coding agent has zero context. The bug you fixed yesterday, the architecture decision you made last week, the conventions your team follows — gone. You repeat yourself, re-explain context, and watch the same mistakes happen again.

Engram gives your agent a persistent, searchable memory layer. You never start from zero again.

Without Engram
Starting session...
Remind me how we solved the N+1 query last week?
I don't have any context from previous sessions. Could you explain the codebase?
...again?
With Engram
Loading 24 memories... Session context restored.
Found it: Fixed N+1 query in UserList — added eager loading. Last session also decided to migrate to Prisma.
Let's pick up where we left off.

Features

Everything you need,
nothing you don't.

Designed for developers who value their time and tools. No Node.js, no Python, no Docker. One binary.

Agent agnostic

Works with any MCP-compatible agent. Claude Code, OpenCode, Gemini CLI, Codex, VS Code, Cursor, Windsurf, or anything else you throw at it.

Claude Code OpenCode Gemini CLI Codex VS Code Cursor Windsurf

SQLite + FTS5 search

Full-text search built-in. Zero external processes. Your memories are a single engram.db file.

One binary, zero deps

A single Go binary. No Node.js, no Python, no Docker, no Chrome DB. go install and you're done.

Interactive TUI

engram tui launches a beautiful terminal UI. Navigate, search, and explore memories with vim keys.

15 MCP tools

mem_save, mem_search, mem_context, mem_session_summary, mem_timeline, and 10 more. Standard MCP protocol — plug in and go.

mem_save mem_search mem_context mem_session_summary mem_timeline + 10 more

Git sync

Share memories across machines with engram sync. Uses compressed chunks — no merge conflicts, no huge files.

$ engram sync
# exported 3 new memories →
$ git commit -m "sync engram"
$ engram sync --import
# ✓ imported 3 memories

How it works

Three steps to a
permanent memory.

Install once

One brew install command. Or download the binary directly for Windows and Mac/Linux. No runtime, no dependencies, no setup scripts.

$ brew install gentleman-programming/tap/engram

Agent save memory

You do nothing. Agents call mem_save for bugfixes, decisions, discoveries, and conventions automatically. Key moments stay ready for later.

> mem_save("Fixed N+1 query in UserList")

Next session: context loaded

Start a new session and your agent automatically searches past memories, resumes where you left off, and never asks you to re-explain the codebase.

> mem_context() → 24 memories loaded

Compatibility

Works with every agent
you already use.

Standard MCP protocol. If it speaks MCP, it works with Engram.

Claude Code

Plugin marketplace

engram setup claude-code

OpenCode

Built-in setup

engram setup opencode

Gemini CLI

Built-in setup

engram setup gemini-cli

Codex

Built-in setup

engram setup codex

VS Code

Built-in setup

engram setup vscode-copilot

Cursor

Built-in setup

engram setup cursor

Windsurf

Built-in setup

engram setup windsurf

Pi

Built-in setup

engram setup pi

Kiro

Built-in setup

engram setup kiro

Kilo Code

Built-in setup

engram setup kilocode

Qwen Code

Built-in setup

engram setup qwen

Antigravity CLI

Built-in setup

engram setup antigravity-cli

Any MCP Agent

Standard protocol

engram mcp

Comparison

Better by design.
Not by accident.

Engram is inspired by claude-mem. But made different.

Feature Engram claude-mem
Language Go (single binary) TypeScript + Python
Agent lock-in None — any MCP agent Claude Code only
Search SQLite FTS5 (built-in) ChromaDB (extra process)
Storage Single .db file SQLite + ChromaDB
Dependencies Zero Node.js, Bun, uv, Python
Processes One binary Worker + ChromaDB
Auto-capture Agent decides (clean) All calls then compress
License MIT AGPL-3.0
Inspired by claude-mem — but agent-agnostic, simpler, and built different.

Your memory, everywhere.

Engram Cloud is an opt-in, self-hosted replication layer that syncs your agent's memory across machines — with a browser dashboard for your entire team. Local SQLite stays the source of truth. Always.

Engram Cloud — A Hive Mind of Elephants

Project-scoped replication

Each sync call is tied to one explicit --project. No surprise data leaks. You control exactly what leaves your machine.

Browser dashboard

Server-rendered UI for stats, activity, project browser, contributors, and admin controls. Your team sees what the agents remember.

Self-hosted, your rules

Deploy on your infrastructure — Dokploy, Coolify, Portainer, or bare VPS. Official Docker image on GHCR. Linux amd64 + arm64.

Deterministic failures

Clear reason codes — blocked_unenrolled, auth_required, paused — instead of silent drift. You know exactly what happened.

quickstart
# Start cloud + Postgres
$ docker compose -f docker-compose.cloud.yml up -d
# Configure & enroll
$ engram cloud config --server http://127.0.0.1:18080
$ engram cloud enroll my-project
# Sync & verify
$ engram sync --cloud --project my-project
✓ pushed 42 observations to cloud

Local-first. Team-visible. Your infrastructure.

Open Source

Built in public.
Open for everyone.

Engram is MIT licensed and actively maintained. Every decision is made in the open — audit the code, open an issue, or submit a PR.

6.2k Stars 658 Forks
26 Contributors
MIT License

Get started

Your agent's
memory starts
today.

One command. Persistent memory. Works with every agent you already use. No Node.js, no Python, no Docker. Just a single binary.

$ brew install gentleman-programming/tap/engram