Engram

productivity MCP Server

Persistent memory system for AI coding agents. Agent-agnostic Go binary with SQLite + FTS5, MCP server, HTTP API, CLI, and TUI.

Fresh
productivityproductivity
13 views6,896 stars709 forksMIT

Why This Matters

Discovered via unknown and last synced Today.

Fresh
Source
unknown
Stars
6,896
Last synced
Today
Install
Check source

Install

Install instructions not detected yet

Check the source repository for the latest setup steps.

View source instructions
326
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (326)

Attribute

Plain-Text CLAUDE.md

Format

Natural language prose

Flag

Default

Settings

`/engram:config`

Metric

Score

None

`check_redundancy` strips re-stated values

Skill

Invocation

Auto-derived

—

mcp_engram_search_by_relation

Traverse the graph by seed concept, edge direction, and optional label

mcp_engram_import

Ingest a JSON array of `{concept, text}` objects into the manifold

Primitive

What it does

mcp_engram_set_namespace

Switch to a project-specific memory namespace (stalk). Creates it if it doesn't exist

mcp_engram_remember_solution

Store a crystallized error→solution pair as a permanent `ZEDOS_PRAXIS` block. Auto-pinned at CRS=1.0

mcp_engram_export

Serialize the entire manifold (or a CRS-filtered subset) to a portable JSON array

mcp_engram_context_for_file

Surface top-5 relevant memories for a file path (proactive loading before editing)

rocm-kernels

✅

list_concepts

List all stored concept names

mcp_engram_batch_remember

Store multiple `{concept, text}` pairs in a single call — faster than N sequential `remember` calls

mcp_engram_visualize

BFS from a seed concept → renders a Mermaid diagram of the subgraph

Backend

Feature Flag

mcp_engram_forget_old

On-demand autophagy: sweep out blocks below a CRS threshold

mcp_engram_relate

Bind two concepts via `OP_BIND` to create a directed knowledge graph edge

depends_on

blake3_hashing["blake3_hashing"] blake3_hashing["blake3_hashing"] -->

mcp_engram_list_namespaces

List all available namespaces and the currently active one

mcp_engram_session_end

**Mandatory at session end.** Commits session summary + computes ADR thermodynamics

Default

✅

mcp_engram_watch_workspace

Bind a directory to the daemon's inotify watcher — auto-re-ingests saves via AST pipeline

cuda-kernels

✅

mcp_engram_scar

Create a geometric repeller (Apeiron binding) to mark a rejected approach as hostile — prevents re-hallucination

metal

✅

Agent

One-liner

OpenCode

`engram setup opencode`

Yes

Not applicable

Optional

✅ Yes

human

Highest — user explicitly wrote this

resolve

Mark as handled (status → resolved, stops proactive but stays searchable)

Origin

Trust

kleos-lib

Core library. Memory, search, embeddings, graph, intelligence, services, auth, jobs, 50+ modules. Previously published as `engram-lib` (last: 0.3.1).

kleos-server

Axum HTTP server. 46 route modules, middleware (auth, rate limiting, safe mode, JSON depth, metrics), GUI.

Component

Role

Crate

Role

kleos-cli

Command-line client over the HTTP API. Memory ops and credential management via credd.

kleos-sidecar

Session-scoped memory proxy with file watcher, batched observation flushing, and persistent session store.

kleos-mcp

MCP (Model Context Protocol) server. 57+ tools across memory, context, graph, intelligence, services, structural, skills, and admin. Stdio transport; HTTP behind feature flag.

kleos-cred

Credential management library. Crypto primitives, YubiKey challenge-response, key derivation. Previously published as `engram-cred` (last: 0.3.1).

kleos-credd

Credential management daemon. HTTP server with master key + agent key two-tier auth, ChaCha20-Poly1305 encryption.

kleos-approval-tui

Terminal UI for human approval workflow. Ratatui-based interactive review queue. (WIP)

kleos-migrate

ETL tool for migrating from libsql to rusqlite + LanceDB. One-shot utility.

agent-forge

Structured reasoning CLI: spec-task, consider-approaches, log-hypothesis, log-outcome, recall-errors, verify, challenge-code, checkpoint, rollback, session-learn, session-recall, session-diff, think, declare-unknowns, repo-map, search-code. Tree-sitter AST parsing.

forget

Delete a specific memory by concept name

suppress

Temporarily silence a proactive memory

