dsh cli 是什么?DeepSeek Harness 命令行工具安装、DSH plugin 命令速查
dsh cli 指的就是 DeepSeek Harness 的命令行工具 dsh——它是官方唯一受支持的 Node 应用启动器,负责加载某个 profile 并把后续参数交给它;Web UI、无界面任务、SDK 都是它启动的不同 profile。
DeepSeek Harness CLI 概览
本文把「dsh cli」讲透三件事:它是什么、与 Web / 桌面版是什么关系,怎么装,以及日常要用的三族命令入口与退出码。 先把结论摆前面:它不是一个独立产品,而是所有形态的共同入口——你敲的每一条 dsh 命令,本质都是在「选一个 profile 并启动它」。命令细节可以对照《dsh 命令大全》速查,本篇优先讲清概念与安装。
dsh cli 是什么:DeepSeek Harness 的统一启动器,以及它与 Web、桌面版的关系
dsh 是 DeepSeek Harness 的命令行启动器,只做一件事:加载选中的 profile,然后把其余参数交给被启动的应用去解析(来源)。 把它讲准,有四个要点:
- 它是唯一的启动入口:官方明确,
dsh命令是唯一受支持的 Node 应用启动器;SDK 与 ACP 都是 profile,而不是单独的公开二进制。 - 语法与加载是分开的:命令语法由
src/args.ts负责,src/bin.ts只动态加载被选中的 runner,所以「不认识就交给应用」这条边界很稳。 - 它不是「另一个界面」:Web UI 是
dsh web启动的webprofile 在浏览器里的形态,无界面任务是headlessprofile,SDK/ACP 各自是 profile——界面不同,底层是同一套能力。 - 和桌面版的关系:桌面版与 Web UI 提供图形与浏览界面,CLI 提供同一套能力的命令行入口,你可以按场景在两者之间切换。两者取舍见《DeepSeek Harness Web UI 与桌面版怎么选》。
一句话:CLI 是「启动器」,不是「界面」;你换的是它启动的东西,不是它本身。
dsh web 与 dsh --profile web 是同一次加载
dsh web 只是 dsh --profile web 的硬编码别名:两者都加载 web profile,并把后面的参数交给它(来源)。 同理,dsh <name> 是 dsh --profile <name> 的简写,会在 $DSH_HOME/profiles/<name> 下启动同名 profile。你在哪个目录执行 dsh,那个目录就会成为它默认的工作区根,而 profile 始终固定在 $DSH_HOME/profiles/<name> 下。所以看命令时别把 dsh web 当成另一个产品——它和 dsh --profile headless "任务" 走的是同一条加载路径,区别只是选了哪个 profile。启动器自己只解析 --profile、--patch、--help 这类 flag,第一个它不认识的 token 之后,剩余参数原样交给被启动的应用(来源)。
dsh cli 怎么安装:npm 全局安装与 npx 临时运行
装 CLI 有两种方式:npm install -g @deepseek-ai/dsh 全局安装后直接用 dsh,或者不装、用 npx @deepseek-ai/dsh 临时拉取运行(来源)。 按顺序操作:
- 确认 Node 与 npm 在 — 执行
node -v与npm -v。预期:两条都输出版本号。 - 全局安装 — 执行
npm install -g @deepseek-ai/dsh。预期:安装成功,dsh --version能打印启动器版本。 - 起 Web UI — 执行
dsh web。预期:终端打印地址,服务在http://127.0.0.1:3080。 - 或走 npx 免安装 — 执行
npx @deepseek-ai/dsh web。预期:与本机安装效果一致,只是每次拉最新版。 - 配密钥与工作区 — 在 Web UI 设置里填 API 密钥、选工作区。预期:能发第一条任务。
- 补插件 — 装好后需要扩展能力,从插件市场补,见下方链接。预期:插件能力出现在界面里。
# 全局安装后用 dsh 裸命令
npm install -g @deepseek-ai/dsh
dsh web
# 不安装,npx 临时运行
npx @deepseek-ai/dsh web
# 确认版本
dsh --version
两种方式只差「要不要每次拉包」:长期日常用全局装、偶尔试或写进 CI 用 npx,二者读同一份 $DSH_HOME 数据,安装、参数与缓存的完整对比见旧文《npx @deepseek-ai/dsh web 参数与全局安装对比》。
dsh cli 常用命令入口:dsh、dsh web、dsh plugin
日常会敲的入口就三族:dsh web 起 Web UI、dsh --profile <name> 起任意 profile(headless 跑一次性任务)、dsh plugin --profile <name> <pnpm 参数> 管理插件(来源)。 速查表:
| 命令 | 用途 |
|---|---|
dsh web | --profile web 的硬编码别名,启动 Web UI |
dsh --profile headless "任务" | 跑一次全新会话,打印最终答案后退出 |
dsh --profile <name> | 启动任意已装 profile |
dsh plugin --profile <name> <pnpm 参数> | 在 profile 目录内转发给 pnpm,管理插件 |
几条必须知道的边界(来源):
- 参数归属:启动器只解析自己的参数,第一个它不认识的 token 之后,全部原样交给应用。所以
dsh --profile web --port 8080里,--port是 web 应用的参数。 dsh web的地址固定:默认http://127.0.0.1:3080,端口用--port改,但 CLI 不支持--host 0.0.0.0。- 装插件先初始化 profile:第一次
add之前先跑一次dsh web,让webprofile 生成。 - 一键管插件更省事:装好社区插件市场后,浏览、一键安装、更新、卸载都能在图形界面完成。
参数归属与常见退出码
启动器的退出码只表达一件事:命令与配置有没有被正常接受——dsh --help 退 0,被拒绝的参数或未知命令退非零(来源)。 日常最常撞上的几种:
- 用法错误退非零 — 未知子命令、把别的模式的选项塞进来、重复传
--profile,都会在启动前被拒绝并退出非零,不会带着错配置运行。 --help退 0 —dsh --help打印启动器自己的帮助,dsh web --help打印 web 应用的帮助,两者都不真正启动服务。- headless 按任务结果退码 —
dsh --profile headless "任务"任务完成退 0,否则退 1,适合写进脚本判断成败。 - 启动失败退 1 并落日志 — 必需插件激活失败时,进程打印诊断并以退出码 1 结束,同时在
$DSH_HOME/logs/(默认~/.dsh/logs/)写一份startup-<时间>-<uuid>.log。 - profile 不存在会明确报错 — 缺失的 profile 不静默失败,而是提示用
dsh plugin --profile <name> add <package>先把它建起来。
想把每个命令的参数、退出码都吃透,直接翻《dsh 命令大全》。全局装好 dsh 之后,如果你更想要界面化的 DeepSeek插件 管理方式,装一个 DSH Plugin Hub,就能在 Web UI 的「设置 → 插件市场」里可视化地装、更新、卸载。
使用 DeepSeek Harness CLI 的注意事项与局限
- 启动器只解析自己的参数 — 第一个不认识的 token 之后都交给应用,参数写错位置会被当成应用参数处理。
- profile 之间互不干扰 — DSH插件 与配置按 profile 隔离,
web与headless各装各的,换 profile 等于换一套插件集。 - Web 默认只听本机 — 绑定
127.0.0.1:3080,且刻意不支持--host 0.0.0.0;要限制来源主机用--trusted-host。 - npx 每次拉最新 — 免安装方便,但版本不受你控制;要固定版本就用
@版本号或走全局安装。 - 预览阶段会变 — DeepSeek Harness 处于开发者预览阶段,官方明确未来会有破坏兼容性的变更(来源),命令与界面以当前版本为准。
与其记住 dsh plugin add、remove、update 一族命令再自己去 profile 目录核对依赖,不如在全局装好 dsh 后补一个 DSH Plugin Hub:命令行管启动、界面管插件,两件事各归各位。

