关于 Renor
Renor 是为编码 Agent 提供的本地记忆服务,可将 Claude Code、Codex、Cursor 保存的内容写入 Markdown 文件,并供后续会话检索。它使用指定文件夹保存笔记和 SQLite 搜索索引;默认不使用模型,也不向设备外发送数据。
主要功能
- 01将 Agent 记忆保存为 Markdown
- 02跨会话搜索已保存内容
- 03支持手动编辑的笔记
- 04使用 SQLite 构建搜索索引
- 05可选择本地或远程嵌入模型
适用场景
- 01在不同编码 Agent 间延续项目决策
- 02让新会话查找已保存事实
- 03将现有 Markdown 笔记纳入搜索
- 04在不配置模型时进行精确词语搜索
MCP 相关
Renor 通过 stdio MCP 服务向客户端提供记忆保存和搜索能力。笔记默认留在本地,配置模型密钥后,相关文本可能会发送给所选模型服务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.renor.cloud/mcpclaude mcp add --transport http patrickpassosb-renor https://mcp.renor.cloud/mcp{"mcpServers":{"patrickpassosb-renor":{"type":"http","url":"https://mcp.renor.cloud/mcp"}}}在 Cursor 中打开{"servers":{"patrickpassosb-renor":{"type":"http","url":"https://mcp.renor.cloud/mcp"}}}在 VS Code 中打开{"mcpServers":{"patrickpassosb-renor":{"type":"http","url":"https://mcp.renor.cloud/mcp"}}}{"mcpServers":{"patrickpassosb-renor":{"serverUrl":"https://mcp.renor.cloud/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Renor

