TL;DR30 秒快速开始
只想尽快跑起来?装好 Node.js 后,两条命令即可。无需下载本页的压缩包。
node -v # 需要 v22.19.0 及以上,或 v24 / v26 npx @deepseek-ai/dsh@0.2.0-rc.2 web # 首次运行会自动下载依赖,稍等片刻
启动后终端会打印地址 http://127.0.0.1:3080 并自动打开浏览器。随后在
设置 → 模型 填入 DeepSeek API Key,再选择工作区目录,即可开始使用。
执行 npx -y @deepseek-ai/dsh@0.2.0-rc.2 --version 返回 0.2.0-rc.2,退出码 0,
说明 npm 分发链路正常。更完整的步骤见 路线 A。
01下载与校验
压缩包直接放在本站,可直接下载;同时给出 GitHub 官方原始地址,二者内容完全一致。
下载后校验文件完整性(强烈建议)
压缩包传输过程中可能损坏。请用下面的命令计算 SHA-256,并与上方数值逐字符比对:
# 进入下载目录 cd $HOME\Downloads # 计算 SHA-256 Get-FileHash .\deepseek-harness-0.2.0-rc.2-source.tar.gz -Algorithm SHA256 | Format-List
certutil -hashfile deepseek-harness-0.2.0-rc.2-source.tar.gz SHA256
cd ~/Downloads shasum -a 256 deepseek-harness-0.2.0-rc.2-source.tar.gz
cd ~/Downloads sha256sum deepseek-harness-0.2.0-rc.2-source.tar.gz
aa5206c61007f7aea773b019d4cdb770d1545e58b253bdd721c5f79c6885e130
本页压缩包取自官方 GitHub tag dsh-v0.2.0-rc.2 的源码归档,重新打包为确定性 tar.gz(gzip -9),并做了两处明确处理:
- 剔除了仓库内部的
.agents/目录(3,699 个文件,约 27 MB)。它是上游自身的开发笔记归档, 只被少量代码注释与文档链接引用,不参与安装、构建或运行;剔除后压缩包才能控制在 25 MiB 以内以便公网分发。 - 其余每一个文件都与官方归档逐字节相同:我们对保留下来的 10,391 个文件逐一做了 SHA-256 比对, 结果与 GitHub 原始归档解压结果完全一致,没有任何内容修改。
需要完整仓库(含 .agents/ 与 Git 历史)的用户请用官方直连:
点上方「GitHub 官方原始下载」按钮,或执行
git clone https://github.com/deepseek-ai/deepseek-harness.git。
02环境要求
先把这几项准备好,后面的步骤就不会卡住。
| 项目 | 要求 | 说明 |
|---|---|---|
| Node.js | ^22.19.0 || >=24.0.0 |
来自仓库 package.json 的 engines 字段。官方 CI 覆盖 22.19、24、26。推荐安装 Node.js 24 LTS。Node 18 / 20 会直接报 engines 错误。 |
| pnpm | 11.7.0 |
仅源码安装(路线 C)需要。仓库通过 packageManager 锁定 pnpm 11.7.0,用 Corepack 可自动匹配版本。 |
| Git | 2.26 或更高 | 可选。用 git clone 方式获取源码时需要;从本页压缩包安装时不强制,但构建阶段需要提交号(见 FAQ)。 |
| 磁盘空间 | 建议 ≥ 4 GB | 源码解压约 123 MiB,pnpm install 会拉取大量依赖(通常 1 GB 以上),构建产物再占数百 MB。 |
| 网络 | 可访问 npm registry | 首次安装必须联网。国内网络可切换镜像源或配置代理,见 FAQ。 |
| DeepSeek API Key | 必需(使用模型时) | 在 platform.deepseek.com 申请。也可配置第三方 / 自建 OpenAI 兼容端点。 |
如果还没有 Node.js
# 安装 Node.js 24 LTS winget install OpenJS.NodeJS.LTS # 关掉并重新打开终端后验证 node -v npm -v
也可以到 nodejs.org 下载 .msi 安装包,双击一路下一步即可。
# 方式一:Homebrew brew install node@24 # 方式二:nvm(更推荐,方便切换版本) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash nvm install 24 nvm use 24 node -v
# nvm 安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash source ~/.bashrc nvm install 24 nvm use 24 # 或使用官方 NodeSource 源(Ubuntu / Debian) curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - sudo apt-get install -y nodejs node -v
注意:apt install nodejs 在部分发行版里版本过旧,无法满足 22.19+ 的要求。
03三条安装路线怎么选
绝大多数人只需要路线 A。想改代码、写插件再选路线 C。
路线 A:npx 直接运行
一条命令跑起来,不污染全局环境,不需要下载本页压缩包。
- 适合:想立刻体验、非开发者
- 耗时:约 1–3 分钟
- 命令:
npx @deepseek-ai/dsh web
路线 B:全局安装
装一次,之后随处可用 dsh 命令,还会顺带得到 dsh --version 等能力。
- 适合:长期使用、经常启动
- 耗时:约 1–3 分钟
- 命令:
npm i -g @deepseek-ai/dsh
路线 C:源码包编译安装
用本页的压缩包(或 git clone)从源码构建,可以改代码、调试、开发插件。
- 适合:二开、插件开发、研究架构
- 耗时:约 10–40 分钟(取决于网速与机器)
- 需要:Node + pnpm + 4 GB 磁盘
04路线 A:用 npx 直接运行(推荐)
不需要下载压缩包,也不需要提前安装 pnpm。只要机器上有 Node.js 22.19+ 即可。
-
打开终端
Windows 用 PowerShell 或 Windows Terminal;macOS 用 Terminal;Linux 用你常用的 shell。 以下命令三平台完全一致。
-
确认 Node 版本
node -v
输出应为
v22.19.0及以上,或v24.x/v26.x。 如果提示找不到命令,先回到 环境要求 安装 Node.js。 -
启动 Web UI
npx @deepseek-ai/dsh@0.2.0-rc.2 web
首次执行会询问是否安装该包,输入
y回车即可;随后会自动下载依赖并启动服务。 启动成功后终端会打印类似下面的地址,并自动打开默认浏览器:http://127.0.0.1:3080
如果不希望自动打开浏览器(例如在远程 SSH 里),加上
--no-open:npx @deepseek-ai/dsh@0.2.0-rc.2 web --no-open
-
在浏览器中打开
访问
http://127.0.0.1:3080。若 3080 端口被占用,可以换端口:npx @deepseek-ai/dsh@0.2.0-rc.2 web --port 8080
-
配置模型并开始使用
进入 第 7 节:首次使用配置,填入 API Key、选择工作区,然后就可以对话了。
回到运行命令的终端,按 Ctrl + C 即可。
05路线 B:全局安装
适合需要反复启动、或希望在任何目录直接敲 dsh 的用户。
# 1) 全局安装(如提示权限不足,Windows 请用管理员终端,macOS/Linux 加 sudo) npm install -g @deepseek-ai/dsh@0.2.0-rc.2 # 2) 验证版本 dsh --version # 应输出 0.2.0-rc.2 # 3) 启动 Web UI dsh web
之后每次启动只需在任意目录执行 dsh web。当前工作目录会被作为默认文件系统位置,
因此建议先 cd 到你想让 agent 操作的项目目录再启动。
- macOS / Linux 报
EACCES:不要盲目sudo npm -g,推荐用 nvm 管理 Node,或把 npm 全局目录改到用户目录。 - Windows 上
dsh命令找不到:把 npm 全局安装目录(npm config get prefix)加入PATH后重开终端。
06路线 C:用本页源码包安装(开发者)
从源码构建可以修改代码、调试内部实现、开发自己的插件。请按顺序执行,不要跳步。
第 1 步 · 解压压缩包
cd $HOME\Downloads tar -xzf deepseek-harness-0.2.0-rc.2-source.tar.gz cd deepseek-harness-dsh-v0.2.0-rc.2 dir
如果 tar 不可用,用 7-Zip 或 WinRAR 右键「解压到当前文件夹」也可以。
解压后进入的目录名固定为 deepseek-harness-dsh-v0.2.0-rc.2。
cd ~/Downloads tar -xzf deepseek-harness-0.2.0-rc.2-source.tar.gz cd deepseek-harness-dsh-v0.2.0-rc.2 ls
cd ~/Downloads tar -xzf deepseek-harness-0.2.0-rc.2-source.tar.gz cd deepseek-harness-dsh-v0.2.0-rc.2 ls
第 2 步 · 启用 pnpm(版本必须是 11.7.0)
仓库用 packageManager 字段锁定 pnpm@11.7.0。用 Corepack 是最省事的方式:
# 方式一:Corepack(Node 22/24 自带) corepack enable corepack prepare pnpm@11.7.0 --activate # 如果上面提示 corepack 不存在或已被移除,用方式二: npm install -g pnpm@11.7.0 # 验证:必须输出 11.7.0 pnpm -v
版本不一致可能导致 lockfile 校验失败、依赖树被改写或构建报错。请确保 pnpm -v 输出 11.7.0。
第 3 步 · 设置源码提交号(从压缩包安装时的关键一步)
构建过程会把「源码提交号」写进前端产物。GitHub 的源码压缩包不包含 .git 目录,
构建脚本会尝试执行 git rev-parse HEAD 并因此失败。显式提供提交号即可绕过:
$env:DSH_CLIENT_COMMIT_HASH = "639ed015397290b3745d163aafe02ffee4aa3f84"
export DSH_CLIENT_COMMIT_HASH=639ed015397290b3745d163aafe02ffee4aa3f84
该值就是 tag dsh-v0.2.0-rc.2 对应的提交(2026-09-29)。
注意:只对当前这个终端窗口有效,下一步必须在同一个窗口里执行。若你改用 git clone 获取源码,则不需要这一步。
第 4 步 · 安装依赖
pnpm install
这一步耗时最长,通常会下载 1 GB 以上的依赖。国内网络慢可临时指定镜像源:
pnpm install --registry=https://registry.npmmirror.com
仓库的 postinstall 会尝试配置 Git 钩子(lefthook)。从压缩包解压的目录不是 Git 仓库,
该脚本会静默跳过,不影响安装与构建,可以忽略。
第 5 步 · 构建
pnpm run build
构建分阶段执行:原生模块 → Host/Client 的 TypeScript 编译与打包 → 前端资源。
成功时最后一行会打印类似 build: recorded ... client artifact(s) ...。
首次构建通常需要几分钟到十几分钟。
第 6 步 · 启动
pnpm dsh web
启动后访问 http://127.0.0.1:3080。pnpm dsh 会直接复用上一步的构建产物,不会重新构建。
换端口:pnpm dsh web --port 8080。
第 7 步 · 修改代码后怎么办
- 改动了服务端 / 包源码:重新执行
pnpm run build,再pnpm dsh web。 - 只想调前端并热更新:用
pnpm run dev:web(构建 + 启动 + 监听源文件重新打包一条龙)。 - 只想做类型检查:
pnpm run typecheck。
如果机器上有 Git,直接克隆可以省掉第 3 步,并保留完整历史与提交信息:
git clone --depth 1 --branch dsh-v0.2.0-rc.2 https://github.com/deepseek-ai/deepseek-harness.git cd deepseek-harness pnpm install pnpm run build pnpm dsh web
这也是官方 README 给出的源码运行方式(官方文档里目录名为 deepseek-harness,本页压缩包解压后为 deepseek-harness-dsh-v0.2.0-rc.2,其余完全一致)。
07首次使用:配置模型与工作区
服务启动后,Web UI 还不能直接干活,需要先配置模型、再选择工作区。下面三步做完即可开始。
-
打开设置,填入 DeepSeek API Key
在 Web UI 左侧进入 设置 → 模型,找到 DeepSeek 卡片,把 API Key 粘进去并保存。 Key 在 platform.deepseek.com 申请。
- 保存后立即生效,不需要重启服务。
- 密钥是只写的:页面之后只会拿到脱敏描述符,永远不会回显明文。
- 密钥实际保存在
$DSH_HOME/.credentials.yaml,默认即~/.dsh/.credentials.yaml。
-
选择工作区(Workspace)
点击 Choose workspace,把启动
dsh时所在的目录添加进来并选中。 没有选中工作区之前,输入框是无法使用的。agent 只能在你选定的工作区内读写文件、执行命令——这是它最主要的安全边界。
-
跑第一个任务
新建一个会话,输入一句话试试,例如:
总结这个仓库,并说明它的主要包分别负责什么。
agent 可以读取和修改工作区文件、执行命令、拆分并并行处理子任务、维护任务计划。 遇到需要批准的操作时,Web UI 会先弹出确认。
想用第三方模型或中转站?
设置 → 模型 → 添加模型提供商 里既可选内置提供商(如 openai、anthropic、Kimi 的 moonshotai、GLM 的 zai),
也可以选「自定义模型 API」填写中转站 / 公司网关 / 自建服务的地址、协议与密钥。
协议支持 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages 三种。
模型目录里的「获取可用模型」可以直接探测端点支持哪些模型;探测失败也不影响使用,手动填模型 ID 效果相同。
08常见问题 FAQ
按报错信息或现象查,基本能覆盖 90% 的安装问题。
构建时报错 fatal: not a git repository / git rev-parse HEAD 失败
这是从 GitHub 源码压缩包安装时最常见的问题。压缩包不含 .git 目录,而构建脚本需要用提交号生成前端产物。
解决办法:在同一个终端里先设置提交号,再构建。
$env:DSH_CLIENT_COMMIT_HASH = "639ed015397290b3745d163aafe02ffee4aa3f84" pnpm run build
export DSH_CLIENT_COMMIT_HASH=639ed015397290b3745d163aafe02ffee4aa3f84 pnpm run build
或者改用 git clone --depth 1 --branch dsh-v0.2.0-rc.2 https://github.com/deepseek-ai/deepseek-harness.git,自带 .git,无需该变量。
报错 Unsupported engine / The engine "node" is incompatible
Node.js 版本太低。本项目要求 ^22.19.0 || >=24.0.0,Node 18 / 20 都不行。
node -v # 查看当前版本
nvm install 24
nvm use 24
node -v升级后建议删掉 node_modules 重新 pnpm install,避免旧版本编译的原生模块残留。
corepack: command not found 或 pnpm 版本不是 11.7.0
部分 Node 发行版不再内置 Corepack,或 Corepack 未能激活正确版本。直接全局安装指定版本即可:
npm install -g pnpm@11.7.0
pnpm -v # 必须是 11.7.0pnpm install 很慢、卡住或超时
通常是访问 npm 官方源不稳定。三种处理方式,按需选择:
pnpm install --registry=https://registry.npmmirror.com
# macOS / Linux export HTTPS_PROXY=http://127.0.0.1:7890 export HTTP_PROXY=http://127.0.0.1:7890 pnpm install # Windows PowerShell $env:HTTPS_PROXY = "http://127.0.0.1:7890" $env:HTTP_PROXY = "http://127.0.0.1:7890" pnpm install
方式三:pnpm store path 若在机械盘或网络盘上,可改到本地 SSD:pnpm config set store-dir D:pnpm-store。
端口 3080 被占用 / 想让局域网内其他机器访问
换个端口即可:
npx @deepseek-ai/dsh@0.2.0-rc.2 web --port 8080
# 或源码方式
pnpm dsh web --port 8080查看端口占用:Windows netstat -ano | findstr :3080;macOS / Linux lsof -i :3080。
默认只监听本机 127.0.0.1。如果把它暴露到公网或局域网,等于把「可读写文件、可执行命令」的 agent 开放出去,
务必先确认鉴权与网络边界,不要在不可信网络上裸奔。
浏览器没有自动打开,或提示连不上
启动参数加 --no-open 后不会自动开浏览器;手动在浏览器输入终端打印的地址即可。
在 SSH / 容器 / 远程开发机里,需要把端口转发到本地:
ssh -L 3080:127.0.0.1:3080 user@your-server
然后在你本地浏览器打开 http://127.0.0.1:3080。
Windows 解压失败、路径过长、或安装原生依赖报错
- 解压报错:用 7-Zip / WinRAR 右键解压,或确认系统自带
tar(Windows 10 1803 及以上内置)。 - 路径过长:把源码解压到较短路径,例如
D:\dsh,不要放在深层「下载/微信接收文件」目录里。 - 原生模块编译失败:安装 Visual Studio Build Tools(含 C++ 生成工具),或改用 WSL 2。
Windows 上该用原生环境还是 WSL 2?
两者都支持。官方建议:检出目录、依赖、工具链必须放在同一个系统环境里——
原生 Windows 工具就用 Windows 文件系统,WSL 2 就把代码放在 Linux 文件系统(如 ~/deepseek-harness),
跨文件系统访问会让 Git、依赖安装、构建的 I/O 明显变慢。
一定要有 DeepSeek API Key 吗?
要真正跑任务就需要配置一个模型,因此需要某个提供商的密钥(DeepSeek 官方或第三方 / 自建端点都可以)。 没有密钥时服务能启动、界面能打开,但无法发起对话。
配置、会话、密钥都存在哪里?
默认都在 Harness 主目录:$DSH_HOME,未设置时回退到 ~/.dsh(Windows 即 C:\Users\你的用户名\.dsh)。
~/.dsh/.credentials.yaml:各提供商的 API 密钥~/.dsh/profiles/<名字>/:profile 及其插件配置(package.json、cordis.patch.yml)~/.dsh/cordis.patch.yml:用户级全局覆盖配置
想换位置就设置环境变量 DSH_HOME。
能接中转站 / 公司网关 / 自建模型吗?
可以。设置 → 模型 → 添加模型提供商 → 自定义模型 API,填写 Provider ID、基础 URL、API 协议(三选一)、密钥和至少一个模型即可。 注意一个提供商只能选一种协议,网关同时暴露两种协议时需要建两个提供商。
删掉源码目录后 npx 还能用吗?
能。路线 A / B 的 npx 与全局安装和本页压缩包互相独立,源码目录只是开发者用的。反过来,
删掉源码目录不会删除 ~/.dsh 里的配置与会话记录。
下载的压缩包安全吗?怎么确认没被改过?
本页包取自官方归档,除剔除仓库内部的 .agents/ 开发笔记外没有任何改动,并对保留下来的 10,391 个文件逐一做了 SHA-256 比对验证(见 校验)。
如果你仍然不放心,请直接使用官方地址下载:
https://codeload.github.com/deepseek-ai/deepseek-harness/tar.gz/refs/tags/dsh-v0.2.0-rc.2
安装后如何更新到新版本?
见 第 11 节:升级与卸载。
09安全与权限
dsh 是一个能真实操作你电脑的 agent,请认真读完这一节。
仓库根目录的 SAFETY.md 给出了官方的安全建议。本项目处于 developer preview 阶段,会持续出现破坏性变更,不建议直接用于生产环境。
- 能力范围:agent 可以读取 / 修改工作区文件、执行命令、访问网络、并行委派子任务。它不是一个只读的聊天窗口。
- 审批策略:需要审批的操作会在 Web UI 中先弹确认。请保持审批开启,尤其是首次使用时。
- 工作区边界:只把需要处理的项目目录加入工作区,不要把整个用户主目录或磁盘根目录交出去。
- 密钥:API Key 保存在
~/.dsh/.credentials.yaml,属于敏感文件,不要提交到 Git,也不要截图外发。 - 网络暴露:默认只监听
127.0.0.1,不要随意改成0.0.0.0暴露到公网。 - 来源可信:插件生态是开放的,只安装你信任来源的插件。
10压缩包目录结构
解压后根目录名为 deepseek-harness-dsh-v0.2.0-rc.2,各目录职责如下。
| 路径 | 内容 |
|---|---|
apps/cli | dsh 命令行入口,即 @deepseek-ai/dsh 包本体。profile、Web / headless / SDK / ACP 各种运行模式都在这里。 |
apps/web | Web UI 前端(浏览器端)。 |
apps/desktop · apps/desktop-host | Electron 桌面应用外壳(默认端口 19387,与 Web 的 3080 相互独立)。 |
packages/ | 全部功能插件包:LLM 适配、工具、会话、持久化、客户端组件等,共 50 多个包目录。 |
docs/ | 文档源文件:用户指南、架构说明、开发教程、配置目录、持久化格式等。 |
scripts/ | 构建、校验、发布等仓库脚本(含 build.ts)。 |
python/ · native/ | Python SDK 与原生模块(PTY 等)相关源码。 |
patches/ | pnpm patch 补丁文件。 |
AGENTS.md | 给 AI agent 的仓库工作规范,也是理解项目约定的入口。 |
SAFETY.md | 安全须知,运行前必读。 |
THIRD_PARTY_NOTICES.md | 第三方依赖及其许可证清单。 |
pnpm-workspace.yaml · package.json · pnpm-lock.yaml | 工作区定义、脚本入口、依赖锁定文件。 |
11升级与卸载
升级
无需「升级」概念,直接指定新版本号即可,旧缓存由 npx 自行管理:
npx @deepseek-ai/dsh@<新版本号> web
# 不写版本号则使用 npm 上 latest 标签的版本
npx @deepseek-ai/dsh webnpm install -g @deepseek-ai/dsh@latest dsh --version
下载新版本的压缩包,解压到新目录,然后重新安装与构建:
cd 新的解压目录
export DSH_CLIENT_COMMIT_HASH=<新版本对应的提交号> # Windows 用 $env: 写法
pnpm install
pnpm run build
pnpm dsh web用户配置与会话保存在 ~/.dsh,与源码目录无关,换目录不会丢失。
卸载
# 全局安装 npm uninstall -g @deepseek-ai/dsh # 源码方式:直接删除解压出来的目录即可 rm -rf ~/Downloads/deepseek-harness-dsh-v0.2.0-rc.2 # 如需连配置和会话一起清除(谨慎:会删除密钥与历史记录) rm -rf ~/.dsh
删除 ~/.dsh 会一并删除 .credentials.yaml 中的 API 密钥和全部会话历史,操作前请确认。
12资源与许可
官方链接
压缩包内的重要文档
README.md/README.zh.md:项目总览与运行方式docs/development.md/docs/development.zh.md:开发环境搭建docs/user/guide/index.zh.md:Web UI 使用指南docs/user/guide/providers.zh.md:模型与提供商配置docs/architecture.zh.md:架构说明docs/config-catalog.zh.md:全部插件配置项目录SAFETY.zh.md:安全须知(中文)CONTRIBUTING.zh.md:贡献指南
DeepSeek Harness 以 MIT License 开源,版权归 DeepSeek AI 所有。
第三方依赖及其许可证见包内 THIRD_PARTY_NOTICES.md。
本页仅为下载与教程镜像,与 DeepSeek 官方无隶属关系。