RicardoYan/dsh-project-config ↗★ 0

dsh-project-config

Per-workspace subagents, commands, MCP servers and hooks for DSH from .dsh/settings.yml · 从 .dsh/settings.yml 为 DSH 工作区加载子代理、命令、MCP 和 hooks 适合需要按项目工作区定制专属 AI 工具和命令的开发者。

Package
dsh-project-config
Compatibility
Unverified
Harness peer range
>=0.2.0-rc.2 <0.3.0-0
Version
0.1.0
License
MIT
Last updated
Oct 11, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:RicardoYan/dsh-project-config

配置

完整字段、hook 输入输出、从 Claude Code 迁移、常见坑和排查:docs/settings.md。

在工作区根目录放 .dsh/settings.yml(工作区 = 从会话目录往上最近的含 .dsh/settings.yml 或 .git 的目录):

subagents:
  - toolName: code-reviewer              # 成为一个同名工具
    personaFile: agents/code-reviewer.md # 相对工作区根;frontmatter 的 description 用作用途
    toolFilter: { allow: [read, grep, mcp__github__search_code] }
commands:
  - name: release-notes                # /release-notes
    description: 生成发布说明
    handlerFile: tools/release-notes.mjs   # export default ({ rawInput, agent, workspaceRoot }) => '文本'
mcp:
  - serverName: github                 # 工具名 mcp__github__
    transport: stdio
    command: npx
    args: ['-y', '@modelcontextprotocol/server-github']
    env: { GITHUB_TOKEN: '${GITHUB_TOKEN}' }   # ${VAR} 取 DSH 进程的环境变量
hooks:
  tools/pre-execute:                   # 还支持 tools/post-execute、agent/pre-step、agent/turn-stopping、agent/created、agent/disposed、subagent/start、subagent/end
    - matcher: pwsh|bash
      command: node .dsh/hooks/check.mjs   # 在工作区根执行;stdin 收到 JSON;退出码 2 = 拦截,stderr 作为原因
  • skill 放 .dsh/skills//SKILL.md,由 DSH 自己读取
  • 子代理、MCP、hooks 对子代理同样生效;子代理共用主会话的 MCP 连接,按自己的 toolFilter 过滤(MCP 工具写全名)
  • 子代理再派项目子代理:把对方的名字写进自己的 allow,并且对方的 maxDepth 要够(maxDepth 是它最多能出现在第几层,主会话直接派的是第 1 层)
  • DSH 自带的通用 subagent 工具每个子代理都有,toolFilter 管不到它,写不写都一样;嵌套层数由 DSH 的子代理层数上限控制
  • /project-config 查看本会话加载了什么、哪些被跳过及原因