自托管的 Renor,真实会话:Claude Code 保存一项决策,一个全新的 Codex 会话将其找回。等待过程已加速。
Renor 是编码 Agent 的记忆库:它会将你告诉 Claude Code、Codex 或 Cursor 的内容保存在你电脑上的 Markdown 文件夹中,并通过 MCP 将这些内容提供给它们中的任何一个。
每个新的 Agent 会话都从零开始:你得重新解释项目、上周的决策及其原因,还有你纠正过两次的事情。有了 Renor,一个 Agent 保存的信息,下一个 Agent 就能找到。记忆以普通文件的形式保存,由你掌控。它在本地运行,无需账户或 API 密钥;除非你配置了模型,否则不会将任何内容发送到电脑之外。无需安装的托管版本请访问 https://renor.cloud。
快速开始
你需要 Node 22 和 git。安装是唯一需要联网的步骤。
git clone https://github.com/patrickpassosb/renor-engine.git
cd renor-engine
node -v # must print v22.x
npm ci && npm rebuild better-sqlite3 --ignore-scripts=false && npm run build
node scripts/smoke-self-hosted.mjs
最后一条命令会启动 MCP 服务,保存一条事实(Ada favorite_color cerulean),用三种方式搜索它,然后停止。它会在临时文件夹中运行,之后删除该文件夹,因此绝不会触碰你的笔记。最后会显示:
PASS: self-hosted stdio MCP can remember and retrieve a current fact.
下载的是 ZIP 文件而不是克隆?ZIP 中没有 git 历史记录可用于标记构建,因此请改用 RENOR_BUILD_COMMIT=0000000 npm run build 进行构建。Node 版本错误或跳过了安装脚本?请参阅故障排除。
连接你的 Agent
**无需克隆。**安装 Node 22 后,一行命令即可注册已发布的包。你的笔记会保存到主目录中的隐藏 .renor 文件夹(~/.renor,启动时会打印到 stderr;不会复用现有的 renor 文件夹);若要使用其他文件夹,可在 claude 命令中添加 -e VAULT_PATH=/absolute/path,或在 codex 命令中添加 --env VAULT_PATH=/absolute/path。首次启动会下载约 130 MB,耗时约 15 秒;如果你的 Agent 显示一次连接失败,请重启它。
claude mcp add --scope user renor-local -- npx -y renor-engine mcp
codex mcp add renor-local -- npx -y renor-engine mcp
对于 Cursor 或任何其他客户端,服务命令为 npx,参数为 -y renor-engine mcp。运行 claude mcp remove renor-local 和 codex mcp remove renor-local 可撤销此操作。本节其余内容介绍如何从克隆的仓库进行同样的设置,同时也能让你修改代码。
从克隆的仓库开始。
选择一个用于存放记忆的文件夹(新建一个空文件夹即可;Obsidian 库也可以),然后为其建立索引。在同一个 shell 中,从 renor-engine 目录运行此命令及以下命令:
export VAULT_PATH="$HOME/renor-notes" # absolute path; created if missing
node dist/cli.js index
以下每条命令都会使用你当前正在使用的 Node 22 启动 Renor(node -p process.execPath),因此 Agent 不需要在自己的 PATH 中配置 Node 22。在新的终端中,先重新运行 export 那一行:否则每条命令都会报错 VAULT_PATH: run the export line above first,而不会注册一个无法启动的服务(Agent 只会显示“Connection closed”)。
Claude Code
claude mcp add --scope user renor-local -e VAULT_PATH="${VAULT_PATH:?run the export line above first}" -- "$(node -p process.execPath)" "$PWD/dist/cli.js" mcp
重启 Claude Code;在每个项目中,/mcp 都会列出 renor-local。运行 claude mcp remove renor-local 可撤销此操作。
Codex
codex mcp add renor-local --env VAULT_PATH="${VAULT_PATH:?run the export line above first}" -- "$(node -p process.execPath)" "$PWD/dist/cli.js" mcp
重启 Codex;运行 codex mcp list 可以看到它。运行 codex mcp remove renor-local 可撤销此操作。
Cursor
Cursor 从 ~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目)读取 MCP 服务。运行以下命令可打印配置项:
VAULT_PATH="${VAULT_PATH:?run the export line above first}" node -e 'console.log(JSON.stringify({ mcpServers: { "renor-local": { command: process.execPath,
args: [process.cwd() + "/dist/cli.js", "mcp"], env: { VAULT_PATH: process.env.VAULT_PATH } } } }, null, 2))'
将其放入该文件,或将 renor-local 配置项合并到现有的 mcpServers 中,然后检查 Cursor 的 MCP 设置,确保已启用 renor-local。(此仓库的 cursor-plugin/ 文件夹是用于 renor.cloud 托管服务的 Cursor 插件,需要 Renor 账号;它不会连接到此引擎。)
**其他任何 MCP 客户端:**命令为 node dist/cli.js mcp(stdio),并设置 VAULT_PATH。
接下来让 Agent 记住一些内容,然后在新会话中询问相关内容。Agent 保存的内容可立即搜索。你手动添加或编辑的 Markdown 文件,则需要再次运行 node dist/cli.js index 后才能搜索。
内容存储位置
| 内容 | 位置 |
|---|---|
| 你的笔记 | $VAULT_PATH 中的所有 Markdown 文件。Renor 会读取这些文件;你可以使用任何工具编辑它们。 |
| Agent 保存的内容 | 以 Markdown 格式追加到同一文件夹中:事实保存到 System/Memory Events Ledger.md,笔记保存到 Memory/Daily/<date>.md。 |
| 搜索索引 | 位于 $VAULT_PATH/.semantic-memory/index.db 的 SQLite 数据库。该索引为派生数据:运行 node dist/cli.js index 会根据 Markdown 文件重建索引。 |
Renor 保存的所有内容都在这一个文件夹中,因此你可以像处理其他文件夹一样备份、同步或移动它。除非你设置了模型密钥,否则任何内容都不会离开你的设备:EMBEDDING_PROVIDER=openai 会将笔记文本发送给 OpenAI 以生成嵌入;设置证据模型密钥(RENOR_EVIDENCE_API_KEY 或某个 OLLAMA_* 密钥)后,搜索会将匹配到的笔记发送给该模型。如果你的 shell 已导出此类密钥,请在注册服务时添加 -e RENOR_EVIDENCE_MODE=off(Codex:--env)。所有设置及其默认值见:docs/ENVIRONMENT-VARIABLES.md。
**不使用嵌入进行搜索。**未设置任何选项时,Renor 不会使用嵌入模型,因此只能通过笔记中的原词找到内容:blue notebook 可以找到“The blue notebook is on the desk”,但 where is my notebook? 找不到。无论是否使用嵌入,都能找到已保存的事实。若要按含义搜索,请设置 EMBEDDING_PROVIDER=openai 和 OPENAI_API_KEY,或设置 local,以便下载一次模型并在本机运行;然后运行 node dist/cli.js rebuild,为现有笔记生成嵌入(详情)。
更多内容
- docs/self-hosting.md:故障排查、嵌入、带 OAuth 登录的 HTTP 服务、通过 HTTP 连接 Agent、工具列表、所有者名称、多 Agent(“蜂群”)工具(为每个 Agent 设置
RENOR_CONNECTION_NAME),以及保险库的保护方式。 - skill/SKILL.md:提供给 Agent 的说明,让它无需提醒即可回忆并保存记忆。大部分内容介绍托管工具(
get_context、remember);上文的renor-local服务使用其他名称(search、remember_fact、note),详见其 Stdio 部分。
Renor 是单所有者引擎:一个人的笔记,一组 Agent。它不是多用户产品。
贡献、许可证与安全
欢迎贡献。CONTRIBUTING.md 介绍了环境搭建和测试,并列出了适合新手的议题。Renor 自有代码采用 AGPL-3.0-only 许可(LICENSE);从上游项目导入的文件仍采用 ISC 许可(NOTICE、UPSTREAM.md)。请按照 SECURITY.md 中的说明私下报告漏洞,不要在公开议题中报告。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。