Proposal: Claude Code Plugin Adapter
背景 / Motivation
Roadmap 中"记忆可迁移:跨 Agent / 跨框架 / 跨设备"目前仅完成 OpenClaw 与 Hermes 两个宿主集成。Claude Code(cc)已成为开发者高频使用的编码 Agent,并提供成熟的 /plugin install 分发机制。原生 cc 适配可让长期记忆能力直达大量 cc 用户,无需让他们再安装 OpenClaw 或部署 Hermes。
方案概述 / Approach
新增 claude-code-plugin/ 目录(与 hermes-plugin/ 平级),通过 cc 官方 plugin 系统分发,不修改用户 ~/.claude/settings.json。运行时通过 HTTP + Bearer Token 调用既有的 TdaiGateway,复用现有 /recall / /capture / /search/* 接口,仅在 src/gateway/server.ts 增加约 13 行的可选 Bearer 鉴权中间件。
核心设计要点:
- cc Plugin 分发:通过
/plugin install tdai-memory 启用,声明式卸载,无全局配置污染
- Gateway 可选 Bearer:仅当
TDAI_GATEWAY_TOKEN 环境变量被设置时启用鉴权;未设置则行为不变,与 Hermes 完全向后兼容
sessionKey = hash(cwd):cc 无显式 session 结束信号,按项目目录分区与用户心智模型一致;TDAI_SESSION_KEY 可覆盖
- Hook 失败静默:记忆系统永远不在对话关键路径上;失败写
hook.log,对话不受影响
- daemon 生命周期绑定父 cc:
gateway-entry.ts wrapper 通过 process.kill(ccPid, 0) 60s 探活 + 5s 优雅关闭
范围 / Scope
本 PR 包含:
claude-code-plugin/(约 900 行 TypeScript 源码:lib/ 6 模块 + hooks.json + 4 个 skill + README EN/CN)
src/gateway/server.ts 可选 Bearer 鉴权(约 13 行,env-gated,完全向后兼容)
- 47 单元测试 + 3 smoke e2e
- CHANGELOG 条目
后续 PR:
- MCP server(解锁 Cursor / Cline 等非 cc 客户端)
- Codex host adapter
PostToolUse per-tool 捕获(当前 capture 由 Stop hook 读 transcript 完成)
- 跨 Agent 记忆迁移工具
希望维护者反馈 / Asking for input
src/gateway/server.ts 增加可选 Bearer 鉴权是否可接受?(env-gated 完全向后兼容;Hermes 流程不受影响)
- commit scope 命名:当前使用现有 scope
plugin 与 gateway;如希望使用其他 scope(如 claude-code)请告知
- 版本号策略:
plugin.json 当前独立版本 0.1.0,主包仍为 0.3.x;是否需要对齐?
- 当前未实现需要 disclosure 的点:(a)
PostToolUse 已从 hooks.json 移除(仅 SessionStart/UserPromptSubmit/Stop),per-tool 捕获留作后续 PR;(b) daemon ccPid liveness 仅追踪首个 cc 进程,多 cc 终端同时跑时首个退出会触发关闭(已记在 risk)
实现状态 / Status
- 分支
feat/claude-code-plugin 位于 fork YOMXXX/TencentDB-Agent-Memory
- 3 个 logical commits,全部 DCO sign-off
pnpm vitest run:47/47 通过(6 个 test 文件)
pnpm test:cc-plugin:e2e:3/3 通过(in-process 真实 Gateway 启动 + 真实 capture)
pnpm build:plugin 与 pnpm build:cc-plugin:均通过
如方向 OK,将开 PR;如有调整意见请在 issue 内反馈。
Proposal: Claude Code Plugin Adapter
背景 / Motivation
Roadmap 中"记忆可迁移:跨 Agent / 跨框架 / 跨设备"目前仅完成 OpenClaw 与 Hermes 两个宿主集成。Claude Code(cc)已成为开发者高频使用的编码 Agent,并提供成熟的
/plugin install分发机制。原生 cc 适配可让长期记忆能力直达大量 cc 用户,无需让他们再安装 OpenClaw 或部署 Hermes。方案概述 / Approach
新增
claude-code-plugin/目录(与hermes-plugin/平级),通过 cc 官方 plugin 系统分发,不修改用户~/.claude/settings.json。运行时通过 HTTP + Bearer Token 调用既有的TdaiGateway,复用现有/recall//capture//search/*接口,仅在src/gateway/server.ts增加约 13 行的可选 Bearer 鉴权中间件。核心设计要点:
/plugin install tdai-memory启用,声明式卸载,无全局配置污染TDAI_GATEWAY_TOKEN环境变量被设置时启用鉴权;未设置则行为不变,与 Hermes 完全向后兼容sessionKey = hash(cwd):cc 无显式 session 结束信号,按项目目录分区与用户心智模型一致;TDAI_SESSION_KEY可覆盖hook.log,对话不受影响gateway-entry.tswrapper 通过process.kill(ccPid, 0)60s 探活 + 5s 优雅关闭范围 / Scope
本 PR 包含:
claude-code-plugin/(约 900 行 TypeScript 源码:lib/ 6 模块 + hooks.json + 4 个 skill + README EN/CN)src/gateway/server.ts可选 Bearer 鉴权(约 13 行,env-gated,完全向后兼容)后续 PR:
PostToolUseper-tool 捕获(当前 capture 由 Stop hook 读 transcript 完成)希望维护者反馈 / Asking for input
src/gateway/server.ts增加可选 Bearer 鉴权是否可接受?(env-gated 完全向后兼容;Hermes 流程不受影响)plugin与gateway;如希望使用其他 scope(如claude-code)请告知plugin.json当前独立版本0.1.0,主包仍为0.3.x;是否需要对齐?PostToolUse已从 hooks.json 移除(仅 SessionStart/UserPromptSubmit/Stop),per-tool 捕获留作后续 PR;(b) daemonccPidliveness 仅追踪首个 cc 进程,多 cc 终端同时跑时首个退出会触发关闭(已记在 risk)实现状态 / Status
feat/claude-code-plugin位于 forkYOMXXX/TencentDB-Agent-Memorypnpm vitest run:47/47 通过(6 个 test 文件)pnpm test:cc-plugin:e2e:3/3 通过(in-process 真实 Gateway 启动 + 真实 capture)pnpm build:plugin与pnpm build:cc-plugin:均通过如方向 OK,将开 PR;如有调整意见请在 issue 内反馈。