oc转换
转换 克劳德代码 配置(设置、子代理、MCP、技能)到 OpenCode 配置+代理+技能。
- 输入(克劳德):
- 设置 - ~/.claude/settings.json - ~/.claude/settings.local.json - ./.claude/settings.json - 代理 - ~/.claude/agents/*.(json|md) - ./.claude/agents/*.(json|md) - 技能 - ~/.claude/skills//SKILL.md - ./.claude/skills//SKILL.md - 主控程序 - ~/.mcp.json - ./.mcp.json - 内存/规则(可选) - CLAUDE.md - .claude/CLAUDE.md - CLAUDE.local.md - .claude/rules/*.md - .cursor/rules/*.md - .cursor/rules/*.mdc
- 输出(OpenCode):
- 配置: opencode.json - 代理人: .opencode/agent/.md - 技能: .opencode/skill//SKILL.md
用法
无需安装即可运行(推荐)
# Bun
bunx oc-convert
# Node
npx oc-convert您可以选择:
- 一切 (设置+代理+MCP+技能)
- 仅设置/仅代理/仅MCP/仅技能
- 要包含哪些文件
转换一个文件(非交互式)
# Convert one Claude agent file → one OpenCode agent markdown
bunx oc-convert --agent .claude/agents/my-agent.md
# Convert ONE Claude settings file → opencode.json
bunx oc-convert --settings .claude/settings.json
# Convert ONE Claude skill → one OpenCode skill folder
bunx oc-convert --skills .claude/skills/my-skill输出目录
默认情况下,输出会写入运行CLI的目录。在其他地方写作:
bunx oc-convert --output ./my-output-dir什么被转化(重要行为)
- 设置:
- permission → OpenCode权限映射(包括bash命令通配符) - 故意不延续模型 (Claude/OpenCode模型名称不同)
- 代理:
- 支持Markdown+frontmatter和JSON代理 - 故意不延续模型
- 主控程序:
- stdio → OpenCode local - http → OpenCode remote - environment/headers/url/command/args 转换env插值(见下文)
- 技能:
- 写 .opencode/skill//SKILL.md - OpenCode只能识别 name, description, license, compatibility, metadata 在YAML frontmatter中 - 克劳德的 allowed-tools 保存在 metadata.claudeAllowedTools 并作为简短的注释添加到正文中
Env插值转换(克劳德→ OpenCode)
克劳德风格的字符串如下:
"${API_BASE_URL:-https://api.example.com}/mcp"转换为OpenCode样式的令牌:
"{env:API_BASE_URL}/mcp"注:Claude的默认/回退(:-...)是 掉落 因为OpenCode不支持回退语法。
权限转换说明
- Bash命令权限:
- Bash(npm run lint) → "bash": { "npm run lint": "allow" } - Bash(git:*) → "bash": { "git *": "allow" }
- WebFetch:
- Claude可以指定域(例如。 WebFetch(domain:github.com)),但OpenCode只是工具级的。 - 我们将WebFetch规则转换为工具级别 webfetch 允许/拒绝。
重写
如果目标文件已存在(opencode.json 或代理降价),CLI将 警告 并在覆盖之前询问。
开发/建造
# Install deps
bun install
# Dev (runs directly with Bun)
bun run start:dev
# Bundle for publishing (tsup)
bun run build