Skip to content

内存导出/导入脚本

与其他用户分享你的 claude-mem 知识!这些脚本允许你导出特定记忆(观察、会话、摘要和提示)并将它们导入到另一个 claude-mem 安装中。

使用案例

  • 与 Windows 用户分享 Windows 兼容性知识
  • 与贡献者分享漏洞修复模式
  • 在团队之间共享特定项目的经验教训
  • 备份特定内存集以保管

运作方式

导出脚本

使用 混合搜索(结合 ChromaDB 向量嵌入和 FTS5 全文搜索)搜索数据库,并导出所有匹配项:

  • 观察 - 个人的学习和发现
  • 会话 - 会话元数据
  • 摘要 - 会议摘要
  • 提示 - 导致该作品的用户提示

输出是一个可共享的便携式 JSON 文件。

隐私提示: 导出文件包含所有匹配的内存数据的明文。在共享之前请审查导出内容,以确保不包含任何敏感信息(API 密钥、密码、私有路径)。

导入脚本

导入记忆,并防止重复

  • 在插入之前检查每条记录是否已存在
  • 自动跳过重复项
  • 通过事务导入保持数据完整性
  • 报告已导入与已跳过的内容

重复检测策略:

  • 会话:由 claude_session_id(唯一)
  • 摘要:由 sdk_session_id(唯一)
  • 观察:由 sdk_session_id title created_at_epoch(复合)
  • 提示: 由 claude_session_id prompt_number(合成)

使用

导出记忆

bash
# Export all Windows-related memories
npx tsx scripts/export-memories.ts "windows" windows-memories.json

# Export bug fixes
npx tsx scripts/export-memories.ts "bugfix" bugfixes.json

# Export specific feature work
npx tsx scripts/export-memories.ts "progressive disclosure" progressive-disclosure.json

参数:

  1. <query> - 搜索查询(使用混合语义全文搜索)
  2. <output-file> - 输出 JSON 文件路径
  3. --project=name - 可选:将结果筛选到特定项目

示例输出:

🔍 Searching for: "windows"
✅ Found 54 observations
✅ Found 12 sessions
✅ Found 12 summaries
✅ Found 7 prompts

📦 Export complete!
📄 Output: windows-memories.json
📊 Stats:
   • 54 observations
   • 12 sessions
   • 12 summaries
   • 7 prompts

导入记忆

bash
# Import from an export file
npx tsx scripts/import-memories.ts windows-memories.json

参数:

  1. <input-file> - 输入 JSON 文件(来自导出脚本)

示例输出:

📦 Import file: windows-memories.json
📅 Exported: 2025-12-10T23:45:00.000Z
🔍 Query: "windows"
📊 Contains:
   • 54 observations
   • 12 sessions
   • 12 summaries
   • 7 prompts

🔄 Importing sessions...
   ✅ Imported: 12, Skipped: 0
🔄 Importing summaries...
   ✅ Imported: 12, Skipped: 0
🔄 Importing observations...
   ✅ Imported: 54, Skipped: 0
🔄 Importing prompts...
   ✅ Imported: 7, Skipped: 0

✅ Import complete!
📊 Summary:
   Sessions:     12 imported, 0 skipped
   Summaries:    12 imported, 0 skipped
   Observations: 54 imported, 0 skipped
   Prompts:      7 imported, 0 skipped

重新导入(防止重复)

如果你对同一个文件再次运行导入,重复项会被自动跳过:

🔄 Importing sessions...
   ✅ Imported: 0, Skipped: 12  ← All skipped (already exist)
🔄 Importing summaries...
   ✅ Imported: 0, Skipped: 12
🔄 Importing observations...
   ✅ Imported: 0, Skipped: 54
🔄 Importing prompts...
   ✅ Imported: 0, Skipped: 7

分享回忆

