sjh9714/dsh-movein
Migrate your whole Claude Code or Codex setup into DeepSeek Harness (DSH) with one command. Import skills, slash commands, MCP servers, hooks, subagents, permission rules.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
dsh-movein
一条命令,把整套 Claude Code 配置搬进 DeepSeek Harness (DSH)。技能、MCP、hooks、全局指令一起到位,从 Claude Code 拎包入住。

dsh plugin --profile web add dsh-movein
重启 dsh web 后说「帮我把 Claude Code 的配置搬过来」即可,插件注册了 movein_from_claude_code 工具,默认预演。
也可以独立运行,不装插件。
npx dsh-movein # 预演,先看搬家清单
npx dsh-movein --apply # 正式入住
npx dsh-movein doctor # 搬完随时体检
实测兼容性对照表见 docs/compat.md,每类资产在 DSH 里到底会怎样,按 rc.6 源码逐项验证,含无法自动化的部分。
能搬什么
| 资产 | 怎么搬 |
|---|---|
| 项目 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 技能 |
斜杠命令(.claude/commands) | 转换为用户可调用的 DSH 技能,/name 照常用 |
| 权限规则 | deny 与 ask 通过配套插件 dsh-movein-permissions 在 tools/pre-execute 强制执行,无法映射的规则逐条列进迁移差异报告,绝不静默丢弃。想用 dsh-permission-rules 引擎的话,--emit-rules 可导出其 YAML 格式 |
会话历史不在范围内,请配合 dsh-chat-import 使用。
从 Codex 搬入
npx dsh-movein --from codex # 预演
npx dsh-movein --from codex --apply # 搬入
改扫 ~/.codex:AGENTS.md 链接为 ~/.dsh/AGENTS.md,自定义 prompts 转换为用户可调用技能,config.toml 里的 mcp_servers 转成 dsh-mcp-client 配置行。会话请配合 dsh-chat-import,approval_policy 与沙箱设置留给 DSH 预设。下一步是 opencode 和 pi,来 #3 说说你的配置长什么样。
反向搬家(双栖)
在 DSH 里长出来的技能可以搬回去。
npx dsh-movein --reverse # 看看有什么能搬回去
npx dsh-movein --reverse --apply # 搬回 Claude Code
DSH 原生技能落到 .claude/skills(符号链接,两边保持最新)。当年从 Claude Code 搬来的资产会被识别并跳过,它们从来没离开过。两个工具都用,配置只维护一套。
搬完之后
npx dsh-movein doctor
搬家体检,随时可跑。检查每个搬过去的资产是否健在、有没有技能会被 DSH 的 YAML 解析器静默丢弃(#1401,详见 docs/skill-vanish.md)、cordis.patch.yml 引用的包是否可解析(解析不到 dsh 会直接无法启动),以及有没有「静默死亡」的 hook:matcher 大小写匹配不上(#582)、事件不在桥接的 7 个之内、或 type 不是 command 被桥直接跳过。
搬坏了就 npx dsh-movein restore,每次写入前都自动备份到 ~/.dsh/movein-backups/。
设计原则
- 默认 dry run,不加
--apply不写任何文件 - 每次写入
cordis.patch.yml前自动备份,restore一键回滚 - 零依赖,纯 Node,代码量小到可以先读完再跑
- 重复执行安全,生成块原地替换,自己写的配置行不受影响
- 权限迁移出差异报告(几条生效、几条映射不了都列出来),fail closed 优先于静默转换
- 预演阶段扫描 hook 命令里的未知环境变量,搬完才炸不如搬前就警告
- 密钥永不写入生成的 YAML,
${VAR}转成process.env引用,疑似明文密钥预演即告警 - 每次搬家记录 manifest(
~/.dsh/movein-manifest.json),「这个技能从哪来」永远可查 - 所需包按宿主 dsh 版本锁定安装,解析不到的包绝不写进配置(那会让 dsh 启动直接失败)
每请求 token 账单
搬进来的技能不是免费的,技能目录以 system-reminder 注入每个请求,固定 143 token,每个技能约 28 token。搬家前先精简,实测数据与复现脚本见 docs/token-bill.md。
相关
搬完家看看钱花在哪:dsh-lean 逐请求审计会话的缓存命中拆分,并把 DSH 提示词前缀压掉 53%。npx dsh-lean audit,什么都不装。
许可
MIT
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
저장소가 MIT 라이선스를 선언했습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.