npm install -g @deepseek-ai/dsh,然后 dsh web。web profile 首次启动会按内置模板自建,网页端开在 http://127.0.0.1:3080,进去在 Settings 里加模型服务商即可。
DeepSeek Harness 以 npm 包 @deepseek-ai/dsh 分发。没有安装器、不用容器、软件本身也不卡账号——MIT
协议,整个安装就一行命令。真正要多花五分钟的是装完之后:把它指向一个模型,以及搞清楚它把文件放哪了。
前置条件
需要 Node.js。dsh 走 npm 分发、由 Node 执行,「装完没反应」绝大多数是 Node 没装或者太老。
node -v报错就先从 nodejs.org 装,或者用版本管理器(nvm、fnm、volta)。macOS 上
brew install node 也行。
方式一:全局安装(推荐)
npm install -g @deepseek-ai/dsh-g 把 dsh 装到 PATH 上,任意项目目录都能敲。验证一下:
dsh --help打印的是 launcher 自己的帮助——也就是在它把控制权交给具体 app 之前,launcher 认识的那些 flag。 这个区分后面会用上。
方式二:完全不装
npx @deepseek-ai/dsh web一条命令下载并运行。想评估一下又不想留全局包就用这个。代价是每次调用都要重新解析包,启动更慢,而且 锁不住版本。
方式三:源码安装
要改 harness 本身、或者想跟 master 而不是发布版,走这条。
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web注意这里用的是 pnpm 不是 npm。仓库是 pnpm workspace,用 npm 装出来的 node_modules 结构是坏的。
启动网页端
dsh webdsh web 和 dsh --profile web 完全等价,都启动 $DSH_HOME/profiles/web 下的 profile——首次使用时
按内置模板自动创建,不需要你手工搭。
服务地址:
http://127.0.0.1:3080
3080 被占了就换一个。因为 --port 是 app 的 flag 而不是 launcher 的,参数顺序有讲究:
dsh --profile web --port 3100launcher 先吃自己的 flag,遇到第一个它不认识的 token,后面全部算 app 的参数。
配模型服务商
harness 是运行时,不是模型。不给凭证它没有对象可聊。
网页端打开 Settings → Add provider,从目录里选一个——DeepSeek、Anthropic、OpenAI 等——粘贴 API
key。key 写进 $DSH_HOME/.credentials.yaml,和 $DSH_HOME/settings.yaml 分开存,所以后者可以放心
提交或共享,不会带出密钥。
要接 OpenAI 兼容网关或自建端点,就注册自定义服务商。自定义服务商的凭证从你自己命名的环境变量里读:
llm-pi-ai:
providers:
my-gateway:
apiKeyEnv: GATEWAY_API_KEY
api: openai-completions
baseURL: https://gateway.example/v1
models:
- id: vision-preview
input: [text, image]两个坑。apiKeyEnv 填的是变量名,不是 key 本身——你得在启动 dsh 的那个 shell 里 export 出
GATEWAY_API_KEY。另外 provider ID(上面的 my-gateway)是永久的:想改名只能新建一个再删掉旧的。
验证安装
装完最有用的命令不是 --version,是这个:
dsh --profile web --dump-config它打印 profile 真正启动起来的插件树——每一行都是 patch 可以命中的配置行。以后行为不对劲,第一个该看 的就是这份输出,因为它显示的是所有 patch 层叠加后的结果,而不是你以为自己配了什么。
它的兄弟 --dump-default-config 则不初始化 profile,直接显示组装出来的树。想看一个干净 profile
长什么样、不受本地改动污染,用这个。两份输出 diff 一下,就是你到底改了些什么。
现在你手上有什么
- PATH 上的
dshlauncher $DSH_HOME/profiles/web下的 web profile$DSH_HOME/.credentials.yaml里的一份凭证127.0.0.1:3080上的浏览器 agent
下一件值得搞清楚的事:harness 自带四种 agent 模式,而默认给你的那个未必是你想要的。
常见安装问题
全局装完还是 dsh: command not found。 npm 的全局 bin 目录不在 PATH 上。npm bin -g 看路径,
加进 shell 配置文件。
npm install -g 报 EACCES。 你的 npm prefix 指向 root 拥有的目录。要么把 prefix 改到自己拥有
的目录,要么用 Node 版本管理器,从结构上绕开。别用 sudo npm install -g 糊——它会在 npm 缓存里留下
root 拥有的文件,之后引发更难查的故障。
网页端能打开但每个请求都失败。 profile 有了,可用的凭证没有。回 Settings 检查;自定义服务商还要
确认 apiKeyEnv 指的那个变量真的在启动 dsh 的那个 shell 里 export 了——光写进 .zshrc 不算,
已经在跑的进程不会重读它。
常见问题
一定要全局安装吗?
不用。npx @deepseek-ai/dsh web 不装也能跑,是最快的试用方式。想在任意目录都能敲 dsh 才需要全局装。
dsh 的文件放在哪?
harness home 目录 $DSH_HOME 下。profile 在 $DSH_HOME/profiles/<名字>,设置在 $DSH_HOME/settings.yaml,凭证在 $DSH_HOME/.credentials.yaml。
没有 DeepSeek 账号能用吗?
能。服务商目录里有 Anthropic、OpenAI 等,也可以注册完全自定义的 OpenAI 兼容端点,自己填 base URL。
怎么升级?
重跑一遍全局安装命令即可。但它是 v0.1 开发者预览版,版本之间会有破坏性变更——升级你依赖的 profile 之前先读 changelog。