供出口作者使用

  1. 导出你的回忆:

    bash
    npx tsx scripts/export-memories.ts "windows" windows-memories.json
  2. 通过以下方式共享 JSON 文件:

    • GitHub 代码片段
    • 项目仓库 (shared-memories/)
    • 直接文件传输
    • 版本中的包
  3. 记录所包含的内容:

    • 使用了什么查询
    • 包含了哪些知识
    • 谁可能会从中受益

针对进口用户

  1. 将导出文件下载到您的本地机器

  2. 查看其中内容(可选):

    bash
    cat windows-memories.json | jq '.totalObservations, .totalSessions'
  3. 导入到你的数据库:

    bash
    npx tsx scripts/import-memories.ts windows-memories.json
  4. 通过搜索验证导入

    bash
    curl "http://localhost:37777/api/search?query=windows&format=index&limit=10"

JSON 导出格式

json
{
  "exportedAt": "2025-12-10T23:45:00.000Z",
  "exportedAtEpoch": 1733876700000,
  "query": "windows",
  "totalObservations": 54,
  "totalSessions": 12,
  "totalSummaries": 12,
  "totalPrompts": 7,
  "observations": [ /* array of observation objects */ ],
  "sessions": [ /* array of session objects */ ],
  "summaries": [ /* array of summary objects */ ],
  "prompts": [ /* array of prompt objects */ ]
}

安全功能

重复防止 - 不会重新导入已有记录 ✅ 事务性 - 全有或全无的导入(数据库保持一致) ✅ 只读导出 - 导出脚本以只读模式打开数据库 ✅ 依赖顺序 - 会话导入在观察/总结之前 ✅ 验证 - 在启动前检查数据库是否存在

高级用法

按项目导出

bash
# Export only claude-mem project memories
npx tsx scripts/export-memories.ts "bugfix" bugfixes.json --project=claude-mem

# Export all memories for a specific project
npx tsx scripts/export-memories.ts "" all-project.json --project=my-app

按类型导出

bash
# Export only discoveries
npx tsx scripts/export-memories.ts "type:discovery" discoveries.json

# Export only bug fixes
npx tsx scripts/export-memories.ts "type:bugfix" bugfixes.json

按日期范围导出

导出后你可以筛选导出的内容:

bash
# Export all memories, then filter manually with jq
npx tsx scripts/export-memories.ts "" all-memories.json
cat all-memories.json | jq '.observations |= map(select(.created_at_epoch > 1700000000000))' > recent-memories.json

合并多个导出

bash
# Export different topics
npx tsx scripts/export-memories.ts "windows" windows.json
npx tsx scripts/export-memories.ts "linux" linux.json

# Import both
npx tsx scripts/import-memories.ts windows.json
npx tsx scripts/import-memories.ts linux.json

故障排除

未找到数据库

❌ Database not found at: /Users/you/.claude-mem/claude-mem.db

解决方案: 确保已安装 claude-mem 并至少运行过一次。

未找到导入文件

❌ Input file not found: windows-memories.json

解决方案: 检查文件路径。如有需要,使用绝对路径。

部分导入

如果导入在中途失败,事务将回滚——您的数据库保持不变。修复问题后请重试。

贡献内存集

如果你已经输出了他人可能受益的宝贵知识:

  1. shared-memories/ 目录下创建一个 PR
  2. 包含一个描述导出内容的自述文件
  3. 用相关关键词标记(windows、linux、bug修复等)
  4. 社区成员然后可以导入你的知识!

有用出口的例子

Windows 兼容性知识:

bash
npx tsx scripts/export-memories.ts "windows compatibility installation" windows-fixes.json

渐进披露架构:

bash
npx tsx scripts/export-memories.ts "progressive disclosure architecture token" pd-patterns.json

错误修复模式:

bash
npx tsx scripts/export-memories.ts "bugfix error handling" bugfix-patterns.json

性能优化:

bash
npx tsx scripts/export-memories.ts "performance optimization caching" perf-tips.json