Overview
What runelay migrate brings from each agent, and what stays behind.
runelay migrate reads the agents installed on your computer and sends their MCP servers, logins, memories, skills and global instructions to your runelay server in one go.
curl -fsSL runelay.com/cli | sh
runelay migrateIt logs in through the browser if needed, prints a summary per agent, asks once and sends everything. Then it registers runelay in the agents it can wire and opens /connectors/reconnect for any account that still needs a sign-in.
At a glance
| Agent | MCP servers | Logins | Memories | Global instructions | Skills | runelay connect |
|---|---|---|---|---|---|---|
| Claude Code | Yes | Yes | Yes | CLAUDE.md | Yes | Yes |
| Codex | Yes | Yes | Yes | AGENTS.md | Yes | Yes |
| Cursor | Yes | No, encrypted | No | No | Yes | Yes |
| Grok | Yes | Yes | No | AGENTS.md | Yes | Yes |
| Gemini | Yes | No | No | GEMINI.md | Yes | No |
| OpenCode | Yes | No | No | AGENTS.md | Yes | No |
Logins means OAuth tokens the agent already holds, so the account arrives connected. Servers that authenticate with headers arrive connected for every agent, because the headers come along with the server.
What comes along
- Remote MCP servers (a
urlorhttpUrl) become connections. Headers come with them, and${VAR}references are expanded from your shell environment on your computer before sending. Servers markedenabled: falseare skipped, and so are entries for runelay itself or Executor. - The same server in several agents becomes one connection. When more than one agent holds a login for it, runelay keeps the one with a refresh token, then the one that expires last.
- Memories keep their name, description and type. Memories listed under
## Regras de ouroin aMEMORY.mdarrive pinned. - Global instruction files become one pinned memory per agent, so every agent sees them. The block that
runelay pullmanages is left out. - Skills are folders with a
SKILL.md. The shared~/.agents/skillsfolder is read too. Duplicates across agents are merged, first one wins. - Running it again does not touch connections that already work.
What stays behind
- Local MCP servers (a
commandinstead of a URL) stay in the agent. The summary lists them as staying on the agent. Add them in the panel if you want them in runelay; that needsRUNELAY_ENABLE_STDIOon a server, or the desktop app. - Logins runelay cannot read: Cursor, Gemini and OpenCode accounts, and OAuth accounts in any agent that never signed in. They arrive as connections that ask for login, and the CLI opens
/connectors/reconnectto walk through them one tab at a time. - Servers on private addresses (
localhost, LAN) are skipped unless the server allows them withRUNELAY_ALLOW_PRIVATE_URLS. The CLI prints each skipped server with the reason. - Agent settings other than MCP servers, memories, skills and instructions (models, permissions, hooks) are not read.
After the migration
Many providers rotate the refresh token every time it is used. Once runelay refreshes a migrated token, the agent's copy may stop working and that agent asks for login again. The CLI names those accounts at the end.
To avoid two copies, run with --replace (or answer t at the prompt). After a successful import, runelay removes the migrated servers from each agent's config and leaves only the runelay entry. Local command servers are never removed.
| Flag | What it does |
|---|---|
--yes, -y | Skips the confirmation. Required without a terminal. |
--replace | Removes the migrated MCP servers from the agents after the import. |
On macOS, RUNELAY_SKIP_KEYCHAIN=1 skips reading logins from the Keychain. RUNELAY_MEMORY_DIR and RUNELAY_SKILLS_DIR replace the folders runelay reads memories and skills from; with RUNELAY_MEMORY_DIR set, global instruction files are not read.