by slow-stack
🧠 The memory that dreams — cross-session memory for DeepSeek Harness. Local SQLite + Markdown mirrors, autoDream consolidation, 4-way recall (keyword/vector/BM25/entity), and a memory panel. 10 model tools, MCP server, CLI.
# Add to your Claude Code skills
git clone https://github.com/slow-stack/mnemeGuides for using ai agents skills like mneme.
Last scanned: 9/24/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-09-24T09:01:41.907Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how mneme compares with popular alternatives.
mneme is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by slow-stack. 🧠 The memory that dreams — cross-session memory for DeepSeek Harness. Local SQLite + Markdown mirrors, autoDream consolidation, 4-way recall (keyword/vector/BM25/entity), and a memory panel. 10 model tools, MCP server, CLI. It has 216 GitHub stars.
Yes. mneme passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/slow-stack/mneme" and add it to your Claude Code skills directory (see the Installation section above).
mneme is primarily written in JavaScript. It is open-source under slow-stack on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh mneme against similar tools.
No comments yet. Be the first to share your thoughts!
From $49 · 30 days · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
dsh-mneme 是 DeepSeek Harness (DSH) 的跨会话记忆插件。它不只「存得下」,更「管得好」:后台自动去重合并、矛盾先冻结等你裁决、全程可回放审计、记忆只落在本机,还支持导出成人可读的 Markdown。
Mneme(Μνήμη)源自希腊记忆女神 Mnemosyne。她掌管记忆与梦境——正如
autoDream在后台默默巩固你的记忆库。
| 日期 | 版本 | 头条 |
|---|---|---|
| 2026-11-07 | v0.12.0 | pin 从「按类型猜」变成你亲手钉的事实,检索热路径快 5.6 倍 — 这一版两条主线都指向同一件事:把「看起来对」换成「查得到」。① pin 显式化:此前「钉住」只是按记忆类型推断(constraint / preference 天然算钉),于是被钉的 pattern 一条都留不住;现在另开 pinned_memories 表(独立表非布尔列,回退只需一条 DROP——但 DROP 前先导出这张表,pin 选择是独立事实,memories 那边还在也恢复不了)配 memory_pin(取消钉选是同一个工具传 unpin: true,没有单独的 unpin 工具),钉住的行在注入里优先占位。顺带修掉两处旁路:pin 筛选发生在 hybrid 合并之后,而合并结果已按 poolSize 封顶(生产 maxItems=5 → 10 条),规则窗口里的 pin 行一条都进不了候选池——真库副本实测 pin 注入 2/5 → 5/5、注入总数 7 → 10,且原有条目只后移、无一条被挤出;判据也从「表里有几行」改成「有几条能用」,因为 pin 行会在 memories 那边被归档 / 遗忘 / 硬删而 pin 表一无所知,旧判据只要剩一行就一直判 explicit、可选集恒为空且永不回落(pinnedStats.source 因此分 explicit / fallback-none-usable / type-fallback 三档,静默降级必须留痕)。默认 pinnedInjectBudget = 0——默认状态下 pin 池整体关闭、钉住的行不会因为被钉就抢占注入位次,要显式把预算设成正数才启用;关着时注入序列与改前逐条相同。② 「Agent 眼中的你」自动事实:从记忆里派生出可核验的事实条目,按身份分卡维护、参与注入、面板可增删改(profileFactsEnabled 默认关)。③ 性能:向量解析缓存上限写死 4000 而活跃带向量行已 6730,扫到第 4001 条就开始驱逐自己刚填的条目——四轮实测命中率恒 0.0%,缓存等于不存在;改成跟工作集自适应再用内存预算封顶,A/B 1.8–2.4s → 370–424ms,同时存储换 Float32Array(55.5MB → 29.7MB),并摘掉「只 SELECT id 却带 embedding != ''」的谓词(SQL 层 265ms → 96ms)。④ 修 #579:仓库地志三个只读工具的错误分支返回 schema 之外的字段、宿主直接判 invalid output(感谢 @Oscar-Williams);更危险的一条是检索把「页读不到」静默 continue 成「0 hits」,现在保留已读到的命中、单独列出读不到的页。⑤ 修 #590:严格寻址把「一张身份卡都没建」也判成「没有这张卡」,而 DS Bot 这类宿主里所有 bot 会话共用同一 agentPreset 且建成就不可变,于是唯一那张人格卡静默失效——判据改成「有没有键」而不是「有没有可用的卡」。 |
| 2026-11-05 | v0.11.0 | 记忆开始读得懂一个仓库 — 这一版把仓库地志(chorography)从零推到能看能查:读一个 JS/TS 仓库的文件树与 import 图,划分模块、在 <repo>/.chorography/ 下写出 Markdown 地志页(T0 骨架零模型零网络,plan.yaml 做正面控制,CHORO:HUMAN 保留区跨重生成逐字节存活),再由 T1 逐模块跑一次 headless 会话补上架构/约定/技术栈/构建四段语义正文与可核验的 claims——生成吃的是宿主已有的模型额度,不要求额外模型商密钥。消费面三张脸同时接上:面板第二座位、三个只读工具、/choro/* 读路由,以及每轮开局那一小块标题级提纲注入与只读 /choro 命令(只提示过期、绝不自动重跑)。chorographyEnabled 默认关,wiki 行与记忆行物理隔离、永不进巩固与质量过滤的任何行池。另修 #573:宽态侧栏的记忆入口落在「更多」行下面,点开更多时被菜单盖住。 |
| 2026-11-03 | v0.10.1 | 打开记忆详情不再崩掉整个宿主 — 0.10.0 里点开侧边栏任意一条记忆的详情抽屉,渲染进程立刻抛 ReferenceError: provenance is not defined,整个宿主跟着重启、进行中的会话被打断,100% 复现(#553)。根因是两个隔了三千多行的组件:MemoryDrawer 的归因 effect 与渲染块在读 provenance / setProvenance,而那句 useState 落在了同文件上一个组件 EntityPanel 里——EntityPanel 里那份是纯死代码,整个函数体除声明外对 provenance 零引用。这个形状躲得过眼睛(隔三千行、同名 state 看着完全正常)、语法检查(provenance 是合法标识符,只是不在作用域里)和原有用例(只读源码字符串,从不执行组件),所以补的不是「锁一个名字」的用例,而是按组件扫「调了 setXxx( 却没有声明」。同版带上 v0.10.0 之后合入的图谱锚定层收尾(#24):Tag 与向量两路起点接线、被动确认补上复核出口 |
| 2026-11-02 | v0.10.0 | 记忆开始按「哪一轮」算账,而不只是「哪一段」 — 这一版补的都是同一件事:给已经发生的事补上它自己的身份。① 蒸馏有了运行身份(#512):此前归因只到「会话区间」——那是输入的坐标,不是运行的身份,于是「这段原文被重蒸过几次、哪一轮失败了」库里一个字都没存。现在窗口级记 distill_runs(含 ok/degraded/noop/failed/aborted 与 audit_id),行级另开 memory_mints 记「这条记忆出生自哪一轮巩固」;历史行一律留空不猜,模型流失败与解析失败也真记一行。② 溯源补上反方向(#524):GET /memory/provenance?sessionId=<sid> 让「这个会话蒸出了哪几个窗口」可直接查,此前只能从一条记忆往回找;两个主键互斥,limit 越界直接 400 而不静默截断,撞上限带 truncated: true。③ 闸门落到单个会话(#539):sessionGateEnabled 让指定会话与子代理「不进不出」(不注入、不蒸馏,memory_* 与 set_scope_state 调用一律被拒),其余会话照常——此前能关的只有全局,关插件会连带打死别的会话。子代理判据只认宿主自己的委派标记,parentSession 不是判据:本机 641 个真实会话头逐条核过,用它会把 3 个 fork 出来的主会话判成子代理。④ 防谄媚补到写入面(#530):蒸馏与总览的提示词此前对谄媚一字未提,而这两处写出的内容完全不过写入准入——现在补上「立场纪律」四条(不记对用户性格能力的评价、助手推断不写成事实、冲突如实记录、importance 只看事实对后续工作的影响面而不因用户满意或情绪抬高)与「叙述纪律」,且排在与时间换算的指令之前。另修 differentiate 的正反馈闭环(同一段注记追加到两侧正文 → 向量靠拢 → 下一轮再判重复,实测单条堆 19 段、正文膨胀到 2200+ 字,现在只落账本不改正文,#533)、sleep 冲突相位的输入侧预算与续排(单请求曾打满 163,054 / 163,840 token,分批后隔夜才轮到,现在一轮跑完接着追,#529)、面板「最近巩固」不再把一次整理的回执冒充巩固(#495),以及面板在 320–519px 上原本根本没有断点(#542)。 |
| 2026-10-30 | v0.9.5 | 记忆能安全地递出去,也能整包收回来 — 「分享记忆」从一个文件变成有协议的动作(#386):包只含活跃行,scope 与 home 前缀不进包,命中密钥 / PII 的行整条不进;出包先给报告再给文件,超水位回 413、按类型或标签分批;收包一条不合格整包拒、干跑为默认、按 share_external_id 幂等,undo-share 整包物删,所以收回后还能再导。来源也第一次可查:GET /memory/provenance(#421,@z2Ace0107 实现),409 与 503 分开答「用户关了」与「装配坏了」。另修同标题重复入库(#505)、扫描谎报「没东西可扫」(#515)与未围栏的巩固 prompt(#501)。 |
| 2026-10-21 | v0.9.4 | 三条链各自补上「最后一环」 — 这一版的三件事同一种形状:东西早就造好了,只差没人能叫它。① agent 主动整理(#231):引擎在 v0.8 就落在 src/organize.js(先 dryRun 出比对报告 → agent 判断 → apply 落库,筛除只归档不删,全程复用 dream_runs 回执),可它没有任何调用入口——工具表里没有它、两张 API 脸 0 命中、全仓 .organize( 零调用点,只有测试能调到。现在它有工具了:memory_organize,organizeEnabled 默认关(关 = 工具根本不注册,模型看不到就不会调)。② 画像能被反向提取了(#497):面板「用户画像」加一个按钮,读活跃记忆、花一次宿主模型调用,产一段「助手眼中的用户」草稿——只出草稿:采用是你在面板上再点一次,你手写的原文不会被模型改写;空库和模型不配合都直接报错,绝不回一张空草稿冒充「这次没提炼出东西」(profileExtractEnabled 默认关)。③ 人格不再无条件进别人的会话:default 卡以前会落给所有没建卡的身份,于是宿主里自带身份的外部 bot 每一帧都收到两句「你是谁」撞在一起,而界面上「关掉这张卡」实际不生效——新增 personaStrictAddressing(默认关,历史行为逐字节不变)把「身份没建卡」与「卡被显式关掉」都收回到不注入。同版补上蒸馏的转录围栏 + 解析失败护栏(#494:一条会话被同一个窗口卡死、重试 20 次越试越贵的根因;失败行现在恒带原始输出形状,事后能回答「模型到底吐了什么」),并把面板里那段自称「注入生效文本」的只读区改成由后端渲染——它以前既没有人格三行也没有表头和前缀,标题却承诺了模型实际看到的东西。 |
| 2026-10-20 | v0.9.3 | M.O. 从「挖得出来」跑到「会被叫去挖」 — 沉淀链的算法自 v0.9.1 起就写完了(多帧 zstd → 重复序列 → 缺席对照 → draft 草稿),可它在运行时没有任何调用点:全仓引用只出现在测试里。机器挖得出来、却永远不会被叫去挖——缺的从来不是算法,是归属与触发。这一版把三处接上:按会话头里的 cwd 反查项目桶(桶名是路径的有损变形,规则不在本仓,查不到就整跑跳过,而不是降级成全局普查——后者会把 A 项目的动作算到 B 头上,且结果看起来完全正常);新增 nudgeForProject 把「归属 → 挖掘 → 落盘」收成一个入口;挂 turn/end 按项目跑,冷却 10 分钟、单次预算 4 秒、延到宏任务、一次一个项目、抛错只 warn。它只产提议,不产草稿(#489):升格仍然要人批,面板也多了「现在沉淀一次」,与自动跑同一条入口、区别只有不改仓库。同版修掉三处「坏了却不报」:作用域反查自 v0.8.0 起每次都抛错走降级、canonical 归一与成员校验静默失效(#487);/nudge 的写盘口只拦 PUT/POST,带 token 的 PATCH/DELETE 会静默写盘、归属解析不看预算、桶名边收边截把「没看全」报成「确实没有」;多帧 zstd 的反证断言绑了 Node 的整块解语义,24.22.0 起过期(#490)。 |
| 2026-10-19 | v0.9.2 | 让「看不见的失败」显形 — 这一版修的大多不是「缺功能」,是「坏了却不报」:功能开关一直是启动期生效,面板「已改」只说明值进了库,于是新增第三态「待重启」(#481);巩固的 dreamMaxTokens 默认值被原样当 max_tokens 发出去,撞上服务商上限后 180 次巩固 0 次成功,现在面板能改、超上限还会按服务商自己声明的上限自动降级(#478);自动蒸馏写入的行 100% 拿不到向量,注释承诺的「提交后补跑」从未存在(#477);CLI 把 -- 开头的值当成新旗标——这个缺陷只在 token 前两位恰好掷中 -(约 1/4096)时现形,潜伏了整整一个发布周期。另新增作用域级可逆闸门(#471,默认关):让一路记忆能被单独按下与松开,不改配置、不重启。 |
只记大改动,逐条细节见 CHANGELOG。
每次新开对话,AI 都像第一次认识你?
dsh-mneme 给 DeepSeek Harness 装上跨会话记忆。 你聊过的项目、提过的偏好、做过的决定,AI 都记得——即使关掉了窗口,下次打开还在。
| 场景 | 没装插件 | 装了插件 |
|---|---|---|
| 周一聊完项目需求,周三继续 | "能再描述一下你的项目吗?" | "你指的是上周提到的博客重构吗?当时你说想用 Astro。" |
| 告诉 AI 你的编码习惯 | 每轮都要重复交代 | 一次设定,长期生效 |
| 整理大量资料后关窗口 | 资料丢了 | 自动归档,随时检索找回 |
但 dsh-mneme 的可信之处,恰恰在你看不见的后台。下面这些,才是它和「一个会存东西的插件」的本质区别。
scopeEnabled 开启后,每条记忆标注由哪个 agent、在哪个工作区写入;检索时本会话作用域优先(命中加权,他 scope 降权仍可见);strictScope 再进一步——显式声明收窄到他者作用域的记忆在检索/注入里完全不可见(载体自动标注只降权,不硬挡)。多 Agent、多项目互不串台。embedProvider 设为 local 后检索走本地 Embedding 与精排,不需要 API Key;没配嵌入时关键词 / BM25 检索照样能用。.md 文件,随时打开编辑;人工改动会被优先尊重,不会被机器覆盖。**它和 Zep / Mem0 /