opencode 安装 claude-mem问题解决方案
【代码】opencode 安装 claude-mem问题解决方案。
·
根本原因
claude-mem 官方安装器生成的 OpenCode 插件代码,和你本机 OpenCode 1.14.48 的插件 API 不匹配。
旧插件大致是这样监听的:
js
{
hooks: { tool: { execute: { after: ... } } },
event: (eventName, payload) => { ... }
}
但当前 OpenCode 实际要求的是顶层 hook 名:
js
{
"chat.message": async (input, output) => {},
"tool.execute.after": async (input, output) => {},
event: async ({ event }) => {}
}
所以现象是:插件文件存在、OpenCode 也能加载它,但用户发消息和工具调用不会命中旧监听函数,最终 claude-mem worker 没收到 /api/sessions/init 或 /api/sessions/observations 请求。数据库里 sdk_sessions/user_prompts/observations 都是 0,也验证了不是 viewer 展示问题。
怎么修的
我把 claude-mem.js 替换成了兼容 OpenCode 1.14.48 的实现:
用 "chat.message" 捕获用户输入,调用 POST /api/sessions/init
用 "tool.execute.after" 捕获工具输出,调用 POST /api/sessions/observations
用 event: async ({ event }) 兼容当前事件总线,处理 assistant 文本、文件编辑、会话压缩
保留 claude_mem_search 工具
代码里的函数注释已按你的要求写成中文
我还做了验证:
node --check 语法通过
opencode mcp list 能触发插件加载日志
mock 了一次 OpenCode hook 调用,确认它会请求:
http://127.0.0.1:37701/api/sessions/init
http://127.0.0.1:37701/api/sessions/observations
需要重启 OpenCode TUI 后,新插件才会被当前会话加载。
更多推荐



所有评论(0)