Engrm
本地矢量存储器的项目和repos -维基形状的人,mcp形状的代理,跨设备同步。
看到 SCOPE.md 和 HARNESS.md。
只是工作
这台笔记本电脑(所有代理共享内存)
bun run src/cli.ts setup
# or: npx engrm setup
这将初始化本地内存(如果需要)并注册Cursor、Claude Code、OpenCode和Codex。重新启动一次代理会话。在此之后,代理自动共享一个DB +保险库-没有每个聊天设置。
代理机器(零接触,舰队令牌)
对于运行没有人登录的代理的机器。管理员在集线器上制作令牌一次: 团队→代理舰队令牌→创建令牌. 它只显示一次;将其保存在您的秘密存储库(1Password, CI或MDM秘密存储库)中,而不是保存在repo中。
在每台机器上(Node 22或更高版本):
ENGRM_FLEET_TOKEN="$TOKEN_FROM_YOUR_SECRET_STORE" npx --yes engrm@latest setup
安装Engrm,注册Claude Code, Codex, Cursor和OpenCode,将机器登录到团队中心,并在没有提示的情况下提取公司主题。 --yes 停止NPX要求安装。令牌是从环境中读取的,因此它不会出现在进程列表中; --token=… 同样适用。一台已经安装好的机器可以连接 ENGRM_FLEET_TOKEN=… engrm login。
- 保持同步。 在macOS上,setup安装一个启动代理,它在后台同步。在Linux上运行
engrm mesh daemon在您的服务管理器下,例如一个系统用户单元ExecStart=engrm mesh daemon和Restart=always。 - 法典需要一个批准。 Codex只在Engrm的钩子被信任后才运行它们:run
codex一次并批准他们进入/hooks. 在那之前,法典公司拿到了MCP工具,但没有记录。克劳德代码什么都不需要。 - 重新启动代理 在安装之前是打开的,所以他们加载了Engrm。
- 中心显示了什么。 每台机器都单独出现在设备页面上,在令牌的名称下(“Fleet: Codex runners”),每个内存都记录了编写该令牌的机器和代理。
- 撤销。 撤销“团队”页面上的令牌会立即将所有与之连接的机器签出。制作一个新的令牌来恢复机器。
检查机器 engrm status:团队中心显示中心可达,座席显示每个座席已注册。
其他设备
选项A - LAN mesh(每台Mac本地SQLite,无云)
# Machine 1
engrm mesh init --cluster=optaro
# note the printed mesh_key
# Machine 2
engrm mesh join --key=<mesh_key> --cluster=optaro --peer=<machine1-ip>:7432
engrm mesh sync
通过UDP多播和可选静态发现对等体 --peer 列表。每台机器都有自己的SQLite;通过HTTP (shared+personal,从来没有 secret). 可选的不间断: engrm mesh install-service。
选项B -共享文件夹(没有Engrm帐户)
将两台机器指向相同的保险库目录(iCloud Drive, Syncthing等):
// ~/.engrm/settings.json
{ "vault": { "root": "~/Library/Mobile Documents/com~apple~CloudDocs/EngrmVault" } }
运行 engrm setup 在每台机器上。更新的保险库页面在MCP/会话启动时自动导入(无需手动) reindex 需要)。
它是如何工作的
| 层 | 工作 |
|---|---|
| 库 | 每个项目可读的wiki页面,加上一个滚动 HANDOFF.md 每回购 |
| 指数 | 本地SQLite + FTS +矢量 |
| 代理 | MCP: save_observation, search, brief和生命周期挂钩在Claude Code, Codex, Cursor和OpenCode |
| 同步 | 今天的局域网;接下来是团队中心(见 SCOPE.md) |
记住什么
会话期间的捕获是确定性的:命令失败、测试失败、 依赖项更改、显式保存以及键入的提示。没有模型手表 您的工具调用,没有“修改foo”。它的记录被存储。
在会话结束时,网关上的一个小型模型调用读取抄本并 写了一 会议记录你在做什么,有地位的决定,计划, 开放的问题,下一步,和独立的事实和教训。记录 折叠成回购 切换页面,这是接下来的第一件事 会话查看,在任何机器和任何代理上。第二个有界调用提取 复古的 发现(重复的错误、错过的已知修复、错过的检查) 反复出现的摩擦变得可见,而不是重现。
如果结束钩子从未触发(杀死终端,崩溃代理),则下一个会话 Start找到抄本,然后写入记录。
将Engrm指向一个模型服务器
engrm ai probe 10.20.0.10 # finds LiteLLM / Ollama / vLLM / LM Studio and lists models
engrm ai use 10.20.0.10:4000 # OpenAI-compatible /v1; add --key=… if it asks
engrm ai roles session_note=extract retro=agent
engrm ai status
如果没有网关,Engrm仍然会确定地捕获并跳过 会议记录。
MCP的工具
| 工具 | 目的 |
|---|---|
search | 混合FTS5 +矢量召回 |
save_observation | 坚持一个决定、教训、事实等。 |
get_observations | 通过ID获取完整的详细信息 |
timeline | 围绕观察的时间背景 |
brief | 回购范围的启动概要(优先) |
session_context | 的别名 brief |
recent_activity | Engrm最近捕获了什么 |
memory_stats | 捕获和索引运行状况 |
pin_observation | 保持观察以免老化 |
engrm setup / engrm register 还安装了一个个人克劳德代码
engrm-memory 技能。自然的连续性提示,比如“我们要做什么?
在回购检查前触发内存搜索;用户不需要这样做
说出英格姆的名字,或者告诉特工去哪里找。
CLI
engrm setup Local memory + register Claude Code, Codex, Cursor, OpenCode
engrm ai probe|use|roles|status|off
engrm session finalize --session=<id> [--cwd=<dir>] [--agent=<name>] [--force]
engrm status | doctor | register | reindex | dedupe
engrm mesh … LAN peer sync
engrm dogfood miss|hit|note|report Retrieval quality ledger
ENGRM_HOME 覆盖数据目录(~/.engrm); 测试线束使用它
所以他们永远也碰不到真正的商店。
冰冻(不只是记忆):哨兵,包。集 ENGRM_LEGACY=1 只有在需要的时候。
非目标
- 哨兵/实时代码审计
- 交付审查
- Knowledge-pack市场
- 作为发射支柱的团队计费
- 核心内存需要云计算(本地优先;网络仅同步)
发展
bun test
bun run test:acceptance
bun run test:fresh
bun run test:dogfood
bun run test:live # optional
bun run test:lan # optional
许可证
目前- 1.1 - alv2 ——看 许可证。
文档
维护人员: node scripts/check-public-docs.mjs