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.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-movein
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:sjh9714/dsh-movein
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time. Only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Move your whole Claude Code setup into DeepSeek Harness (DSH) with one command. Skills, MCP servers, hooks and instructions arrive together, so DSH feels like home from the first prompt.
从 Claude Code 拎包入住 DSH。一条命令搬完技能、MCP、hooks 和全局指令。

npx dsh-movein # dry run, shows the moving estimate
npx dsh-movein --apply # actually move in
Or install it as a DSH plugin and ask the agent to do the move for you:
dsh plugin --profile web add dsh-movein
Restart dsh web, then say "move my Claude Code setup over". The plugin exposes a movein_from_claude_code tool (dry run by default, apply=true to move).
📦 dsh-movein · Claude Code -> DeepSeek Harness moving estimate · 拎包入住
→ CLAUDE.md (global) .............. link ~/.dsh/AGENTS.md -> ~/.claude/CLAUDE.md
→ skill computer-use .............. link -> ~/.dsh/skills/computer-use
→ skill design-taste-frontend ..... link -> ~/.dsh/skills/design-taste-frontend
→ MCP servers + hooks ............. write generated block into ~/.dsh/cordis.patch.yml
found: 4 skills · 3 MCP servers · 1 hook configs · 5 subagents · 878 sessions
The full Claude Code → DSH compatibility matrix documents what every asset type does in DSH, measured against the source, including the parts no tool can automate. 完整的实测兼容性对照表见 docs/compat.md。
What moves
| Asset | How |
|---|---|
Project CLAUDE.md |
Nothing to do. DSH reads it natively |
Global ~/.claude/CLAUDE.md |
Linked to ~/.dsh/AGENTS.md |
Skills (.claude/skills) |
Symlinked into DSH skill roots. The SKILL.md format is compatible as is |
MCP servers (.mcp.json) |
Converted to dsh-mcp-client rows in ~/.dsh/cordis.patch.yml. Tool names (mcp__server__tool) stay identical |
Hooks (settings.json) |
Wired through the first party dsh-hooks-claude-code bridge, your hooks config runs unchanged |
Subagents (.claude/agents) |
Converted to DSH skills, the system prompt becomes the skill body |
Permission rules (settings.json) |
deny and ask rules enforced at DSH's tools/pre-execute gate via the companion dsh-movein-permissions plugin. allow rules stay with the DSH preset |
Skills are symlinked by default so edits keep flowing both ways. Pass --copy for real copies.
${VAR} values in MCP env become process.env references, secrets are never inlined into the generated YAML.
What does not move
- Sessions. Out of scope here. For conversation history see dsh-chat-import.
Roadmap
| Next | What |
|---|---|
| Reverse moving day | Export DSH-born skills and config back to Claude Code, dual boot instead of a one way move |
--watch |
Keep both sides in sync as your configs keep changing |
| More origins | Codex and Gemini CLI setups moving into DSH the same way |
A thumbs up on an issue is a vote for what ships next. Star the repo to follow along, releases land fast here (three shipped on day one). 计划中:反向搬家(DSH 配置导回 Claude Code,双栖不二选)、--watch 双向同步、支持从 Codex/Gemini CLI 搬入。
See also
- dsh-handbook chapter 1 has a good "dsh vs Claude Code" comparison, and its ecosystem chapter lists dsh-movein for the migration path.
Verify
dsh --profile web --dump-config | grep -E "mcp-|cc-hooks"
Then restart dsh web. Counted, scanned and moved on this exact layout against dsh 0.1.0-rc.6.
Notes
- Migration diff report. Permission rules are never converted silently. The report says how many deny and ask rules are enforced, lists every rule that has no DSH-side tool to map to, and notes that
*patterns match as a superset. Fail closed beats fail open. - Hook environment scan. The dry run scans hook commands for env vars DSH will not provide (
$CLAUDE_PROJECT_DIRand$CLAUDE_PLUGIN_ROOTare substituted by the bridge, anything else unknown gets a warning) so hooks do not silently break on first fire. - Manifest. Every applied move is recorded in
~/.dsh/movein-manifest.jsonwith source and destination, so "where did this skill come from" stays answerable. - Dry run is the default. Nothing is written without
--apply. - Re-running is safe. Existing links are skipped and the generated YAML block is replaced in place, your own rows are preserved.
- Needed packages (
dsh-hooks-claude-code,dsh-hook-protocol) are installed into the profile automatically, pinned to your dsh version. - DSH is a developer preview. When plugin contracts change we patch fast.
中文说明
dsh-movein 把你的 Claude Code 配置一次性搬进 DeepSeek Harness。
npx dsh-movein # 预演,先看搬家清单
npx dsh-movein --apply # 正式入住
也可以装成 DSH 插件,直接让 agent 帮你搬:
dsh plugin --profile web add dsh-movein
重启 dsh web 后说"帮我把 Claude Code 的配置搬过来"即可(movein_from_claude_code 工具,默认预演)。权限规则迁移会输出差异报告(几条原样生效、几条无法映射都列出来),hooks 里引用的未知环境变量在预演阶段就会警告,每次搬家都记录 manifest 便于溯源。
搬什么
- 项目
CLAUDE.md不用搬,DSH 原生就读 - 全局
~/.claude/CLAUDE.md链接为~/.dsh/AGENTS.md - 技能目录符号链接进 DSH 技能根,
SKILL.md格式直接兼容 .mcp.json自动转换为dsh-mcp-client配置行,工具名mcp__server__tool完全一致hooks通过官方dsh-hooks-claude-code桥原样运行- 子代理(
.claude/agents)自动转换为 DSH 技能 - 权限规则的
deny与ask通过配套插件 dsh-movein-permissions 在tools/pre-execute强制执行
会话历史不在范围内,请配合 dsh-chat-import 使用。
默认预演,不加 --apply 不写任何文件。重复执行安全,生成块原地替换,你自己的配置行不受影响。
License
MIT
Links
More in this category
strukto-ai/mirage#dsh★ 3425
Swaps the filesystem and bash providers for a mirage virtual workspace: file tools and shell commands run over mounted resources (RAM, S3, Redis, Slack, Gmail, Notion, Postgres) instead of the host disk, with per-mount read/write/exec modes, per-command sandbox routing (monty, pyodide, quickjs in process; docker, e2b, daytona remote), and installed CLIs (git, gh, slack, linear, ntn, gws, or one you register) as head words in the virtual terminal.
hust-open-atom-club/oh-dsh★ 175
Community distribution: TUI, desktop, and Web UI as one bundle with layered installation.
Jayden-X-L/forkprobe★ 65
Compare multiple skills on the same task and pick the winner.
vlln/plugin-registry★ 39
Ecosystem infrastructure: a thin browser console for managing official repository plugins (zero patches) plus a make-dsh-plugin skill for guided plugin development.
forrestchang/dsh-multica-runtime★ 33
Run the dsh runtime on Multica.
DietCokewithSugar/dsh-user-experience★ 18
Finds potential UX issues in your project: automatically reviews React/TypeScript code, pinpoints each problem, and gives concrete suggestions.