Migrate your project from Claude Code or Codex to DeepSeek Harness (DSH) — an interactive AI skill that detects existing configs, maps them to DSH's plugin composition model, and generates a complete cordis.yml.
- Detects
.claude/settings.json,.claude/hooks.json,.codex/hooks.jsonin your project - Extracts MCP server definitions, hook configurations, and permission preferences
- Generates a complete
cordis.ymlwith properly mapped plugin entries - Handles secrets safely — never inlines tokens, always uses
!!js process.env.VAR_NAME
| Source | MCP Servers | Hooks | Permissions | Instruction Files |
|---|---|---|---|---|
| Claude Code | ✅ | ✅ (7/30 events) | ✅ | ✅ (auto-compatible) |
| Codex | — | ✅ (5/10 events) | ✅ | ✅ (auto-compatible) |
git clone https://github.com/jingyan/migrate-to-dsh.git ~/tools/migrate-to-dsh
cp -r ~/tools/migrate-to-dsh/skill/ ~/.dsh/skills/dsh-migrate-from/The skill is auto-discovered at ~/.dsh/skills/ (rank 400) and available in all projects.
git clone https://github.com/jingyan/migrate-to-dsh.git /tmp/migrate-to-dsh
cp -r /tmp/migrate-to-dsh/skill/ .dsh/skills/dsh-migrate-from/Or with .agents/ convention:
cp -r /tmp/migrate-to-dsh/skill/ .agents/skills/dsh-migrate-from/git clone https://github.com/jingyan/migrate-to-dsh.git ~/tools/migrate-to-dsh
ln -s ~/tools/migrate-to-dsh/skill ~/.dsh/skills/dsh-migrate-fromThe skill appears in DSH's skill catalog once installed. Invoke with:
/dsh-migrate-from
Or the AI selects it automatically when you ask about migrating from Claude Code or Codex.
migrate-to-dsh/
├── README.md # This file
├── LICENSE # MIT
└── skill/ # The DSH skill (install this directory)
├── SKILL.md # Main skill instructions
├── agents/
│ └── openai.yaml # OpenAI/Codex agent interface
└── references/
├── claude-code-format.md # CC config format reference
├── codex-format.md # Codex config format reference
└── cordis-output-template.md # Generated cordis.yml examples
Install note: DSH discovers skills by finding SKILL.md at the root of a skill directory. The skill/ subdirectory in this repo IS the skill — copy or symlink it as ~/.dsh/skills/dsh-migrate-from/ (so DSH finds ~/.dsh/skills/dsh-migrate-from/SKILL.md).
You: /dsh-migrate-from
AI: I'll scan your project for Claude Code or Codex configurations...
Found:
- .claude/settings.json (2 MCP servers: github, tavily)
- .claude/hooks.json (3 events: PreToolUse, PostToolUse, Stop)
MCP Servers:
| Name | Transport | Command |
|---------|-----------|-------------------------------------------|
| github | stdio | npx -y @modelcontextprotocol/server-github |
| tavily | stdio | npx -y @tavily/mcp-server |
Hooks: 3 events configured (all bridgeable)
Sandbox: workspace-write + ask (default)
⚠️ Secrets detected — will be replaced with process.env references.
Ready to generate cordis.yml?
You: yes
AI: [generates complete cordis.yml]
| Config item | How it maps in DSH |
|---|---|
mcpServers entries |
One dsh-mcp-client plugin per server |
hooks.json (CC) |
dsh-hooks-claude-code bridge pointing to original file |
hooks.json (Codex) |
dsh-hooks-codex bridge pointing to original file |
| Permission mode | dsh-sandbox-policy + dsh-user-approval config |
CLAUDE.md / AGENTS.md |
Auto-loaded by DSH — no conversion needed |
- Only
command-type hooks are supported (nothttp/mcp_tool/prompt/agent) - Claude Code: 7 of 30 hook events are bridged
- Codex: 5 of 10 hook events are bridged
allowedTools/blockedToolshave no direct DSH file-level equivalent- Claude Code's layered config (user/project/system/policy) collapses to one file
MIT