Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add pingfanfan/hello-dsh --skill dsh-onboardinggit clone --depth 1 https://github.com/pingfanfan/hello-dshWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/pingfanfan/hello-dsh/dsh-onboarding)<a href="https://agentmods.dev/skills/pingfanfan/hello-dsh/dsh-onboarding"><img src="https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/dsh-onboarding/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/pingfanfan/hello-dsh/dsh-onboarding"><img src="https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/dsh-onboarding.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium MCP Rug Pull · line 39 npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.Fix: Pin the version: npx @scope/[email protected]
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00060 | $0.01485 |
| Opus 5.5 | $0.00024 | $0.00594 |
| Sonnet 5.5 | $0.00012 | $0.00297 |
| Haiku 4.5 | $0.00006 | $0.00148 |
Grade A, and why
dsh-onboarding scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 134 lines — stays where its author put it; the contents beside it link to each section on GitHub.
带一个人跑通 DeepSeek Harness
这是引导,不是照抄清单。先判断对方卡在哪一层,再给对应的动作;不要把七个步骤一次性倒给一个只是端口被占用的人。
DSH 处于 developer preview,官方明确警告会有破坏兼容性的变更。任何"应该可以"的说法都要用实际命令验证一次。
事实来源
- 官方 README 与
docs/user/guide/—— 启动方式与 Web UI 指南 docs/user/develop/basic/—— 插件编写与cordis.yml加载packages/skill/skill-filesystem/README.md—— 技能发现路径与 frontmatter 规则dsh --help/dsh --profile web --dump-config—— 当前版本的权威命令面
不要凭记忆回答版本相关的问题。dsh --version 和 --dump-config 的输出才算数。
先分清四个东西
新手最常见的混乱是把这四层当成一个东西。回答任何问题前先定位在哪一层:
| 层 | 是什么 | 出问题的表现 |
|---|---|---|
| 模型 | DeepSeek 的 API,在云端 | 401、余额不足、限流 |
| Harness(DSH) | 本机跑的 agent 运行时 | 端口占用、Node 版本、插件加载失败 |
| Profile | 一组插件的组合(web / headless) |
某个工具不存在、配置没生效 |
| 工作区 | agent 实际读写的目录 | 找不到文件、权限被拒 |
"它没反应"这类描述必须先追问是哪一层,否则会浪费两轮。
启动
最短路径,不需要克隆仓库:
npx @deepseek-ai/dsh web
默认服务在 http://127.0.0.1:3080。首次运行会在 ~/.dsh/ 下生成 profiles/、skills/、storages/。
从源码跑(需要改 DSH 本身时才用):
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness && pnpm install && pnpm run build && pnpm dsh web
不启动服务、只看组装后的配置:
dsh --profile web --dump-config
这条命令在排查"某个插件到底加载了没有"时比读文档快得多。
常见启动失败
按出现频率排序,每条都给可执行的下一步:
- 端口被占用 ——
EADDRINUSE: 127.0.0.1:3080。先lsof -nP -iTCP:3080 -sTCP:LISTEN看是谁占的;常见是自己之前起的实例没退干净。 - Node 版本 —— DSH 要求较新的 Node。
node -v确认后再排查其他方向。 - 路径含空格或中文 —— 插件路径必须是绝对路径,含空格时务必加引号。
- 首次 npx 下载慢 —— 不是卡死。观察是否有网络代理需要配置。
- API Key 未配置 —— 启动本身不需要 Key,但任何模型任务都需要。启动成功不等于能对话。
权限:看懂它要什么
DSH 会请求读文件、执行命令、写文件。批准前至少确认三件事:
- 要执行的确切命令,包括参数——不是"运行测试"这种概括
- 工作目录——是不是你以为的那个目录
- 写入范围——会碰哪些文件
拒绝一次不会破坏会话。第一次使用时,主动拒绝一个越界请求是有价值的练习:你会看到被拒后的表现,也会知道边界在哪。
不要在真实项目上做第一次尝试。 新建一个空目录作为工作区,代价为零。
技能(skill):DSH 的能力扩展
技能是纯 Markdown,不需要写代码、不需要构建、不需要发包:
~/.dsh/skills/<name>/SKILL.md
---
name: my-skill # 必需,kebab-case
description: ... # 必需,决定模型何时会用它
---
发现路径按优先级(rank 小的优先):
| Rank | 位置 |
|---|---|
| 100 | <项目>/.dsh/skills |
| 200 | <项目>/.agents/skills |
| 400 | ~/.dsh/skills |
| 500 | ~/.agents/skills |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 134 lines · 60 tokens per session scan A 5758fc1d07b6
dsh-onboarding is a skill published in the GitHub repository pingfanfan/hello-dsh (102 stars, last pushed 1mo ago), licensed MIT. It adds 60 tokens to every session and 1,485 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
dsh-plugin-guide
Use when developing, reviewing, packaging, debugging, or answering questions about DeepSeek Harness (DSH) plugins — the plugin-based agent harness on vendored Cordis. Applies the official plugin-development constraints (plugin contract, cordis.yml layers, services/events/effects, tool DSL, bundles/profiles) backed by…
codex-sync
Operate dsh-codex-sync from this session — preview and import Codex chats, toggle Skills/MCP/import settings, check MCP mirror health, install the reverse MCP bridge.
wait-what-zh
A short recovery response for when a previous message was unclear or did not reach the user properly. It asks the user to restate the request with enough context for the agent to continue.
wizard
Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.
skill
Ten native DSH tools give a text-only agent eyes. Use these structured tools directly; do not shell out to the bundled Python scripts or reproduce their implementation. Vision API credentials and model settings are managed by the plugin, so tool calls do not receive credentials.
modsearch
Plug-in web search, X (Twitter) search, and page fetch for models without native web access. Use whenever the task needs current information, external facts, source links, posts from X, or the content of a specific URL, and the active model/harness has no native search or fetch tool. Runs the modsearch CLI to return…