docs/public/usage/export-import.mdx
Share your claude-mem knowledge with other users! These scripts allow you to export specific memories (observations, sessions, summaries, and prompts) and import them into another claude-mem installation.
Searches the database using hybrid search (combines ChromaDB vector embeddings with FTS5 full-text search) and exports all matching:
Output is a portable JSON file that can be shared.
Privacy Note: Export files contain all matching memory data in plain text. Review exports before sharing to ensure no sensitive information (API keys, passwords, private paths) is included.
Imports memories with duplicate prevention:
Duplicate Detection Strategy:
claude_session_id (unique)sdk_session_id (unique)sdk_session_id + title + created_at_epoch (composite)claude_session_id + prompt_number (composite)# 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
Parameters:
<query> - Search query (uses hybrid semantic + full-text search)<output-file> - Output JSON file path--project=name - Optional: filter results to a specific projectExample Output:
š 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
# Import from an export file
npx tsx scripts/import-memories.ts windows-memories.json
Parameters:
<input-file> - Input JSON file (from export script)Example Output:
š¦ 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
If you run the import again on the same file, duplicates are automatically 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
Export your memories:
npx tsx scripts/export-memories.ts "windows" windows-memories.json
Share the JSON file via:
shared-memories/)Document what's included:
Download the export file to your local machine
Review what's in it (optional):
cat windows-memories.json | jq '.totalObservations, .totalSessions'
Import into your database:
npx tsx scripts/import-memories.ts windows-memories.json
Verify import by searching:
curl "http://localhost:37777/api/search?query=windows&format=index&limit=10"
{
"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 */ ]
}
ā Duplicate Prevention - Won't re-import existing records ā Transactional - All-or-nothing imports (database stays consistent) ā Read-only Export - Export script opens database in read-only mode ā Dependency Ordering - Sessions imported before observations/summaries ā Validation - Checks database exists before starting
# 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
# 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
You can filter the export after exporting:
# 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
# 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
Solution: Make sure claude-mem is installed and has been run at least once.
ā Input file not found: windows-memories.json
Solution: Check the file path. Use absolute paths if needed.
If import fails mid-way, the transaction is rolled back - your database remains unchanged. Fix the issue and try again.
If you've exported valuable knowledge that others might benefit from:
shared-memories/ directoryWindows Compatibility Knowledge:
npx tsx scripts/export-memories.ts "windows compatibility installation" windows-fixes.json
Progressive Disclosure Architecture:
npx tsx scripts/export-memories.ts "progressive disclosure architecture token" pd-patterns.json
Bug Fix Patterns:
npx tsx scripts/export-memories.ts "bugfix error handling" bugfix-patterns.json
Performance Optimization:
npx tsx scripts/export-memories.ts "performance optimization caching" perf-tips.json