RicardoYan/dsh-project-config ↗★ 0
dsh-project-config
从配置文件加载工作区子代理、命令和 MCP 适合需要按项目工作区定制专属 AI 工具和命令的开发者。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:RicardoYan/dsh-project-config說明文件
閱讀完整 README ↗配置
完整字段、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查看本会话加载了什么、哪些被跳过及原因