dsh-claude-in
by ShinewineW
DeepSeek Harness只读Claude代码兼容桥:从.claude导入技能、规则、命令钩子和代理为SSOT。
Read-only Claude Code compatibility bridge for DeepSeek Harness: Skills, Rules, command Hooks, and Agents from .claude as SSOT.
安装
dsh plugin --profile web add github:ShinewineW/dsh-claude-inGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
English | 简体中文
在 DeepSeek Harness 中直接复用已有的 Claude Code 工作区,无需维护第二份配置。
dsh-claude-in 在运行时从 .claude 读取 Rules、Skills、command Hooks 和 Agent 定义。源文件始终保持不变,使 .claude 成为 Claude Code 与 DSH 共享的唯一真源。
主要特性
- 无需迁移:运行时读取 Claude 资产,不复制到 DSH 专用文件。
- 项目级与用户级配置:同时加载当前工作区
.claude和~/.claude。 - 原生 DSH 集成:Skills 接入 DSH skill service,Rules 注入会话,command Hooks 映射到 DSH 事件。
- 保留显式引用:Skill 软链与 Rule imports 可以继续指向发现入口之外的目标。
- 独立适配层:DSH 专属调整放在
.dsn,不修改 Claude 资产。
支持的资产
| Claude Code 资产 | 来源 | DSH 中的行为 |
|---|---|---|
| Rules | .claude/rules/**/*.md、~/.claude/rules/**/*.md |
基线指令与路径规则注入 |
| Skills | .claude/skills/**/SKILL.md、~/.claude/skills/**/SKILL.md |
原生 DSH Skills,调用时读取源文件 |
| Command Hooks | hooks.json、settings.json、settings.local.json |
映射到 DSH 生命周期事件 |
| Agents | .claude/agents/**/*.md、~/.claude/agents/**/*.md |
Agent 目录与 claude-agent-* Skills |
会话历史、MCP 配置、Claude Plugins、Commands、Memory 以及直接注入 CLAUDE.md 不在本插件范围内。
安装
从 GitHub 源码安装
dsh plugin --profile web add github:ShinewineW/dsh-claude-in#v0.1.0
Git 安装通过 prepare 脚本从源码构建。pnpm 10 及以上版本可能要求在目标 profile 中显式允许构建:
# $DSH_HOME/profiles/web/pnpm-workspace.yaml
allowBuilds:
dsh-claude-in: true
加入配置后重新执行安装命令即可。
从预构建 Release 安装
预构建包不需要安装时构建权限:
curl -LO https://github.com/ShinewineW/dsh-claude-in/releases/download/v0.1.0/dsh-claude-in-0.1.0.tgz
dsh plugin --profile web add ./dsh-claude-in-0.1.0.tgz
发现模型
插件只使用两个发现入口:
- 当前 DSH 工作区直属的
.claude ~/.claude
插件不会扫描父目录或其他文件系统位置。从项目子目录启动的会话不会继承上级目录中的 .claude。
发现目录内的显式引用仍然有效。Skill 与 Agent 目录中的符号链接会被跟随,Rule @import 也可以解析发现入口之外的文件或目录。这些引用属于资产的显式声明,不会扩大自动发现范围。
运行机制
Rules
默认情况下,不包含 paths 或 globs 的 Rules 会进入会话基线;alwaysApply: true 可以显式声明同样的行为。路径规则在 DSH 的 read、write 或 edit 工具触达匹配文件后注入,每个会话只注入一次。
项目 Rules 与用户 Rules 会合并加载。项目 Rules 排在前面,并在上下文预算不足时优先保留。
Skills
每个合法的 SKILL.md 都会注册到 DSH skill service。Skill 被调用时读取原始文件,因此所有更新仍保留在 .claude 中,不会产生受插件管理的副本。
同名 Skill 的优先级从高到低为:
- 项目
.dsn/skills - 用户
~/.claude/skills - 项目
.claude/skills
Hooks
当前支持以下 Claude command Hook 事件:
SessionStartUserPromptSubmitPreToolUsePostToolUseStopSubagentStartSubagentStop
hooks.json、settings.json、settings.local.json 中的 Hook 组按此顺序追加。项目 Hooks 先于用户 Hooks 执行。命令执行前会根据当前工作区解析 ${CLAUDE_PROJECT_DIR} 和 ${CLAUDE_PLUGIN_ROOT}。
插件支持阻塞退出码 2、permissionDecision 和 additionalContext。非 command 类型 Hook 会被跳过并记录警告。
Agents
Agent 定义会进入轻量会话目录,同时注册为 claude-agent-<name> Skills。调用对应 Skill 时,插件从原始 Markdown 文件读取 Agent 定义和 system prompt,并交给 DSH subagent 工作流使用。
项目级 Agent 与用户级 Agent 同名时,项目级定义优先。
.dsn 项目适配
DSH 专属行为可以在不修改 Claude 资产的情况下单独配置:
# .dsn/dsh-claude-in.yml
enabled: true
loadRules: true
loadSkills: true
loadAgents: true
loadHooks: true
hooks:
PreToolUse:
- from: "npx tsc --noEmit"
to: "/opt/dsh/tsc-check.sh"
Hook 适配采用命令文本精确匹配,只替换命令本身,不改变事件、matcher、timeout 或执行语义。
DSH 专属 Skills 可以放在 .dsn/skills/<name>/SKILL.md。插件不会创建或修改 .dsn 文件。
配置
默认配置等价于:
enabled: true
claudeDir: ".claude"
adaptDir: ".dsn"
loadRules: true
rulesMaxBytes: 131072
ruleMaxSourceBytes: 65536
ruleImportMaxDepth: 8
defaultAlwaysApply: true
loadSkills: true
loadAgents: true
loadHooks: true
hookTimeoutMs: 600000
stderrSummaryMaxChars: 500
claudeDir 和 adaptDir 只接受一个相对目录名,不接受绝对路径或目录穿越。
安全模型
Claude 资产以只读方式加载,但 command Hooks 会执行项目级和用户级配置中的 shell 命令。项目 Hook 的信任边界与 Claude Code 中信任该工作区后的行为一致。
项目级 Hooks 可以单独关闭:
# .dsn/dsh-claude-in.yml
loadHooks: false
显式 Skill 软链和 Rule imports 可以引用 .claude 之外的内容,相应目标也属于配置的信任范围。
已知限制
- 仅支持 command Hooks 和文档列出的生命周期事件。
updatedInput、systemMessage、updatedToolOutput等 Hook 输出不会生效。- Agent 的
model与tools字段会包含在桥接定义中,但不会成为 DSH 原生运行时强制限制。 - 路径规则在匹配的
read、write或edit返回后注入,无法追溯约束第一次已经完成的写入或编辑。 - Shell 命令内部发生的文件访问无法参与路径规则匹配。
- Rule 与 Agent 基线使用短期元数据缓存,而不是文件级 watcher。
开发
npm ci
npm test
npm run build
npm pack --dry-run
构建过程完全自包含,不依赖 DeepSeek Harness 源码 checkout。
License
BSD-3-Clause。Hook 执行语义改写自同样采用 BSD-3-Clause 的 @deepseek-ai/dsh-hooks-claude-code。
原始 README: https://github.com/ShinewineW/dsh-claude-in/blob/master/README.zh.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制