dsh-movein

by sjh9714

开发与运行时github 检测到 manifest package.json#dsh 社区精选 收录于 08-16

把整套 Claude Code 配置搬进 DSH:技能、MCP、hooks、子代理、权限规则,默认先出搬家清单预演并输出迁移差异报告;作为插件提供 movein_from_claude_code 工具,直接让 agent 帮你搬。

Move a whole Claude Code setup into DSH. Skills, MCP servers, hooks, subagents and permission rules, with a dry-run moving estimate and a migration diff report; installs as a plugin exposing a movein_from_claude_code tool so the agent can do the move for you.

安装

dsh plugin --profile web add github:sjh9714/dsh-movein

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

预览截图

dsh-movein 截图dsh-movein 截图dsh-movein 截图

README

目录

English

一条命令,把 Claude Code、Codex 或 OpenCode 配置搬进 DeepSeek Harness (DSH)。

先预演,再搬入。已有目标不会被覆盖。

dsh-movein 预演 Claude Code 资产搬入 DSH

选择来源

# Claude Code
npx dsh-movein
npx dsh-movein --apply

# Codex
npx dsh-movein --from codex
npx dsh-movein --from codex --apply

# OpenCode
npx dsh-movein --from opencode
npx dsh-movein --from opencode --apply

没有 --apply 时只预演。需要复制技能而不是符号链接时加 --copy。

在 DSH 内使用

dsh plugin --profile web add dsh-movein

重启 dsh web。插件会注册两个工具。

  • movein_from_claude_code
  • movein_from_opencode

两个工具默认都只预演,确认后传入 apply=true。

兼容范围

来源 搬入内容
Claude Code 全局与项目指令、技能、斜杠命令、MCP、已支持 hooks、子代理和可映射权限规则
Codex 全局 AGENTS.md、自定义 prompts 和 config.toml 中的 stdio MCP
OpenCode V1 或 V2 JSON 和 JSONC 中的指令、技能、命令、agents、本地与远程 MCP

完整兼容性表 会逐项说明来源路径、DSH 目标、保留行为和不支持内容。

把 OpenCode 作为来源

--from opencode 按 OpenCode 的优先级读取全局设置、OPENCODE_CONFIG、项目设置、.opencode 目录和 OPENCODE_CONFIG_DIR。项目配置从 Git 根目录向当前目录依次加载,然后以相同顺序加载 .opencode 配置。

支持 opencode.json 和 opencode.jsonc,包括注释和尾逗号。

  • skill 和 skills 目录搬成 DSH skills
  • agent 和 agents 文件转换为 DSH skills
  • command 和 commands 文件转换为用户可调用的 DSH skills
  • 内联 agents 和 commands 与文件资产采用同一转换
  • V1 agent 的 prompt 和 V2 agent 的 system 都成为 DSH skill 正文
  • 本地 MCP command 数组拆成 DSH stdio command 和 args
  • 远程 MCP 转成 streamable HTTP 配置
  • 同时支持 V1 MCP map 和 V2 mcp.servers map
  • 已禁用 MCP 不搬入,但会显示在报告中
  • {env:VAR} 保留为运行时 process.env.VAR 引用
  • {file:path} 保留供人工检查,dsh-movein 不会读取文件内容

项目 AGENTS.md 不用搬,DSH 原生读取。只有一个全局 instruction 文件且 ~/.dsh/AGENTS.md 不存在时才会建立链接。多个文件、glob、URL、OpenCode permissions 和 plugins 都只报告,不猜测转换。

任何 JSONC 无法解析时,--apply 会在首次写入前停止。

安全边界

  • 默认只预演
  • 已有目标跳过
  • Windows 拒绝创建符号链接时会自动改为复制,并在报告中注明
  • 每次写入前备份 cordis.patch.yml
  • npx dsh-movein restore 恢复最新备份
  • ~/.dsh/movein-manifest.json 记录来源和目标
  • 环境变量占位符保留为运行时引用
  • 预演会报告疑似明文密钥
  • sessions 不在范围内

搬完检查

npx dsh-movein doctor
dsh --profile web --dump-config | grep -E "mcp-|cc-hooks"

技能目录按 session 固定,所以搬完后请新建 DSH session。

Claude Code 双栖

DSH 原生技能可以搬回 Claude Code。从 Claude Code 搬来的资产会识别并跳过。

npx dsh-movein --reverse
npx dsh-movein --reverse --apply

反向搬家目前只支持 Claude Code。

Claude Code 到 OpenCode

需要完整 Claude Code 到 OpenCode 搬家路径的用户仍可使用兼容命令。

npx claude-to-opencode
npx claude-to-opencode --apply

如果只需要在 OpenCode 中运行 Claude Code 命令型 hooks,请使用独立的 opencode-claude-code-hooks plugin。

不搬内容

  • sessions
  • OpenCode permissions 和 plugins
  • Codex approval 与 sandbox policy
  • 多个 instruction 文件、glob 和远程 URL
  • 反向搬家时手写的 DSH MCP 与 hook 配置

会话历史请使用 dsh-chat-import。

项目状态

已在 DSH 0.1.0-rc.6 和 0.1.0-rc.7 完成端到端验证。CI 使用 npm ci 在 Linux、macOS 和 Windows 上运行同一套测试。

许可

MIT

原始 README: https://github.com/sjh9714/dsh-movein/blob/main/README.zh.md ↗