subagentport

Convert subagents between Claude Code, Codex, Cursor and OpenCode

Paste a subagent file from Claude Code, Codex, Cursor or OpenCode and get the other three formats, with every dropped field listed.

Lossless round trip for name (after normalization), description andprompt only. Everything else is best-effort and listed in the warnings panel.

What each tool calls a subagent

Claude Code and Cursor use Markdown with YAML frontmatter; the body is the system prompt. Codex uses a TOML file withdeveloper_instructions. OpenCode uses Markdown or a JSON agent entry with a prompt field.

ToolProject pathPrompt field
CC Claude Code.claude/agents/*body
CX Codex.codex/agents/*developer_instructions
CU Cursor.cursor/agents/*body
OC OpenCode.opencode/agents/*body

What converts cleanly

FieldStatus
nameNormalized (kebab or snake per target)
descriptionLossless
promptLossless (TOML escaping applied for Codex)
tools / permissionsApproximated per access profile; many knobs are tool-specific
modelNever auto-translated across vendors

Cursor shortcut

Cursor also reads .claude/agents/ and .codex/agents/ in addition to .cursor/agents/. Extra Claude-only fields when using Claude files in Cursor are not documented (unverified).

FAQ

Can I use one agent file for all four tools?
You can share name, description and prompt across tools, but each tool uses its own file format and path. Cursor also reads .claude/agents/ and .codex/agents/ for compatibility. Other fields are tool-specific and may be dropped or approximated when converting.
Does Cursor read Claude Code agents?
Cursor documents project .claude/agents/ and user ~/.claude/agents/ as subagent locations alongside .cursor/agents/. How Claude-only frontmatter fields are treated is not documented (unverified).
Why can Codex not make a read-only subagent?
Codex docs state custom agents inherit the parent permissions and sandbox. Instructions can ask an agent to avoid edits, but they do not create a separate read-only sandbox. The only per-agent capability reduction documented is features.shell_tool = false.
What happens to hooks and MCP servers?
Claude Code supports hooks and mcpServers in agent frontmatter. Codex, Cursor and OpenCode do not document equivalent per-agent fields in subagent files. The converter drops them with a warning and keeps values in trailing comments where the target format allows.
Is my file uploaded anywhere?
No. Conversion runs entirely in your browser on subagentport. Nothing you paste is sent to a server.