使用说明
oc转换
转换 克劳德代码 配置(设置、子代理、MCP、技能)到 OpenCode 配置+代理+技能。
- 输入(克劳德):
- 设置
~/.claude/settings.json~/.claude/settings.local.json./.claude/settings.json
- 代理
~/.claude/agents/*.(json|md)./.claude/agents/*.(json|md)
- 技能
~/.claude/skills/<skill-name>/SKILL.md./.claude/skills/<skill-name>/SKILL.md
- 主控程序
~/.mcp.json./.mcp.json
- 内存/规则(可选)
CLAUDE.md.claude/CLAUDE.mdCLAUDE.local.md.claude/rules/*.md.cursor/rules/*.md.cursor/rules/*.mdc
- 设置
- 输出(OpenCode):
- 配置:
opencode.json - 代理人:
.opencode/agent/<agent-name>.md - 技能:
.opencode/skill/<skill-name>/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→ OpenCodelocalhttp→ OpenCoderemoteenvironment/headers/url/command/args转换env插值(见下文)
- 技能:
- 写
.opencode/skill/<skill-name>/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允许/拒绝。
- Claude可以指定域(例如。
重写
如果目标文件已存在(opencode.json 或代理降价),CLI将 警告 并在覆盖之前询问。
开发/建造
# Install deps
bun install
# Dev (runs directly with Bun)
bun run start:dev
# Bundle for publishing (tsup)
bun run build