dsh-claude-to-dsh
已验证dsh-claude-to-dsh · v0.1.2 · MIT
DeepSeek Harness plugin: a model-callable claude_to_dsh tool that migrates a Claude Code project into DeepSeek Harness (skills, commands, subagents, rules, memory) non-destructively.
安装
dsh plugin add dsh-claude-to-dsh 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
说明文档
dsh-claude-to-dsh
Migrate a Claude Code project into DeepSeek Harness. This plugin registers a
model-callable claude_to_dsh tool that discovers Claude Code artifacts
(.claude/skills, commands, agents, rules, CLAUDE.md/AGENTS.md) and
converts the automatable parts into the DeepSeek Harness .dsh/skills/ layout.
The conversion is non-destructive: it never writes into .claude/,
CLAUDE.md, AGENTS.md, settings.json, or .mcp.json; it only writes under
.dsh/ and produces a report plus a machine-readable manifest of every change.
Install
# from npm (recommended)
npm install -g @deepseek-ai/dsh
dsh plugin --profile web add dsh-claude-to-dsh
# or from this repository (use `file:` so @deepseek-ai/dsh-tools resolves)
dsh plugin --profile web add file:/path/to/deepseek-harness-plugins/dsh-claude-to-dsh
Restart the DSH session so the new bundle is composed.
Usage
claude_to_dsh(project: "/abs/path/to/claude-project", write: true)
Parameters
| Param | Type | Notes |
|---|---|---|
project |
string (required) | Absolute path to the Claude Code project root. |
write |
boolean | Default false (dry-run only). Set true to write converted files. |
force |
boolean | Default false. Overwrite existing converted files. |
noAdapt |
boolean | Default false. Copy skill bodies verbatim without adapting Claude-only syntax. |
What it converts
| Claude Code | DeepSeek Harness |
|---|---|
CLAUDE.md / AGENTS.md |
read natively — no conversion needed |
.claude/skills/<n>/SKILL.md |
.dsh/skills/<n>/SKILL.md (plus supporting files) |
.claude/commands/<n>.md |
.dsh/skills/<n>/SKILL.md |
.claude/agents/<n>.md (subagents) |
.dsh/skills/agent-<n>/SKILL.md (delegation recipe) |
.claude/rules/<n>.md |
.dsh/skills/rule-<n>/SKILL.md |
Frontmatter is normalized for DSH: name becomes kebab-case, a missing
description is derived from the body, when_to_use is merged into
description, and disable-model-invocation/user-invocable/metadata are
preserved. Claude-only fields and !command`` dynamic injection are recorded in
the report rather than silently lost.
What it does not automate
settings.json (permissions/hooks/env), .mcp.json, workflows/*.js,
output-styles/*.md, agent-memory/, and hooks/ have no direct DSH
equivalent and are reported for manual mapping. See the generated
.dsh/CLAUDE_TO_DSH_REPORT.md for the full list.
Output
.dsh/skills/…— converted skills.dsh/CLAUDE_TO_DSH_REPORT.md— human-readable record of every change.dsh/.claude-to-dsh-manifest.json— machine-readable source→target map
Requirements
python3on PATH (the bundled migration script is Python 3, stdlib only).