memcode docs
Agents

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 migrate

Point it elsewhere only if your OpenClaw state lives in a non-standard directory:

memcode claw migrate /path/to/.openclaw

There 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 installLands in
Channels, bot tokens and allow-listsgateway.yaml + the global .env
Provider API keys like OPENAI_API_KEYthe global .env, under the same names
Skills, any SKILL.md directory~/.memcode/skills
Memory, your long-term memory entriesglobal ~/.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 automationsadd/ 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.

On this page