engrm

中文文档
0.6.6发布于 2026/11/03FSL-1.1-ALv2ES Module

本地矢量存储器的项目和repos - MCP为代理,Markdown vault为人类

中文使用文档
文档目录13 节
  1. 只是工作
  2. 这台笔记本电脑(所有代理共享内存)
  3. 代理机器(零接触,舰队令牌)
  4. 其他设备
  5. 它是如何工作的
  6. 记住什么
  7. 将Engrm指向一个模型服务器
  8. MCP的工具
  9. CLI
  10. 非目标
  11. 发展
  12. 许可证
  13. 文档

Engrm

License: FSL-1.1-ALv2 Node.js TypeScript MCP Compatible

本地矢量存储器的项目和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_activityEngrm最近捕获了什么
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

版本与发布记录

engrm 共发布 62 个版本,首次发布于 2026/03/12;过去 12 个月发布了 62 个版本。

版本发布日期距今
0.6.6latest2026/11/03今天
0.6.52026/11/021 天前
0.6.42026/10/286 天前
0.6.32026/10/287 天前
0.6.22026/10/277 天前
0.6.12026/10/277 天前

关于 engrm 的常见问题

engrm 是什么?

本地矢量存储器的项目和repos - MCP为代理,Markdown vault为人类

如何安装 engrm?

在项目目录运行 npm install engrm,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 engrm,可以用 npx engrm 直接运行。

engrm 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/engrm 是否存在。

engrm 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

engrm 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

engrm 可以商用吗?

engrm 使用 FSL-1.1-ALv2 许可。声明的许可为 FSL-1.1-ALv2,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

engrm 还在维护吗?

最新版本 0.6.6 发布于 2026/11/03(今天);至今共发布 62 个版本,其中过去 12 个月发布了 62 个;首次发布于 2026/03/12。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。