OpenClaw
Move your OpenClaw install into memcode with one command: channels, API keys, skills, and memory.
memcode claw migrate moves your OpenClaw install into memcode. Run it with no arguments
and it reads OpenClaw's own default location:
memcode claw migratePoint it elsewhere only if your OpenClaw state lives in a non-standard directory:
memcode claw migrate /path/to/.openclawThere is a dedicated command per source (memcode hermes migrate for Hermes) rather than
one that guesses. If you moved between assistants the old install is still on
disk, and auto-detecting between two would quietly import the stale one.
What transfers
| From your OpenClaw install | Lands in |
|---|---|
| Channels, bot tokens and allow-lists | gateway.yaml + the global .env |
Provider API keys like OPENAI_API_KEY | the global .env, under the same names |
Skills, any SKILL.md directory | ~/.memcode/skills |
| Memory, your long-term memory entries | global ~/.memcode/memory.md |
Anything that cannot be carried automatically is reported as a note, never dropped silently.
Credentials
OpenClaw stores each channel's credential as a literal value, a $ENV
reference, or a { source: "env" } reference. The migration resolves all three
from the .env beside the config, and honors OPENCLAW_STATE_DIR and the legacy
~/.clawdbot path. Credentials behind an external secret provider and unset
environment references are reported so you can finish them by hand. WhatsApp's QR
session does not transfer to the Cloud API memcode uses.
Your memory comes over
OpenClaw remembers things across every conversation, and so does memcode. The
migration reads your OpenClaw memory (its MEMORY.md, USER.md, and the daily
notes in its workspace) and brings it into memcode's global memory, so the agent
still knows what it knew before: your preferences, the people and projects you
told it about, the facts you built up.
It all lands in ~/.memcode/memory.md, loaded into every session. Open that file
any time to read it, edit it, or add to it. Running memcode claw migrate again refreshes
what it imported instead of duplicating it. See Memory for how
memcode's global and per-project memory work.
Imported skills
Imported skills are third-party code. The migration copies them into
~/.memcode/skills and flags them so you can review them before trusting them,
and it never overwrites a skill you already have. A name collision keeps yours and
skips the import.
Open channels
If your OpenClaw config allows anyone (allow_from: ["*"]), the migration does
not bring the wildcard over. It is reported as a note instead. An open channel
hands an autonomous agent to anyone who can reach it, so memcode makes you opt into
that deliberately rather than inheriting it.
Review the result with memcode gateway setup, then run memcode gateway.
Your cron jobs and habits carry over
The commands you know are the commands that work: memcode gateway cron (or
automations) accepts the same verbs as openclaw automations — add/
create, list, get/show, edit, run, enable/disable, remove —
and the same schedule forms: --cron, --every, and one-shot --at.
(Canonically the command is memcode gateway schedule; the rest are aliases.)
The migration brings your automations with you where OpenClaw stores them readably (its cron jobs file). Jobs held in OpenClaw's internal database can't be read from outside, so those are listed in the migration notes with the exact command to recreate each one — nothing is silently dropped. See Examples for ready-made schedules — morning briefing, standup summary, health watch, and more.
MCP servers come too
Your mcp.servers block carries over into memcode's user-scope MCP config —
same command/args/env/url shape, available in every project. Per-server tool
filters and working directories don't have a memcode equivalent; they're listed
in the migration notes rather than silently dropped.
Your agent keeps its soul
SOUL.md and IDENTITY.md from your OpenClaw workspace become a memcode
agent — same SOUL.md filename, verbatim content, at
~/.memcode/agents/openclaw/SOUL.md. Bind a channel to it
(channels.<name>.agent: openclaw) and it's the assistant you had.