把 AI 会话变成跨机器可携带的工具。

memarium 是一个 npm CLI,把你的 Claude Code 与 VS Code Copilot Chat 会话同步到一个私有 GitHub repo,然后让你能在任何 机器上 resume 任意一段会话。配合可选的 memarium Claude Code 插件,还能在会话内做 digest + recall。

npm install -g memarium Claude Code · Copilot Chat MIT
安装 在 GitHub 上查看

它解决的痛点

你在笔记本上开始调一个 Kubernetes pod,午饭时间到了,走到楼上参加 一个会,会后想在台式机上接着干 — 但 Claude 会话还卡在笔记本上。 于是你重头来过:粘贴日志、重新解释集群拓扑、希望新会话在烧掉一 小时上下文之前能赶上。

或者:周五下午一段会话调出了一个 flaky 测试的根因,你 ship 了修复。 周一早上,另一台机器的新会话从零开始重新推导同一个根因。

memarium 把每段会话保留在 ~/.memarium/session-repo/ 下,推到你私有的 GitHub repo。任意一台机器拉了之后都能跑 memarium resume <sessionId> — 同样的上下文、 同样的已读文件、同样的决策、同样的死胡同。

两个超能力

memarium sync

扫描 ~/.claude/projects/ 与 VS Code Copilot Chat 存储,把新会话复制到 spool(原始 .jsonl 与渲染 .md + .raw.json 一起保留),提交, 推到你私有 GitHub repo 的设备分支。

多设备感知:每台笔记本推自己的分支,GitHub Action 在 main 上做确定性合并。可选的加密 — 通过透明的 git clean/smudge filter,你的 repo 可以是 private 而不必把 原文交给 GitHub。

memarium resume <id>

把会话的 .jsonl 从 spool 复制到 ~/.claude/projects/<encoded-cwd>/<newId>.jsonl, 打印出 cd <project> && claude --resume <newId> 命令让你跑。

每次 resume 都是一次 fork — 这台机器上的副本 会拿到一个新的 sessionId,这样两台设备 resume 同一个源会话时 可以独立继续,spool 同步时不会撞 id。fork 的 origin 会被记录, digest 工具之后可以把同源 thread 关联起来。

跨设备 resume — 一个说明性场景

周五下午 4 点,在你的笔记本上。已经调了三个小时的 Kubernetes 集成测试,Claude 读了 14 个文件,跑了十几条 kubectl 命令,排除了三个怀疑的根因,最后把范围缩小到两个 pod 之间的 时钟偏差假设。你累了,你退出。

周六早上,在你的台式机上。你坐下来端着咖啡,跑:

memarium sync                            # 拉其他机器上的新会话
memarium list-sessions --since 2d        # 找昨天那段
memarium resume 1f2c3d                   # 复制 + 打印 `claude --resume`

memarium 拉笔记本的分支,在 spool 里找到昨天那段会话,把 .jsonl 复制到台式机的 ~/.claude/projects/, 把 /Users/laptop-me 路径改写成 /Users/desktop-me(通过 memarium config --map-path 一次配置过),然后打印:

Session forked: 1f2c3d-... → 8a7b6c5d-...
Continue with:
  cd /Users/desktop-me/work/k8s-cluster && claude --resume 8a7b6c5d-...

你跑那条。Claude 启动起来,14 个文件还在上下文里,三个被排除的 假设还在对话里,时钟偏差的线索等着你下一句 prompt。你不重新解释。 你不重新推导。你就接着周五的你 — 在另一台机器上,另一把椅子里, 端着第二杯咖啡。

安装

需要 Node 20+。

npm install -g memarium
memarium init

wizard 会引导你过一遍私有 GitHub repo URL、可选加密、设备分支命名。 之后每台机器上的 memarium sync 推自己的新会话、拉别人 的,memarium resume <id> 让你本地接着任意一段。

想要 digest + recall?装可选的 Claude Code 插件:

/plugin marketplace add june9593/memarium-plugin
/plugin install memarium

插件和 CLI 共用 ~/.memarium/session-repo/ — 装其中一个、 两个都装、或者都不装,顺序也无所谓。

CLI 命令

命令做什么
memarium init交互式 wizard。clone 你的私有 repo 到 ~/.memarium/session-repo/,设置设备分支。
memarium sync抽取这台机器上新的 Claude Code + Copilot 会话,提交,推送。
memarium list-sessions [--project] [--since] [--device]列出 spool 里的会话,可按条件过滤,用于挑选 resume 目标。
memarium resume <sessionId>把 spool 里的会话 fork 到 ~/.claude/projects/,打印 claude --resume 命令。
memarium config [--map-path FROM=TO]读 / 改 ~/.memarium/config.json(比如跨设备 path 映射)。
memarium list · show · cat从 shell 浏览 spool。
memarium crypt <action>管理 git clean/smudge 加密 filter。
memarium workflow装跨设备合并的 GitHub Action。
memarium doctor健康检查(CLI / npm / git-crypt / 插件 / spool 格式)。
memarium upgradenpm install -g memarium@latest 的封装。

写到哪里

所有东西都在 ~/.memarium/ 下:

book/(chronicles + topics + 目录)是可选的 Claude Code 插件写的,不是 npm CLI。CLI 不会启动 LLM — 它只是 transport + I/O。

兄弟项目:memarium 插件

配套的 Claude Code 插件 才是把同步过来的会话变成可检索笔记本的那一半。 插件提供两条 slash 命令:

插件可以脱离 npm CLI 工作(只整理本机会话),npm CLI 也可以脱离 插件工作(只 sync + resume)。两者一起,你既有跨设备的 可携带性,也有跨时间的可携带性。

项目链接

MIT 许可证 · 由 @june9593 构建 · 168 个 vitest 测试 · 可选 git clean/smudge 加密 filter。