Install
openclaw skills install memo-bridgeThis skill should be used when the user wants to export, import, backup, migrate, or transfer AI memory/context between different AI tools. It handles memory extraction from tools like CodeBuddy, OpenClaw, Hermes Agent, Claude Code, and Cursor, and can import into any of these tools plus ChatGPT, Doubao (豆包), and Kimi. Trigger phrases include "记忆迁移", "导出记忆", "备份记忆", "memory migration", "memory export", "transfer context", "switch AI tool", "换工具", "迁移到", as well as any mention of moving preferences, context, or history between AI assistants.
openclaw skills install memo-bridgeMemoBridge extracts, standardizes, and migrates AI memories across tools and workspaces. AI assistants accumulate valuable context over time — user preferences, project history, knowledge progress, vocabulary lists, daily routines. This skill ensures none of that is lost when switching tools or machines.
Node.js >= 22.0.0 must be installed. The MemoBridge CLI is available at the project root.
| Tool | Extract | Import | Method |
|---|---|---|---|
| CodeBuddy | ✅ | ✅ | Direct file read (.codebuddy/ + .memory/) |
| OpenClaw | ✅ | ✅ | Direct file read (~/.openclaw/workspace/) |
| Hermes Agent | ✅ | ✅ | Direct file read (~/.hermes/memories/) |
| Claude Code | ✅ | ✅ | Direct file read (CLAUDE.md + ~/.claude/) |
| Cursor | ✅ | ✅ | Direct file read (.cursorrules + ~/.cursor/) |
| ChatGPT | ✅ (prompt) | ✅ | Prompt-guided export, instruction-based import |
| Doubao / 豆包 | ✅ (prompt) | ✅ | Prompt-guided export, instruction-based import |
| Kimi | ✅ (prompt) | ✅ | Prompt-guided export, context injection import |
Run the detect command to discover all AI tools on the system:
cd {project_root}
node dist/cli.js detect
This scans for local tools (CodeBuddy/OpenClaw/Hermes/Claude Code/Cursor) and lists cloud tools (ChatGPT/Doubao/Kimi) that require prompt-guided export.
For local tools (direct file access):
# CodeBuddy — auto-scans all workspaces
node dist/cli.js extract --from codebuddy -o ./memo-bridge.md
# CodeBuddy — specific workspace
node dist/cli.js extract --from codebuddy --workspace /path/to/project -o ./memo-bridge.md
# OpenClaw
node dist/cli.js extract --from openclaw -o ./memo-bridge.md
# Hermes Agent
node dist/cli.js extract --from hermes -o ./memo-bridge.md
# Claude Code
node dist/cli.js extract --from claude-code -o ./memo-bridge.md
# Cursor (with workspace for project rules)
node dist/cli.js extract --from cursor --workspace /path/to/project -o ./memo-bridge.md
For cloud tools (prompt-guided), generate the optimal export prompt:
node dist/cli.js prompt --for doubao
node dist/cli.js prompt --for kimi
node dist/cli.js prompt --for chatgpt
Then instruct the user to: copy the prompt → paste into the AI tool's chat → copy the AI's response → save as a file.
For file-based tools:
# To Claude Code (appends to CLAUDE.md)
node dist/cli.js import --to claude-code --input ./memo-bridge.md
# To Hermes Agent (auto-trims to 2200 UTF-8 bytes)
node dist/cli.js import --to hermes --input ./memo-bridge.md
# To OpenClaw (appends to MEMORY.md)
node dist/cli.js import --to openclaw --input ./memo-bridge.md
# To Cursor (requires --workspace)
node dist/cli.js import --to cursor --input ./memo-bridge.md --workspace /path/to/project
# To CodeBuddy
node dist/cli.js import --to codebuddy --input ./memo-bridge.md --workspace /path/to/project
For instruction-based tools:
# Generates text for user to paste into ChatGPT/Doubao/Kimi
node dist/cli.js import --to doubao --input ./memo-bridge.md
node dist/cli.js import --to chatgpt --input ./memo-bridge.md
node dist/cli.js import --to kimi --input ./memo-bridge.md
node dist/cli.js migrate --from codebuddy --to claude-code
node dist/cli.js migrate --from openclaw --to hermes
| Option | Description |
|---|---|
--workspace <path> | Specify a single workspace path |
--scan-dir <path> | Specify root directory for auto-discovery |
--output <path> | Output file path (default: ./memo-bridge.md) |
--input <path> | Input file path |
--dry-run | Preview mode, no actual writes |
--overwrite | Overwrite existing files instead of appending |
--verbose | Detailed output |
Third-party adapters can be registered at runtime via the public registry API — useful when a user has a proprietary or yet-unsupported tool:
import { extractorRegistry, importerRegistry, BaseExtractor } from 'memo-bridge';
class MyToolExtractor extends BaseExtractor {
readonly toolId = 'my-tool' as any;
async extract() { /* ... */ }
}
extractorRegistry.register('my-tool' as any, () => new MyToolExtractor());
See references/adapter-guide.md for the full three-step adapter recipe.
The standard interchange format is memo-bridge.md — Markdown with YAML front matter. See references/format-spec.md for the complete specification.
Key properties:
extensions section preserves tool-specific data
(Hermes skills, OpenClaw SOUL/DREAMS, …) across migrations without
polluting the common memory lists.X-API-Key,
database connection strings with embedded credentials).c:\program files can't bypass the
denylist./etc, /bin,
/usr, etc. — except OS-managed temp subtrees (/var/folders/,
/var/tmp/, /private/tmp/).--from / --to / --for args
are validated against the registered tool list before dispatch.--workspace or --scan-dir flags--dry-run firstTo build the CLI before first use:
cd {project_root}
npm install
npm run build
The project has 395 unit tests and a GitHub Actions CI that runs
lint → test → build on every push. To verify the local install:
npm test # ~500ms