Sokko Docs
CLI

Migrate a local agent

Move an agent you run on your own machine into Sokko — its keys, memory, and files — in one command.

If you already run an agent locally, sokko migrate moves it into a Sokko-hosted agent so it keeps running in the cloud. It brings three things across: your secrets, your memory, and your files.

🍪 sokko migrate
   🥠 secrets   12 vars from .env
   🧠 memory    8 items
   📦 files     34 files · 1.2 MB
   ✅ your agent is fully baked

Run it

sokko migrate

With no flags, the CLI walks you through it:

Pick or create the target agent

Choose one of your existing agents, or pick Create a new agent and go through the create flow.

It finds your local folder

Based on the agent's runtime, it looks in the usual spot (~/.openclaw, ~/.hermes, ~/.paperclip, ~/.opensre). Point it somewhere else with --path.

It sends three lanes

Secrets, memory, and files each go over separately (see below).

The three lanes

🥠 Secrets

Your root .env becomes per-key secrets.

🧠 Memory

MEMORY.md, USER.md, IDENTITY.md, and the memory/ folder go into Sokko Memory.

📦 Files

Everything else is bundled and uploaded to your agent's storage.

Try it safely first

Do a dry run to see exactly what would move — counts and the file list — with no network writes at all:

sokko migrate --dry-run

Useful flags

FlagMeaning
--instance <id>Migrate into a specific agent without the picker.
--path <dir>Use this local folder instead of the default.
--only secrets,memory,filesMove just the lanes you name.
--on-conflict skip|replaceFor secrets that already exist: keep or overwrite (default skip).
--createCreate a new agent instead of picking one.
--dry-runPreview only. Writes nothing.
--yesSkip prompts (for scripts).

What it will not upload

The files lane skips things that should not travel: private keys and certificates (*.pem, *.key, id_rsa*), anything that looks like a token or secret, .git/, node_modules/, caches, and very large files. Add a .sokkoignore file (same syntax as .gitignore) to skip more. Your .env is handled by the secrets lane, so it is never treated as a plain file.

Memory needs the add-on

Memory travels only if the memory add-on is on. If you have memory files but the add-on is off, migrate offers to turn it on rather than dropping them quietly. Turning it on costs money, so it always asks first — even with --yes — or you can pass --subscribe-memory monthly or --subscribe-memory annual. If you are not an owner, it prints a dashboard link and continues, reporting memory as skipped.

On this page