DeepSeek Harness 插件

dsh-claude-in

让 DeepSeek Harness 打开工作区时自动载入 Claude Code 配置:Skills/Rules/Hooks/Agents 四样资产,固定双位置(工作区自身 .claude + ~/.claude)运行时直读、零写入。Claude Code 兼容层。(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ShinewineW/dsh-claude-in
最近更新
2026年8月16日
分类
工具与能力
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ShinewineW/dsh-claude-in
插件名:dsh-claude-in
作者:ShinewineW

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-claude-in

English | 简体中文

![GitHub release](https://github.com/ShinewineW/dsh-claude-in/releases) ![License](LICENSE) ![DeepSeek Harness plugin](https://github.com/topics/dsh-plugin)

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 Hookshooks.jsonsettings.jsonsettings.local.json映射到 DSH 生命周期事件
Agents.claude/agents/**/*.md~/.claude/agents/**/*.mdAgent 目录与 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

发现模型

插件只使用两个发现入口:

1. 当前 DSH 工作区直属的 .claude 2. ~/.claude

插件不会扫描父目录或其他文件系统位置。从项目子目录启动的会话不会继承上级目录中的 .claude

发现目录内的显式引用仍然有效。Skill 与 Agent 目录中的符号链接会被跟随,Rule @import 也可以解析发现入口之外的文件或目录。这些引用属于资产的显式声明,不会扩大自动发现范围。

运行机制

Rules

默认情况下,不包含 pathsglobs 的 Rules 会进入会话基线;alwaysApply: true 可以显式声明同样的行为。路径规则在 DSH 的 readwriteedit 工具触达匹配文件后注入,每个会话只注入一次。

项目 Rules 与用户 Rules 会合并加载。项目 Rules 排在前面,并在上下文预算不足时优先保留。

Skills

每个合法的 SKILL.md 都会注册到 DSH skill service。Skill 被调用时读取原始文件,因此所有更新仍保留在 .claude 中,不会产生受插件管理的副本。

同名 Skill 的优先级从高到低为:

1. 项目 .dsn/skills 2. 用户 ~/.claude/skills 3. 项目 .claude/skills

Hooks

当前支持以下 Claude command Hook 事件:

  • SessionStart
  • UserPromptSubmit
  • PreToolUse
  • PostToolUse
  • Stop
  • SubagentStart
  • SubagentStop

hooks.jsonsettings.jsonsettings.local.json 中的 Hook 组按此顺序追加。项目 Hooks 先于用户 Hooks 执行。命令执行前会根据当前工作区解析 ${CLAUDE_PROJECT_DIR}${CLAUDE_PLUGIN_ROOT}

插件支持阻塞退出码 2permissionDecisionadditionalContext。非 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

claudeDiradaptDir 只接受一个相对目录名,不接受绝对路径或目录穿越。

安全模型

Claude 资产以只读方式加载,但 command Hooks 会执行项目级和用户级配置中的 shell 命令。项目 Hook 的信任边界与 Claude Code 中信任该工作区后的行为一致。

项目级 Hooks 可以单独关闭:

# .dsn/dsh-claude-in.yml
loadHooks: false

显式 Skill 软链和 Rule imports 可以引用 .claude 之外的内容,相应目标也属于配置的信任范围。

已知限制

  • 仅支持 command Hooks 和文档列出的生命周期事件。
  • updatedInputsystemMessageupdatedToolOutput 等 Hook 输出不会生效。
  • Agent 的 modeltools 字段会包含在桥接定义中,但不会成为 DSH 原生运行时强制限制。
  • 路径规则在匹配的 readwriteedit 返回后注入,无法追溯约束第一次已经完成的写入或编辑。
  • Shell 命令内部发生的文件访问无法参与路径规则匹配。
  • Rule 与 Agent 基线使用短期元数据缓存,而不是文件级 watcher。

开发

npm ci
npm test
npm run build
npm pack --dry-run

构建过程完全自包含,不依赖 DeepSeek Harness 源码 checkout。

License

[BSD-3-Clause](LICENSE)。Hook 执行语义改写自同样采用 BSD-3-Clause 的 @deepseek-ai/dsh-hooks-claude-code