hello-dsh
by pingfanfan
从零开始,看懂 DeepSeek Harness 的「万物皆可插件」— 零基础插件开发教程(含 22 个中文技能实例)\| Zero-to-plugin tutorial for DeepSeek Harness
安装
dsh plugin --profile web add github:pingfanfan/hello-dshGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
DeepSeek Harness 的入门第一课
从「怎么打开终端」开始,30 分钟做出你的第一个插件
DSH 的第一句自我介绍是 "Everything is a Plugin"。
这不是修辞。装好之后点 Settings → Plugins → Plugin list,看右上角那个数字:

133 个。 里面有 llm(模型适配器)、session(会话记录)、webserver(你正在看的网页服务器)、ui-sidebar(左边那条侧边栏),还有 agent-loop —— agent 的主循环本身也是一个插件。
这个仓库带你从「打开终端」开始,一步步做出你自己的插件,并亲眼看到它的生命周期。
开始
🌏 教程目前只有中文版,英文版整理中。
⚠️ 网页版要带
--patch启动,否则技能不生效且不报错。教程第 3 步有说明, 或直接看下面的「一个要注意的坑」。
假设你什么都没有:没装过 Node,没用过命令行。每一节都有检查点,看到指定结果才往下走。
| 步骤 | 内容 | 时间 |
|---|---|---|
| 1–2 | 打开终端、装 Node.js | 7 分钟 |
| 3–5 | 启动 DSH、配置密钥、选工作区 | 10 分钟 |
| 6 | 亲眼看到 133 个插件 | 3 分钟 |
| 7–8 | 做第一个插件、看它的生命周期 | 10 分钟 |
| 9–10 | 接下来做什么、原理(选读) | 13 分钟 |
前 8 步约 30 分钟,跑完就能用。
给 DSH 加东西的两条路
| 路线 | 写什么 | 门槛 | 适合 |
|---|---|---|---|
| Markdown(技能) | 一个文本文件 | 5 分钟 | 改变模型的判断标准、输出格式、工作流程 |
| TypeScript(代码插件) | 一个代码模块 | 半小时起 | 注册新工具、接外部服务、改界面 |
判断依据:能用大白话说清楚要它怎么做的,走 Markdown 路线。
教程两条都会带你走一遍。
现成的例子
跑完教程想直接用的话,examples/skills/ 里有 22 个写好的中文技能。
让 AI 帮你装(最省事)
把这个链接丢给 Codex、Claude Code、或 DSH 自己:
https://github.com/pingfanfan/hello-dsh/blob/main/INSTALL-FOR-AGENTS.md
照这个装
它会先检查 Node、DSH、API 密钥三项前置,再拷文件。
或者自己跑一条命令
git clone https://github.com/pingfanfan/hello-dsh.git
cd hello-dsh && ./install.sh
先看会做什么:./install.sh --dry-run
移除:./install.sh --uninstall
技能清单
| 技能 | 什么时候用 |
|---|---|
hello-dsh |
第一课:验证插件系统,按层讲解生命周期与原理 |
dsh-onboarding |
第一次跑 DSH,或卡在启动、工作区、权限 |
dsh-skill-dev |
写技能(Markdown 路线)的完整规则 |
dsh-first-plugin |
从零做出第一个代码插件(实测流程 + 三个报错) |
dsh-plugin-dev |
写插件(TypeScript 路线)的完整规则 |
dsh-troubleshoot |
起不来、配置没生效、UNKNOWN_TOOL、技能不见了 |
plan-before-code |
任务要改多处、有不确定性、超过半天 |
code-review-cn |
审查代码改动、PR、diff |
debug-systematically |
遇到 bug、测试失败、本来是好的现在坏了 |
explain-codebase |
快速理解陌生项目 |
refactor-safely |
重构、拆函数、消除重复 |
test-first |
写测试、实现功能、修缺陷 |
api-design |
设计接口、加公开方法、定数据结构 |
error-handling |
设计错误处理、决定该抛还是该返回 |
perf-optimize |
优化性能、排查慢的原因 |
security-review-cn |
安全审查、评估攻击面、检查凭据处理 |
commit-message |
写提交信息、拆分改动 |
pr-description |
写 PR 描述、准备评审 |
write-tech-cn |
写中文文档、README、技术博客 |
write-docs-cn |
写或整理项目文档、API 说明、教程 |
web-research |
联网查资料、核实事实、技术选型 |
ask-good-questions |
提技术问题、报 bug、写 issue |
装完之后对 DSH 说 「hello dsh」,它会带你走一遍,可以一层层往下问。
一个要注意的坑
⚠️ DSH 的网页版默认关闭了技能功能(命令行版是开着的)。实测于 0.1.0-rc.6。
网页版要用技能的话:
npx @deepseek-ai/dsh web --patch ./enable-skills-in-web.yml
配置文件在本仓库根目录。
写这份教程时实测到的行为
为了写这个,我在两台干净的 Mac 上从头跑了 DSH。下面这些行为都写进了教程,因为每一条都会让新手卡住而且不报错:
| 发现 | 为什么重要 |
|---|---|
网页版出厂时 tool-skill 和 skill-filesystem 是禁用的,headless 是启用的 |
同一个技能命令行能用、网页版静默失效,没有任何报错 |
| 网页版必须先选工作区,发送按钮才会激活 | 命令行版没这个限制,所以用 headless 验证时撞不上 |
| 旧的 DSH 进程占着 3080 时,页面照样能正常打开 | 新实例报 EADDRINUSE 退出,浏览器连的是旧进程,改什么配置都不生效 |
--patch 是插入而不是覆盖,被 patch 的插件会挂载两份 |
无害,但插件列表会显示 7 个 skill 插件而不是 5 个 |
| frontmatter 键名写成驼峰会丢弃整个技能,只留一条警告 | 官方有意的 fail-closed 设计,但不知道的话很难查 |
全部实测于 0.1.0-rc.6。
配套工具
dsh-doctor —— DSH 配置体检,一条命令扫出会导致静默失效的问题:
npx dsh-doctor
只读不改。每条检查都对应 DeepSeek 官方文档或事故报告里记录过的真实故障。
这些技能是怎么写的
参照 DSH 官方仓库的 .agents/skills/,那里有 11 个 DeepSeek 自己在用的技能。共同点:
- 是判断指引,不是清单(官方原话:"This skill is guidance, not a complete checklist")
- 列出事实来源,并说明「读它,不要复述它」
- 分层:阻断项 / 检查项 / 不要做的事
- 单独写「不要做的事」 —— 挡住的问题往往比「要做什么」更多
欢迎投稿
见 CONTRIBUTING.md。要求两条:中文、并且你真的在用它。
许可
MIT
非官方社区项目,与 DeepSeek 无隶属关系。
原始 README: https://github.com/pingfanfan/hello-dsh/blob/main/README.zh.md ↗
同类插件
查看全部 →vibe-skills
vibe 编码技能合集(含快速开始、CI 证明、发布说明与文档)

Aegis
面向编码 Agent 的软件工程方法包,提供基线优先规划、系统化调试、提示词卫生、完成前验证,以及修复/退役双轨跟踪技能。

J-Space-Cognition-Suite-V3.6
A model-agnostic inference-time control suite for deep reasoning, long-horizon work, tool use, verification, and recovery. 面向深度推理、长程任务、工具调用、验证与恢复的模型不可知推理时控制套件。

MisakaNet
失败恢复记忆库:从真实工程会话中搜索和记录失败恢复教训,支持 BM25 + 语义 RAG 检索和知识库管理。

dsh-find-plugins
对 DSH 说一句「有没有插件能……」,它就会从全 GitHub 的 dsh-plugin topic 里找出候选,解释差别,等你选好以后再安装和验证。

humanizer-ru
AI代理技能:识别并清除俄语文本中的机器生成痕迹。38种模式,39个带证据注册的regex标记,盲对偶运行,C2PA/EXIF/XMP文件元数据清理