Engrm

The only AI memory that syncs across devices and agents.
Cross-device persistent memory for OpenClaw, Claude Code, Codex, and any MCP-compatible agent. Start free with 2 devices.
Get Started β’ Documentation β’ Blog
Why Engrm?
- Cross-device sync β Fix a bug on your laptop, continue on your desktop. No other memory tool does this.
- Cross-agent compatible β Works with OpenClaw, Claude Code, Codex, Cursor, Windsurf, Cline, Zed
- Free tier β 2 devices, 5,000 observations, full sync. Β£0 forever.
- Offline-first β Local SQLite + sqlite-vec. <50ms search. Works on a plane.
- Delivery Review β Compare what was promised vs what shipped
- Sentinel β Real-time code audit before changes land
- Team memory β Share insights across your whole team (Team plan)
| Feature | Engrm Free | Supermemory Pro | mem0 |
|---|
| Cost | Β£0 | $20/mo | ~$2/mo + usage |
| Cross-device | β
2 devices | β Single device | β Single device |
| OpenClaw plugin | β
Native | β
(Pro required) | β
(usage costs) |
| Works with Claude/Codex | β
| β | β |
| Delivery Review | β
| β | β |
| Sentinel | β
(Vibe+) | β | β |
Read the full comparison β
Installation
For OpenClaw Users
openclaw plugins install engrm-openclaw-plugin
/engrm connect
/engrm status
What works:
- β
Session startup memory injection
- β
Automatic session capture
- β
Cross-device sync (unique to Engrm)
- β
/engrm slash commands
- β
Sentinel advisory mode (Vibe+ plans)
Blog: Engrm Now Supports OpenClaw β
For Claude Code / Codex
This auto-configures MCP servers and hooks in ~/.claude.json and ~/.codex/config.toml.
Alternative methods:
npx engrm init --token=cmt_your_token
npx engrm init --url=https://vector.internal.company.com
npx engrm init --manual
For npm users, Engrm runs on Node.js 18+ and does not require Bun to be installed.
How It Works
Background Operation
Engrm works automatically:
- Session start β injects relevant project memory into context
- While you work β captures observations from tool use where the agent exposes that hook surface
- Session end β generates a session digest, syncs to cloud, and turns recent work into a denser project brief
βββ Engrm Session Summary βββ
π Request: Fix the OAuth redirect validation
π Investigated: redirect_uri handling in auth.py
π‘ Learned: scheme + host + port must all match registered URIs
β
Completed: Stricter redirect_uri validation (auth.py)
π’ Risk: Low (0.12)
βββββββββββββββββββββββββββββ
Check Status
Engrm Status
User: david
Email: david@example.com
Device: macbook-a1b2c3d4
Plan: Pro (Β£9.99/mo)
Candengo: https://www.candengo.com
MCP server: registered
Codex MCP: registered
Hooks: registered (6 hooks)
Codex hooks: registered (2 hooks)
Observations: 1,247 active
By type: change: 412, discovery: 289, bugfix: 187, ...
Sentinel: enabled (advisory, 142/200 today)
Sync: push 2m ago, pull 5m ago
Security: 3 findings (1 high, 2 medium)
Architecture
Claude Code session:
β
ββ SessionStart hook βββ inject relevant memory into context
β
ββ PreToolUse hook βββββ Sentinel audits Edit/Write (optional)
β
ββ PostToolUse hook ββββ extract observations from tool results
β
ββ PreCompact hook βββββ re-inject memory before context compression
β
ββ ElicitationResult βββ capture MCP form submissions
β
ββ Stop hook βββββββββββ session digest + sync + summary
β
βΌ
Local SQLite (FTS5 + sqlite-vec)
β
βΌ (sync every 30s)
Candengo Vector (cloud)
β
βΌ
Available on all your devices + team members
Codex session:
β
ββ SessionStart hook βββ inject relevant memory into context
β
ββ MCP tools βββββββββββ search, save, inspect, message, stats
β
ββ Stop hook βββββββββββ session digest + sync + summary
Agent Capability Matrix
| Capability | Claude Code | Codex | OpenClaw |
|---|
| MCP server tools | β | β | Via skills / MCP |
| Session-start context injection | β | β | Via skill-guided workflow |
| Stop/session summary hook | β | β | Via skill-guided workflow |
| Per-tool automatic capture | β | Partial via MCP/manual flows only | Manual / skill-guided |
| Pre-write Sentinel hook | β | Not yet exposed by Codex public hooks | Not exposed |
| Pre-compact reinjection | β | Not exposed | Not exposed |
| ElicitationResult capture | β | Not exposed | Not exposed |
See AGENT_SUPPORT.md for detailed comparison.
Features
The MCP server exposes tools that supported agents can call directly:
| Tool | Purpose |
|---|
search | Find relevant observations from memory (hybrid FTS5 + vector) |
timeline | Chronological context around an observation |
get_observations | Fetch full details by ID |
save_observation | Manually save something worth remembering |
install_pack | Load a curated knowledge pack for your stack |
send_message | Leave a cross-device or team note |
recent_activity | Inspect what Engrm captured most recently |
memory_stats | View high-level capture and sync health |
Observation Types
| Type | What it captures |
|---|
discovery | Learning about existing systems or codebases |
bugfix | Something was broken, now fixed |
decision | Architectural or design choice with rationale |
change | Meaningful modification (feature, config, docs) |
feature | New capability or functionality |
refactor | Code restructured without behavior change |
pattern | Recurring issue or technique |
digest | Session summary (auto-generated) |
Hybrid Search
Local FTS5 + sqlite-vec (all-MiniLM-L6-v2, 384 dims) combined with Candengo Vector's BGE-M3 semantic search. Results merged via Reciprocal Rank Fusion.
Sentinel
LLM-powered review of every Edit/Write before it executes. Catches security issues, anti-patterns, and drift from team decisions.
β οΈ Sentinel: SQL query uses string concatenation instead of parameterized query
Rule: sql-injection
(Advisory mode β change allowed)
Built-in rule packs: security, auth, api, react, database.
npx engrm sentinel init-rules
npx engrm sentinel rules
Knowledge Packs
Pre-loaded knowledge for your tech stack. Detected automatically on session start.
Available: typescript-patterns, nextjs-patterns, node-security, python-django, react-gotchas, api-best-practices, web-security
npx engrm install-pack typescript-patterns
Secret Scrubbing
Multi-layer regex scanning for API keys, passwords, tokens, and credentials. Sensitive content is redacted before storage and sync. Custom patterns configurable in ~/.engrm/settings.json.
Retention & Aging
Observations age gracefully: active (30 days, full weight) β aging (0.7x search weight) β archived (compacted into digests) β purged (after 12 months). Pinned observations never age.
Pricing
Free tier stays free forever. No bait-and-switch.
Start with 2 devices and 5,000 observations. Upgrade when you need more.
| Free | Vibe | Pro | Team |
|---|
| Price | Β£0 | Β£5.99/mo | Β£9.99/mo | Β£12.99/seat/mo |
| Observations | 5,000 | 25,000 | 100,000 | Unlimited |
| Devices | 2 | 3 | 5 | Unlimited |
| Cloud sync | β | β | β | β |
| Sentinel | β | Advisory (50/day) | Advisory (200/day) | Blocking (unlimited) |
| Retention | 30 days | 90 days | 1 year | Unlimited |
| Team namespace | β | β | β | β |
Sign up at engrm.dev.
Self-Hosted
Point Engrm at your own Candengo Vector instance:
npx engrm init --url=https://vector.internal.company.com --token=cmt_...
Candengo Vector provides the backend: BGE-M3 hybrid search, multi-tenant namespaces, and team sync. See the Candengo docs for deployment.
Configuration
~/.engrm/settings.json
Created by engrm init. Contains API credentials, sync settings, search preferences, secret scrubbing patterns, and Sentinel configuration.
.engrm-project.json
Place in your project root to override project identity for non-git projects:
{
"project_id": "internal/design-system",
"name": "Design System"
}
Agent Auto-Registration
Engrm auto-registers in:
~/.claude.json β MCP server (engrm)
~/.claude/settings.json β 6 lifecycle hooks
~/.codex/config.toml β MCP server (engrm) + codex_hooks feature flag
~/.codex/hooks.json β SessionStart and Stop hooks
Technical Stack
- Runtime: TypeScript, runs on Bun (dev) or Node.js 18+ (npm)
- Local storage: SQLite via
better-sqlite3, FTS5 full-text search, sqlite-vec for embeddings
- Embeddings: all-MiniLM-L6-v2 via
@xenova/transformers (384 dims, ~23MB)
- Remote backend: Candengo Vector (BGE-M3, Qdrant, hybrid dense+sparse search)
- MCP:
@modelcontextprotocol/sdk (stdio transport)
- AI extraction:
@anthropic-ai/claude-agent-sdk (optional, for richer observations)
License
FSL-1.1-ALv2 (Functional Source License) β part of the Fair Source movement.
- β
Free to use, modify, and self-host
- β You cannot offer this as a competing hosted service
- β
Each version converts to Apache 2.0 after 2 years
- β οΈ Sentinel is a separate proprietary product
See LICENSE for full terms.
Documentation
Maintainers: run node scripts/check-public-docs.mjs to verify the repo only contains the approved public docs set at the root.
Resources
Found this useful? β Star this repo to help other developers discover Engrm.
Built by the Engrm team, powered by Candengo Vector.