compile

Compile all memories for a project into structured Markdown (zero LLM)

consolidate

List archive candidates

health

Check for missing evidence, orphans, stale claims

stream_for_compost

Stream entries to [Compost](https://github.com/Bryanh9111) for cross-project synthesis (excludes `origin=compost` by default)

Trigger

Features

Heavy

❌ Cloud

insight

Cross-project synthesis. `origin=compost` MUST use this kind (schema CHECK enforces single direction); `origin=human/agent` MAY also write `insight` (kind not exclusive to compost)

proactive

Get guardrails for a file path

stats

用量统计(按来源/项目/天/周分组)

System

Storage

Local-first

Proactive

Required

❌ Cloud

Kind

Lifetime

constraint

Semi-permanent

decision

Until revisited

procedure

Version-controlled

fact

Short-lived

guardrail

Incident-driven

compost

Synthesized cross-project insight from [Compost](https://github.com/Bryanh9111) — carries `source_trace` provenance and `expires_at` TTL

micro_index

Compact index for cold-start (~200 tokens)

unpin

Remove a pinned memory's pin (single memory; prefer supersede via new memory)

pinned

verified 3d ago source: github.com/org/repo/pull/42 ``` ~50 tokens per card. Three cards = 150 tokens. Compare that to loading an entire wiki article. The philosophy: **memories enter context as claims, not documents; with provenance, not vibes.** ## Health Checks ```bash engram lint ``` Three checks borrowed from [Karpathy's knowledge base linting](https://x.com/karpathy/status/1911070032680222720): - **Missing evidence**: Constraints and guardrails without source links - **Orphans**: Memories never accessed, older than 30 days, not pinned - **Stale claims**: (`check_stale=True`) Older memories superseded by newer similar ones ## Export & Portability ```bash # Lossless export engram export --format jsonl --output memories.jsonl # Human-readable export with YAML frontmatter engram export --format markdown --output ./export/ ``` SQLite is the runtime source of truth. JSONL is the migration format. Markdown is for human inspection. All three are interchangeable — you can rebuild any from the others. ## Design Principles 1. **Proactive recall > passive search** — The system pushes relevant memories before you ask 2. **Claims, not documents** — Each memory is one atomic, actionable statement 3. **Write quality > write quantity** — Better to store 5 precise constraints than 50 vague notes 4. **Never auto-delete** — Only mark candidates for archival, never silently remove 5. **Origin separation** — Human judgment and AI compilation never mix in retrieval 6. **Token-efficient** — Retrieval cost is constant, not proportional to memory count 7. **SQLite is the runtime truth** — Markdown is a derived export, not the source 8. **Memories have metabolism** — Effective score decays with time, grows with access, pinned memories never fade 9. **Human-observable** — Dashboard and compile give full visibility into the memory brain ## Frequently Asked Questions ### What is an MCP memory server? An **MCP (Model Context Protocol) memory server** is a standardized way for AI agents like Claude Code to access persistent memory across sessions. MCP is Anthropic's open protocol for connecting LLMs to external tools and data sources. Engram implements an MCP server that exposes 14 memory operations (`remember`, `recall`, `proactive`, `forget`, `resolve`, `compile`, etc.) that any MCP-compatible AI agent can call. ### How is Engram different from MEMORY.md? MEMORY.md is a flat text file loaded into every prompt. It wastes 3,000-5,000 tokens per session and grows linearly with your notes. Engram is a queryable database that returns only the memories relevant to your current task — typically 40-800 tokens. At 10,000 memories, MEMORY.md would be unusable; Engram costs the same tokens per retrieval as at 300 memories. ### Does Engram need an OpenAI or Anthropic API key? **No.** Engram is zero-LLM by design. All core operations (remember, recall, proactive, health) run on pure SQLite + FTS5. You only pay tokens when the agent *uses* the retrieved memories in its own reasoning, which is the same cost as any other tool call. ### Does Engram work with Claude Code? Yes, Engram is built primarily for Claude Code via MCP. Installation takes about 3 minutes: install `uv`, clone the repo, run `uv sync`, then `claude mcp add -s user engram uv -- --directory /path/to/Engram run engram-server`. See the Setup section above for detailed steps. ### Does Engram work with other AI agents (ChatGPT, Cursor, local LLMs)? Any agent that speaks MCP can use Engram. The MCP protocol is supported by Claude Code natively. For other tools like Cursor, ChatGPT, or local LLMs, you'd need an MCP client adapter — or use Engram's CLI (`engram search`, `engram add`) from your agent's shell execution. ### What is proactive recall? Proactive recall is Engram's signature feature. When you open a file (e.g., `payments/reconcile.ts`), Engram automatically checks which of your stored memories have a matching `path_scope` glob pattern and surfaces relevant constraints or guardrails before you ask. This is the opposite of traditional memory systems that wait for explicit queries. Example: opening a migration file might auto-surface "Never parallelize migrations 0042 and 0043 — caused prod failure last month." ### Why no embeddings? At current scale (under 2,000 memories), FTS5 full-text search is faster, cheaper, and more explainable than vector embeddings. Benchmarks from [CatchMe](https://github.com/catchmeai) and Karpathy's LLM Wiki show FTS5 is sufficient at this scale. Engram's roadmap adds sqlite-vec + embeddings at v6 (triggered at 2,000 memories), but we don't force that complexity on smaller deployments. This is a **principled defer**, not an oversight — see the roadmap below. ### How do I back up Engram's memory? The entire database is a single SQLite file at `~/.engram/engram.db`. Copy that file (plus `.db-wal` and `.db-shm` if present). Restore by copying back. You can also export to JSONL (lossless) or Markdown (human-readable) with `engram export`. ### Is Engram production-ready? Engram v3.4 has 214 tests passing and has been running in production across 10 real projects for weeks. The core design has been validated through 5 rounds of structured multi-model debate and stress-tested against 16 reference projects (Karpathy's LLM Wiki, Anthropic Auto-Dream, Mem0, MemGPT, Zep, Letta, Ombre Brain, CatchMe, SocratiCode, Supermemory, and more). v3.4 adds a bidirectional channel to [Compost](https://github.com/Bryanh9111) for cross-project synthesis. That said, it's a personal tool by a solo developer — use at your own risk in commercial settings. ### Can I use Engram for personal knowledge management (not coding)? Engram's storage and retrieval layer is domain-agnostic, but the `proactive()` trigger is path-based, which only makes sense for code files. For personal knowledge, you'd want to fork Engram and replace the trigger mechanism with topic/time/context-based triggers. See the "When NOT to use Engram" section above. ## Tech Stack - Python 3.11+ / [uv](https://github.com/astral-sh/uv) - SQLite + FTS5 (WAL mode) — zero external dependencies - [MCP](https://modelcontextprotocol.io/) protocol via FastMCP - 242 tests, ~2,500 lines of code ## Roadmap

invalidate_compost_fact

Mark insights as obsolete when their upstream Compost fact changes (Compost → Engram channel)

Operation

p50

gpt-4o

$0.0542

Capability

Pinecone / Chroma / Qdrant

MRR

0.586

Implementation

Latency

MCP-native

✅

Model

$/1k episodes

gpt-4o-mini

$0.0033

get_session

读取单个会话完整对话,支持分页

handoff

生成项目交接简报

Mode

Backing technology

semantic

Embeddings + sqlite-vec

Source

Session location

hybrid

Reciprocal Rank Fusion

project_timeline

查看项目跨工具的操作时间线

keyword

SQLite FTS5 trigram index

Supported

## Install ### Option 1: macOS app Download the latest universal macOS package from [Releases](https://github.com/bbingz/engram/releases). The app bundles the Engram service, indexer, MCP bridge, and menu bar UI. ### Option 2: run from source Requirements: - Node.js 20 or newer - macOS 14+ and Xcode 16+ for the Swift app - `xcodegen` if you build the macOS project locally ```bash git clone https://github.com/bbingz/engram.git cd engram npm install npm run build ``` ### Raspberry Pi / Linux headless Engram's TypeScript server can run without the macOS app. This is useful for Raspberry Pi, home servers, or any Linux box where you want MCP + Web UI access to local session logs. ```bash git clone https://github.com/bbingz/engram.git cd engram npm install npm run build node dist/daemon.js ``` Then open `http://127.0.0.1:3457` on that machine. For LAN access, set an explicit host, CIDR allowlist, and bearer token in `~/.engram/settings.json`: ```json { "httpHost": "0.0.0.0", "httpPort": 3457, "httpAllowCIDR": ["192.168.0.0/16"], "httpBearerToken": "replace-with-a-long-random-token" } ``` The macOS menu bar app and macOS-only integrations are not available on Raspberry Pi, but the MCP server, daemon, Web UI, indexing, search, memory, and project tools are available from source builds on Node.js 20+. ## Register as an MCP server After building from source, point your MCP client at `dist/index.js`. ### Claude Code ```bash claude mcp add --scope user engram node /absolute/path/to/engram/dist/index.js ``` ### Codex Add this to `~/.codex/config.toml`: ```toml [mcp_servers.engram] command = "node" args = ["/absolute/path/to/engram/dist/index.js"] ``` ### Any MCP stdio client ```json { "command": "node", "args": ["/absolute/path/to/engram/dist/index.js"] } ``` ## First useful calls Ask your current assistant to call: ```json { "cwd": "/absolute/path/to/your/project", "task": "what I am about to work on" } ``` That invokes `get_context`, the core Engram tool. It retrieves recent project sessions, saved insights, active environment signals, and relevant search results within a token budget. Other high-value tools:

recall

Semantic similarity search — returns top-k. Optional `time_decay` for time-targeted search and `zedos_filter` for type filtering

get_profile

Read the user profile

add_decision

Record a key decision with reasoning

DELETE

`/api-keys/{id}`

Protocol

Endpoint

WebSocket

`/socket/websocket`

GET

`/health/deep`

Method

Endpoint

POST

`/api-keys`

Codex

`engram setup codex`

Pi

`engram setup pi`

Category

Tools

Doc

Description

mcp_engram_summarize

Project-state digest: pinned memories + top-N by CRS. Single-call wake-up replacement

mcp_engram_session_start

**Mandatory at session start.** Validates manifold integrity and initializes epistemic state

mcp_engram_verify_behavior

Report empirical success/failure against a ZEDOS_HYPOTHESIS block. Repeated success promotes to PRAXIS

bvh

✅

mcp_engram_recall_recent

Return N most recently accessed memories, sorted by access time

mcp_engram_genesis

Inspect or re-seed the foundational alignment genesis blocks (CRS=1.0, pinned, never decay)

mcp_self_trace

Route a query through the Monad Oracle (Operator_LBR anchor) for deep logophysical self-reflection

mcp_engram_read_concept

Fetch the full un-truncated text of a specific memory by exact concept name

mcp_engram_update

Re-encode an existing memory in place with Lyapunov drift tracking — **use this, never forget+remember**

mcp_orchestrate_workflow_chain

Chain multiple MCP tool calls into a single autonomous workflow execution

mcp_engram_pin

Lock a memory at CRS=1.0 — protects foundational axioms permanently

Command

Description

remember

Encode text and store as a persistent memory block

mcp_engram_query_with_momentum

Momentum-assisted recall: blends semantic similarity (80%) with concept trajectory (20%)

WebGPU

`wgpu-backend`

mcp_engram_stats

Manifold health report: total count, pinned, avg/min/max CRS, disk usage

mcp_engram_recall_in_file

Spatial code search: find all AST concepts defined within a specific line range

get_preferences

Read communication and workflow preferences

get_trust_boundaries

Read data access boundaries

get_quality_standards

Read quality expectations

get_lessons

List reusable lessons learned

get_decisions

List key decisions; `thread_seed_id` / `history_question` reconstruct decision threads and revision history

export_engram

Owner-gated export: write a full backup (`format="openclaw"` for OpenClaw-compatible files)

export_engram_to_openclaw

Export OpenClaw-compatible files

import_engram_from_openclaw

Import OpenClaw-compatible files

OpenClaw

SOUL.md / MEMORY.md / USER.md import and export

Usable

## Comparison

Engram

Claude Memory

Limited

Copy files

Model-agnostic

Yes

Free

Free / Cloud tiers

Contributor

Role

MCP

S E[Browser extension] -->

route_map

Map backend routes to handlers and consumers.

list_repos

List indexed repositories Engram knows about.

select_repo

Set the active repository for follow-up calls.

index_status

Show whether an index is ready and what run it came from.

index_health

Show index health, parser counts, graph integrity, and native build context.

reindex_project

Start a full or incremental reindex. Defaults to background mode.

reindex_status

Poll a background reindex job.

get_recent_runs

List recent indexing runs.

get_run_metrics

Inspect metrics for a specific index run.

semantic_code_search

Search for code by natural-language task or concept.

investigate_codebase

Higher-level investigation with ranked files and next-tool suggestions.

feature_context

Find likely implementation areas for a feature.

app_context

Gather app-level context for a route, feature, file, or broad target.

get_file_summary

Summarize an indexed file.

get_source_context

Return source snippets for a target.

resolve_target

Disambiguate a symbol/file/target before deeper work.

find_symbols

Find symbols by name, kind, file, or UID.

get_symbol_context

Show symbol metadata, graph context, and related symbols.

get_callers_and_callees

Show direct callers and callees.

get_dependencies

Show inbound/outbound dependencies and native header blast radius.

get_graph_neighborhood

Traverse nearby graph edges.

graph_query

Run a bounded graph query.

impact_analysis

Analyze upstream or downstream impact for a target.

unified_context

Combine symbol resolution, source, graph, and nearby context.

preview_rename

Preview graph-aware symbol rename impact before editing.

detect_changes

Analyze staged, unstaged, or compared git changes.

change_impact_report

Produce a higher-level change report with risks, slices, tests, routes, fields, and processes.

suggest_tests_for_change

Recommend tests from the current diff.

test_impact

Estimate test impact from the current diff.

find_tests_for_target

Find tests relevant to a symbol, file, route, or feature.

api_impact

Show route handler, consumers, field reads, shape status, and risk.

shape_check

Compare backend response shape with frontend reads.

field_impact

Find who reads a response field such as `metrics.intransit_stock`.

trace_processes

Trace execution flows through graph/process data.

list_processes

List indexed process flows.

symbol_process_participation

Show which processes include a symbol.

spreading

hybrid] [--as-of DATE] [--agent-id ID] [--cross-agent] engram timeline <path> <entity> engram observe <path> <content> [--actors NAME...] [--tags TAG...] [--salience F] [--valence F] [--agent-id ID] engram reflect <path> [--llm anthropic

Problem

Engram Solution

Ecosystem

How Engram helps

CrewAI

Python SDK adapters for short-term, long-term, and entity memory.

LangChain

Python SDK chat history and vector-store-style adapters over hybrid search.

LlamaIndex

Python SDK document store, vector store, and chat store adapters.

Variable

Description

ENGRAM_DB_PATH

SQLite database path

ENGRAM_TOOL_TIER

MCP tool surface (`essential`, `standard`, `all`)

ENGRAM_STORAGE_URI

S3/R2 URI for cloud sync

ENGRAM_CLOUD_ENCRYPT

AES-256-GCM encryption

ENGRAM_EMBEDDING_MODEL

Embedding model (`tfidf`, `local`, `openai`)

ENGRAM_ONNX_MODEL_DIR

Local embedding model directory (`model.onnx` + `tokenizer.json`)

ENGRAM_CLEANUP_INTERVAL

Expired memory cleanup interval (seconds)

ENGRAM_WS_PORT

WebSocket server port (0 = disabled)

ENGRAM_HTTP_API_KEY

Bearer token for the HTTP transport

OPENAI_API_KEY

OpenAI API key (for `openai` embeddings)

MEILISEARCH_URL

Meilisearch URL (requires `--features meilisearch`)

MEILISEARCH_API_KEY

Meilisearch API key

MEILISEARCH_INDEXER

Enable background sync to Meilisearch

MEILISEARCH_SYNC_INTERVAL

Sync interval in seconds

Windsurf

`engram setup windsurf`

Kiro

`engram setup kiro`

Topic

Link

Quickstart

<https://engram.page/docs/self-host/quickstart/>

Upgrades

<https://engram.page/docs/self-host/upgrade/>

Troubleshooting

<https://engram.page/docs/self-host/troubleshooting/>

Architecture

<https://engram.page/docs/self-host/architecture/>

Qoder

`~/.qoder/projects/`

get_context

🔑 **核心工具** — 自动提取当前项目的历史上下文,开始新任务时调用

list_sessions

列出历史会话,支持按来源/项目/时间过滤

aiProtocol

string

aiApiKey

string

aiModel

string

titleProvider

string

titleApiKey

string

titleModel

string

ollamaUrl

string

ollamaModel

string

embeddingDimension

number

Hermes

MCP over stdio

Zed

MCP over stdio

list_agent_sessions

Browse saved session records across tools

refresh_quick_context

Refresh local `quick_context.md` snapshot for offline/cross-tool use

get_identity_facets

Read identity facets via `facet`: profile, preferences, trust_boundaries, work_style, quality_standards, domains, or all

user_portrait

`action`: get / save / compare the AI-maintained user portrait

preview_context_governance

Advanced owner-gated preview: build safe-context, freshness/conflict, replay, or evidence proposals without applying changes

get_playbooks

Playbook reads via `mode`: list, get (full content), recent, management (incl. archived/deleted metadata)

manage_playbook

Playbook lifecycle via `action`: update, archive, delete, restore (mutations stay confirm-gated)

playbook_execution

Guided execution via `action`: prepare a step plan, update_step, status rollup (passive reference; no auto-execution)

get_knowledge_inheritance

Build cross-project knowledge starter pack

list_projects

List saved project snapshots

extract_session_insights

Extract lessons and decisions from session text

ingest_notes

Parse free-form notes into structured knowledge

update_knowledge

Update a lesson or decision by ID

archive_knowledge

Archive a lesson or decision by ID

confirm_knowledge

Owner-only confirmation stamp via human, test, or anchor provenance

onboard_repo

Owner-only repo scan: create staging repo-fact candidates from anchors

onboard_accept

Owner-only accept: validate a candidate anchor and promote it to verified

Want

Tool

check_anchors

Owner-only revalidation for existing anchor-backed facts

import_engram

Owner/admin import: use `dry_run=True` first for a metadata-only merge/conflict preview (`format="openclaw"` supported)

merge_knowledge

Merge a duplicate into the primary item

read_web_content

Fetch a user-provided URL: prefers a local sidecar if running, otherwise uses the self-contained built-in reader (`pip install "piia-engram[reader]"`)

Tier

Tools

manage_relation

`action`: link / unlink — manage typed relations between knowledge items (decision threads)

get_audit_log

Get recent audit log entries

Feature

piia-engram

17

Identity, knowledge read/write, project context, session recovery, diagnostics

explore_knowledge

Knowledge graph exploration via `mode`: related, similar, merge_candidates

start_project

Start a project with inherited knowledge

Mem0

Letta (MemGPT)

40

Knowledge review, merge, decision threads, permission management, tools registry, import/export, audit

get_knowledge_overview

Knowledge digest, health report, stale checks

get_permission_profile

View all callers' trust levels and access boundaries

Storage

Local JSON in `~/.engram/`

Area

Current State

get_stale_knowledge

List items that need review

manage_caller_trust

Owner/admin `action`: grant / revoke a caller's trust level

Local

Vector DB + Mem0 Cloud

review_staging

Staging review hub via `action`: list pending, batch decisions, review_item, apply_text review results

export_feedback_report

Maintainer feedback: generate an anonymous aggregate feedback report

export_knowledge_report

Active lessons/decisions grouped by domain/month (Markdown).

apply

rollback

Price

Free, AGPL-3.0

request_outline_review

Owner-gated export: generate an interactive local HTML review page

Level

Signal

Cursor

`engram setup cursor`

prune

Manage project names

ENGRAM_DATA_DIR

Override data directory

ENGRAM_PORT

Override HTTP server port

ENGRAM_URL

Point the **Pi plugin** at an existing `engram serve` instance instead of auto-starting one. Not an MCP endpoint — used by the HTTP event-capture path only. (The OpenCode plugin honors `ENGRAM_PORT`/`ENGRAM_BIN`, not `ENGRAM_URL`.)

ENGRAM_HTTP_TOKEN

Optional Bearer auth for local HTTP server. When set, destructive and export routes require `Authorization: Bearer <token>`. Unset = open (zero-config default).

ENGRAM_TIMEZONE

Timezone for timestamp display in TUI and cloud dashboard (e.g. `America/New_York`). Falls back to system local when unset or invalid.

ENGRAM_CLOUD_AUTOSYNC

Set to `1` to enable background autosync (also requires `ENGRAM_CLOUD_TOKEN` + `ENGRAM_CLOUD_SERVER`).

ENGRAM_CLOUD_ALLOWED_PROJECTS

Comma-separated project allowlist for `engram cloud serve`. Use `*` to allow all projects.

ENGRAM_CLOUD_TOKEN_PEPPER

Dedicated secret used to hash managed tokens. Required to issue tokens via `engram cloud bootstrap admin --issue-token` AND to enable managed-token authentication on `engram cloud serve`; must differ from `ENGRAM_JWT_SECRET`. Without it, `engram cloud serve` still starts and authenticates via legacy `ENGRAM_CLOUD_TOKEN`/`ENGRAM_CLOUD_ADMIN` only.

search

FTS 关键词搜索;当 session vectors 可用时 tools/list 可广告 `semantic`/`hybrid`,不可用时 hard-error(不静默降级)。Service IPC 路径可 soft-fallback 到 keyword 并带 reason

save_insight

保存重要知识片段,跨会话持久化

delete_insight

删除已保存的 insight

get_memory

检索已保存的记忆和知识,可按 `episodic` / `semantic` / `procedural` 类型过滤

get_costs

Token 用量和费用统计

tool_analytics

分析各工具(Read/Edit/Bash 等)调用频率

file_activity

项目中最常编辑/读取的文件

export

导出会话为 Markdown/JSON

generate_summary

AI 生成会话摘要

link_sessions

在项目目录创建会话文件软链接

manage_project_alias

管理项目别名(目录移动后保持关联)

live_sessions

MCP mode 下返回明确 unavailable 结果;App/service IPC 路径有本地活跃会话扫描

get_insights

获取费用优化建议

hide_session

隐藏或恢复指定会话

project_move

移动项目目录并保持 AI 会话历史可达

project_archive

将项目归档到 `_archive/` 分类目录

project_undo

回滚已提交的 project move

project_move_batch

批量执行 project move/archive

project_list_migrations

查看 project move 迁移记录

project_recover

诊断失败或卡住的迁移

project_review

扫描迁移后的旧路径残留引用

embeddingApiKey

string

embeddingBaseURL

string

embeddingModel

string

Cline

MCP over stdio

Augment

MCP over stdio

Trae

MCP over stdio

Encryption

Optional field-level AES-256-GCM for supported profile fields; local files are plaintext JSON/Markdown by default

Claim

Public evidence

Tool

Purpose

wrap_up_session

**Session end** — Save insights + sync at session end

get_user_context

**Startup** — Load identity + knowledge at session start (supports `token_budget` for context size control)

get_recall

Return one structured identity + recent activity + relevant knowledge recall payload

memory_store

**Writeback** — Unified write endpoint: routes to add_lesson / add_decision / add_playbook by `kind`

add_lesson

Store a reusable lesson learned

get_project_context

Read a saved project snapshot

save_project_snapshot

Persist project state for future sessions

list_tools

Optional local integration: list registered local tools (optionally filter by category)

save_agent_context

Save AI session checkpoint (also runs automatically)

add_playbook

Record an operational playbook (multi-step procedure with trigger keywords)

get_daily_log

Read a human-friendly project timeline for a day

18

Identity, knowledge read/write, project context, session recovery, diagnostics

search_knowledge

**Retrieval** — Search lessons, decisions, and playbooks (supports `filters_json` for domain/tier/date filtering)

get_resume_brief

Build a cross-session/cross-tool resume brief

get_relevant_knowledge

Find knowledge relevant to current project

get_identity_card

Curated Markdown: who you are, how you work, recent verified lessons/decisions. Excludes raw config-file knowledge and caps recent items.

doctor

Run memory system self-diagnosis

register_tool

Optional local integration governed write: register a local tool, runtime, or CLI to the environment map

update_identity

Update profile, preferences, or quality standards

find_tool

Optional local integration: look up a registered local tool by name

get_recent_context

Recover lost session context after restart

Intent

Start with

Need

Start here

get_knowledge_history

Read one item's revision history (superseded snapshots; exact by-version lookup)

mem_doctor

For parameters and the complete, current tool reference, see [the full documentation](DOCS.md). ## Quick start ### Install For production use and security support, install the latest stable release from [GitHub Releases](https://github.com/Gentleman-Programming/engram/releases). Release candidates are prerelease validation and feedback builds; choose one only when you accept prerelease risk. See the [Release Policy](docs/RELEASE-POLICY.md) before upgrading. Homebrew remains on the stable v1.20.0 line: ```bash brew install gentleman-programming/tap/engram ``` For Windows, Linux, source builds, and all installation methods, see [Installation](docs/INSTALLATION.md). ### Set up your agent Run the setup command for the agent you use, then restart that agent. `engram setup` writes the applicable MCP and integration configuration; it does not require you to start a server for the usual stdio-only setup.

CommandCode

`engram setup commandcode`