io.github.dr12hes/engrm
Shared memory across devices, sessions, and agents for OpenClaw, Claude Code, and Codex.
Ask AI about io.github.dr12hes/engrm
Powered by Claude Β· Grounded in docs
I know everything about io.github.dr12hes/engrm. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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)
vs Other Memory Tools
| 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+) | β | β |
Installation
For OpenClaw Users
# 1. Install the plugin
openclaw plugins install engrm-openclaw-plugin
# 2. Restart OpenClaw
# Quit and reopen, or restart gateway
# 3. Connect Engrm in chat
/engrm connect
# 4. Verify
/engrm status
What works:
- β Session startup memory injection
- β Automatic session capture
- β Cross-device sync (unique to Engrm)
- β
/engrmslash commands - β Sentinel advisory mode (Vibe+ plans)
Blog: Engrm Now Supports OpenClaw β
For Claude Code / Codex
npx engrm init
This auto-configures MCP servers and hooks in ~/.claude.json and ~/.codex/config.toml.
Alternative methods:
# From a provisioning token (shown on engrm.dev after signup)
npx engrm init --token=cmt_your_token
# Self-hosted Candengo Vector
npx engrm init --url=https://vector.internal.company.com
# Manual setup (air-gapped environments)
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
npx engrm 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
MCP Tools
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 # Install all rule packs
npx engrm sentinel rules # List available packs
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_hooksfeature 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-vecfor 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
- Architecture: ARCHITECTURE.md
- Contributing: CONTRIBUTING.md
- Security: SECURITY.md
- Roadmap: ROADMAP.md
Maintainers: run node scripts/check-public-docs.mjs to verify the repo only contains the approved public docs set at the root.
Resources
Community
Found this useful? β Star this repo to help other developers discover Engrm.
Built by the Engrm team, powered by Candengo Vector.