来源:dsh CLI README、@deepseek-ai/dsh on npm、dsh-plugin.org 插件市场
常见问题
dsh cli 指 DeepSeek Harness 的命令行工具 dsh,它是官方唯一受支持的 Node 应用启动器,负责加载选中的 profile 并把后续参数交给它。Web UI 是它启动的 web profile 在浏览器里的形态,无界面任务是 headless profile,所以 Web、桌面与命令行共享同一套能力,只是入口和界面不同。
两种都行:全局安装执行 npm install -g @deepseek-ai/dsh,之后可直接敲 dsh;不想装就用 npx @deepseek-ai/dsh,每次拉最新版运行。长期日常使用建议全局装,偶尔试或 CI 里跑用 npx 更干净,两者启动的都是同一个启动器。
三族命令:dsh web 启动 Web UI(等价 dsh --profile web);dsh --profile headless "任务" 跑一次会话打印结果后退出、代表任意 profile;dsh plugin --profile <name> <pnpm 参数> 管理插件。启动器只解析自己的参数,第一个它不认识的参数之后都交给被启动的应用。
dsh web 默认服务在 http://127.0.0.1:3080,端口可以用 --port 改,例如 dsh web --port 8080。但 CLI 有意不支持 --host 0.0.0.0,传入会以用法错误退出;要限制来源主机用可重复的 --trusted-host 添加受信主机名,而不是把服务暴露到全网。
全局装好 dsh 后先跑一次 dsh web 让 web profile 初始化,再装社区市场插件,例如执行 dsh plugin --profile web add dsh-plugin,重启后界面里就会多出插件市场。之后浏览、一键安装、更新与卸载都能在图形界面里完成,不必每次敲 dsh plugin add。
相关术语
- dsh
- dsh 是 DeepSeek Harness 的命令行启动器,也是官方唯一受支持的 Node 应用启动器,负责加载选中的 profile 并把其余参数交给被启动的应用解析。— dsh CLI README
- profile
- profile 是 DeepSeek Harness 插件 bundle 补丁层的有序堆叠,存在于 $DSH_HOME/profiles/<name>;dsh cli 每次启动都是在加载某个 profile,Web 与无界面模式各是一个 profile。— dsh CLI README
- dsh web
- dsh web 是 dsh 启动 Web UI 的命令,等价于 dsh --profile web;它默认服务在 http://127.0.0.1:3080,端口可用 --port 调整。— dsh CLI README
- @deepseek-ai/dsh
- @deepseek-ai/dsh 是 DeepSeek Harness 命令行工具发布的 npm 包名,全局安装命令为 npm install -g @deepseek-ai/dsh,免安装则用 npx @deepseek-ai/dsh 调用。— @deepseek-ai/dsh on npm
来源
- dsh CLI README· deepseek-ai
- @deepseek-ai/dsh on npm· npm
- dsh-plugin.org 插件市场· dsh-plugin.org