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 — in the right tiers
OpenClaw's workspace memory migrates with its tiers kept straight:
- What the agent knows (workspace
MEMORY.mdand the dailymemory/*.mdfiles) becomes the migrated agent's own memory:~/.memcode/agents/openclaw/memory.md. It travels with that agent and never bleeds into your other agents. - What's true about you (
USER.md, plus yourAGENTS.mdoperating notes) goes to your user-global~/.memcode/memory.md, loaded into every session.
Open either file any time to read, edit, or add to it. Running
memcode claw migrate again refreshes the global import instead of
duplicating it, and never overwrites an agent memory file you already have. See
Memory for how memcode's memory tiers 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.