前言¶
在 DeepSeek Harness(DSH)或多客户端混用 Claude Code、Codex 时,常见痛点是:会话触顶、换模型或换工具后,目标、约束、已否决方案和未完成的检查证据难以完整交接。手写 HANDOFF 笔记可以应急,但结构化程度、代码指纹与并发更新往往靠自觉维护。
remvu(DSH 侧包名 dsh-remvu)由维护者 caotaiyi 开源,归类为「记忆」类插件。它用独立运行时把项目记忆落在本地 .remvu/,支持显式 save/resume、可选的可观测记录与代码指纹,并为 DSH 0.2.1-rc.2 提供五个原生工具。社区目录页见 SkillHub:caotaiyi/remvu;源码与文档在 GitHub:caotaiyi/remvu(当前资料中 GitHub 星标为 1)。
这是什么¶
一句话:Portable project memory for coding agents——面向编码智能体的可携带项目记忆;独立运行时、可观测记录、代码指纹,并适配 Claude Code、Codex 与 DeepSeek Harness。
完整独立应用自带运行时,用户无需单独安装 Python。新装默认不挂 hooks;是否开启记录是单独选择。指纹、CAS 保护与恢复在手动模式下仍可用。resume 先读短预览,细节按需拉取。
核心功能¶
记忆内容与可信度¶
记忆条目区分 user_confirmed、observed、inferred、unverified。被否决的决策与 superseded 历史会保留。检查结果绑定当时实测的代码指纹;后续改代码会使旧检查变为历史记录。并发提案不能静默覆盖更新的记忆。
私有记忆与详细证据在被忽略的 .remvu/ 中。仅在显式分享时生成公开的 REMVU.md,并做公开内联证据与 patch 审查;隐藏推理、凭证与无关对话会被排除。
DSH 适配层¶
dsh-remvu 与同一套独立引擎和 .remvu/ 状态对接,向 DSH 0.2.1-rc.2 增加五个工具:remvu_save、remvu_resume、remvu_check、remvu_events、remvu_show,以及可选的本地可观测事件记录。JavaScript 包无需编译或安装期构建脚本。
记录与自动上下文注入默认关闭;save/resume 安装后即可使用。上下文在每个 session/compaction 窗口注入一次,而非每次工具结果后都注入。
与其他客户端的对应动作¶
| 日常操作 | Claude Code | Codex |
|---|---|---|
| 保存私有交接 | /remvu save |
$remvu save |
| 新会话继续 | /remvu resume |
$remvu resume |
save 会请当前智能体整理已审查证据,并导出 .remvu/handoff/REMVU.md;无 proposal 的直接调用则导出既有状态、保留 pending 证据。不上传、不自动 commit。resume 在继续前核对已保存的代码状态;接收方也可在不安装 Remvu 的情况下阅读 handoff 与代码。
安装与启用¶
安装须基于你审查过的下载与 Remvu 源码检出;保留独立应用目录完整。下文 REMVU 表示该应用的绝对路径可执行文件(或安装返回的稳定可执行文件),不是 Python 脚本。
插件以当前 DSH 进程权限访问本地项目;安装前请阅读源码与 MIT 许可证。仅声称支持本地项目,不宣称云盘或远程文件系统。
1、为项目安装完整 Remvu 应用。仅 DSH 时可选 --platform none;若同一项目还用 Claude Code/Codex,可选 both。
REMVU install --repo PROJECT --platform none
2、在已有 DSH profile 中,添加经审查的固定提交:
dsh plugin --profile YOUR_PROFILE add github:caotaiyi/remvu#REVIEWED_COMMIT_SHA
将 REVIEWED_COMMIT_SHA 换为你实测过的完整提交 SHA。仓库根目录声明可安装的 DSH bundle 并自带 JavaScript,不运行构建脚本。离线或本地使用时,可将 GitHub 规格换为审查过的检出绝对路径,或其 adapters/dsh 目录。
若新建 Web profile,须在添加插件之前仅创建一次:
dsh --profile remvu --from-default-profile web --dump-config
不要用 --from-default-profile 重置已有用户 profile;之后可将 YOUR_PROFILE 设为 remvu。
3、用已安装的稳定可执行文件生成私有 overlay,避免移动下载目录后路径失效:
REMVU dsh-config --repo PROJECT
dsh --profile YOUR_PROFILE --patch PROJECT/.remvu/dsh.patch.yml
overlay 记录精确可执行文件与项目路径,启动 DSH 前请审查。目标已存在时会拒绝写入;更新安装后保留旧 overlay,用 --out 生成新文件名。也可选 dsh-config --recording on 开启记录,或用 --recording off 生成新 overlay 后重启 profile 关闭记录,既有私有状态不受影响。
package.json 要求 Node >=22、DSH 0.2.1-rc.2;当前插件版本为 0.3.0-beta.3(测试候选,生产发布与完整原生客户端矩阵仍待验收)。
典型用法¶
跨客户端 30 秒交接(README 工作流)¶
1、在 Claude Code 中执行 /remvu save。
2、在 Codex 中打开同一项目,执行 $remvu resume。
3、查看下一步、过期检查、pending 证据或冲突,再继续编码。
这是文档描述的工作流,并非承诺实测耗时。
在 DSH 中 save / resume¶
切换智能体前,可要求「Remvu save」。智能体应查看 remvu_resume、remvu_events 及相关的 remvu_show 结果,起草经审查的 proposal,再调用 remvu_save。可选 proposal 为 JSON 字符串,含 base_revision、实际审查的 base_event_count 与类型化 entries。无 proposal 时导出既有状态并保留 pending 观察。
要求「Remvu resume」时加载已保存上下文并检查代码是否仍新鲜。接收方也可直接阅读私有 handoff 或显式分享的 REMVU.md,无需安装本插件;公开分享仍须通过独立应用的 share 及既有隐私检查。
未宣称注册斜杠命令;工具通过 DSH 原生 defineTool 注册。失败会保留为失败;工具传输成功 alone 不会变成项目检查通过。
适用场景与注意¶
适合:本地单仓项目、需要在 DSH 与 Claude Code/Codex 之间交接背景、希望结构化记忆与代码指纹、并愿意显式 save 的团队或个人。
边界与限制(摘自 DSH 适配文档):
- 仅本地项目;配置项目外的 session、嵌套仓库与 worktree 排除;符号链接的适配器路径会被拒绝。
- Plan/read-only 模式推迟写入;workspace-write 要求记忆根落在宿主解析的可写工作区内。插件是受信任宿主代码,不绕过 DSH 授权;若部署需要显式只读,请在插件配置中保持
readOnly: true。 - 观察按序排队且有界 backlog;进程异常退出仍可能丢失队列中的工作,不能从干净退出推断完整语义记录。
- 适配层针对 DSH 0.2.1-rc.2 预发布 API;升级 DSH 须重新验证。
- 官方文档记载:插件经
dsh plugin add流程安装并在隔离 SDK profile 中加载(无模型请求);模型驱动的 handoff 与 GUI 验收为待办项。
卸载插件层:dsh plugin --profile YOUR_PROFILE remove dsh-remvu,保留 .remvu/,并从启动命令中移除多余的 --patch 参数。
结尾¶
remvu 把目标、约束、证据与 handoff 收进可审查的本地状态,让 DSH 与多客户端协作时少丢上下文。目录与版本信息:SkillHub 插件页;安装细节与开放格式:GitHub 仓库,DSH 专章见 adapters/dsh/README.md。