Agent portability
Move your agents without losing who they are.
Nomad carries an agent's instructions, persona, memory, skills, tools and routines from one platform to another. It shows you what will transfer before it touches a file, and keeps a backup after.
The migration preview here runs Nomad's real compatibility engine on a sample agent. Change the platforms to see it update.
- Identity (1)Supported with conversion
- Instructions (2)Fully supported
- Memory (5)Supported with conversion
- Skills (1)Fully supported
- Tools (1)Supported with conversion
- Models (1)Supported with conversion
- Permissions (2)Supported with conversion
- Workflows (1)Unsupported
Needs attention: Workflows: Claude Code has no place for 1 item, so it is not moved. Nomad keeps a copy and gives you steps to set it up another way.
Support level for Claude Code: partial
How it works
A migration you can read before you run it.
Copying instruction files is the easy part. Nomad maps each platform's structure into a common format, then writes the closest faithful version at the destination and tells you exactly where it could not.
- 01
Read the agent where it lives
Nomad finds OpenClaw, Claude Code, Codex and Hermes agents on your machine and reads instructions, persona, memory, skills, tools, routines and permissions into one portable format.
- 02
See what will transfer
Before anything changes you get a preview: what moves as is, what gets converted, what has no equivalent at the destination, which files change and which permissions differ.
- 03
Resolve conflicts on your terms
Merge keeps everything already at the destination. Copy creates a separate agent. Replace overwrites, and only after you approve exactly what it touches.
- 04
Apply, verify, keep a receipt
Writes are atomic and backed up first. Nomad reads the result back to verify it, records a receipt, and can restore the previous state in one step.
What travels
An agent is more than its system prompt.
Every part is kept in the Universal Agent Format: versioned, validated JSON with Markdown for anything you would want to read.
Read the format- Identity
- Name, persona, tone and a permanent agent id, so the same agent is recognised on every platform.
- Instructions
- System prompts, AGENTS.md style rules, conventions and slash commands.
- Memory
- Profile, preferences, facts, project context and daily logs, kept as separate entries with their origin.
- Skills
- Agent Skills folders with their scripts and files, converted between skills, commands and prompts.
- Tools
- MCP servers with their configuration. Credentials become references you reconnect, never copied values.
- Routines
- Scheduled jobs with their cron expression and timezone. Always imported paused.
- Permissions
- Allow, ask and deny rules mapped to the destination. Nomad never widens what an agent may do without asking.
Platforms
Honest support labels.
Each integration declares what it can read and write per category. Full and partial adapters write files directly, and guided ones prepare a kit you finish by hand because the platform offers no import.
| Platform | Support | What Nomad works with |
|---|---|---|
| OpenClaw | partial | Reads and writes OpenClaw agents, workspaces, memory, skills, cron jobs and per agent model and tool settings. |
| Claude Code | partial | Reads and writes user (~/.claude) and project (.claude/) configuration, subagents, skills, slash commands, permissions and MCP servers. |
| Codex CLI | partial | Reads and writes AGENTS.md, config.toml (model, approval policy, sandbox, MCP servers), skills and custom prompts. |
| Hermes Agent | partial | Reads and writes Hermes profiles: persona, MEMORY.md and USER.md entries, skills, MCP servers, cron jobs and command allowlists. |
| Agent folder | full | An unpacked Nomad package, or any folder of Markdown agent files (AGENTS.md, SOUL.md, MEMORY.md, skills/). Lossless for packages. |
| Cursor | partial | Project rules in .cursor/rules (MDC), legacy .cursorrules and AGENTS.md, plus .cursor/mcp.json. |
| Windsurf | partial | Workspace rules in .windsurf/rules and the legacy .windsurfrules file. |
| Cline | partial | Workspace rules in .clinerules (file or folder). |
| Roo Code | partial | Rules in .roo/rules and project MCP servers in .roo/mcp.json. |
| Continue | partial | Rules in .continue/rules (Markdown with frontmatter). |
| OpenCode | partial | AGENTS.md, agent definitions in agent/, and MCP servers in opencode.json. |
| Goose | partial | .goosehints instructions and extensions in config.yaml. |
| Aider | partial | CONVENTIONS.md loaded through the read list in .aider.conf.yml. |
| Gemini CLI | partial | GEMINI.md context files and MCP servers in settings.json. |
| Hosted and frameworks | guided | ChatGPT, Claude (claude.ai), Gemini, Grok, Perplexity, CrewAI, LangGraph, LangChain, AutoGen, Semantic Kernel, PydanticAI, Agno, Mastra, Dify, Flowise, n8n, Letta |
Safety
Built so a migration cannot quietly go wrong.
Moving an agent means touching its credentials, its permissions and files you care about. Nomad treats each of those as a first class concern.
Security model- Local first. Nothing is uploaded; there is no account.
- Secrets are detected and redacted before export, import and migration.
- The source agent is never modified.
- Every migration is a transaction with a backup and a rollback.
- Files you edited after Nomad wrote them are never overwritten silently.
- Packages are checked for path traversal, symlinks, bombs and tampering.
For developers
The same engine everywhere.
The web app, the CLI and the MCP server share one migration engine. New platforms plug in through the adapter SDK and its contract tests.
# guided: pick an agent, pick where it goes npx thenomad # or in one line, with a short preview first npx thenomad move openclaw claude-code # save it to a file, open it anywhere npx thenomad move openclaw ./kestrel.nomad npx thenomad move ./kestrel.nomad codex