Windows 安装 DeepSeek Harness (dsh) 完整流程
2026/8/20 5:32:02 网站建设 项目流程

本文档记录在 Windows 上从零安装 dsh、配置启动方式的完整流程,可作为新机器部署手册照做。
环境:Windows 10/11 + nvm-windows + Node.js v24.19.0


一、前置环境准备

参考文献:1、2,:文献2里创建node_global与node_cache文件夹的位置并非最优解

1.1 安装 nvm-windows

下载地址:https://github.com/coreybutler/nvm-windows/releases

安装到D:\nvm(或任意非系统盘),安装程序会自动配置:

  • NVM_HOME=D:\nvm
  • NVM_SYMLINK=D:\nvm\nodejs
  • PATH 中加入上述两个路径

验证:

nvm version

1.2 安装 Node.js(满足 dsh 要求:^22.19.0 或 >=24.0.0)

方式 A:通过 nvm 在线安装

nvm install 24.19.0 nvm use 24.19.0

方式 B:手动下载安装(适合离线/网络差)

  1. 从 https://nodejs.org/dist/v24.19.0/ 下载node-v24.19.0-win-x64.zip
  2. 解压到D:\nvm\v24.19.0
  3. 执行nvm use 24.19.0(nvm 会自动建立D:\nvm\nodejs符号链接指向该版本)

验证:

node--version# 应输出 v24.19.0npm--version# 应输出 11.x

1.3 配置 npm 全局目录与缓存(迁移到非系统盘,节省 C 盘空间)

先在目录下创建这两个文件夹:

npm configsetprefix"D:\nvm\node_global"npm configsetcache"D:\nvm\node_cache"

设置国内镜像加速(可选,网络好可跳过):

npm configsetregistry https://registry.npmmirror.com

1.4 配置环境变量

用户环境变量
变量名变量值说明
NVM_HOMED:\nvmnvm 安装目录(nvm 安装程序通常已自动设置)
NVM_SYMLINKD:\nvm\nodejsNode 当前版本的符号链接(nvm 安装程序通常已自动设置)
Path(追加以下路径)D:\nvm
%NVM_HOME%
nvm 主程序所在目录
D:\nvm\nodejs
NVM_SYMLINK
node/npm 可执行文件目录(指向当前nvm use的版本)
D:\nvm\node_globalnpm 全局安装的命令所在目录(dsh、pnpm 等都在这里)
系统环境变量
变量名变量值说明
NODE_PATHD:\nvm\node_global\node_modules供 Noderequire解析全局模块(可选,非必需)
Path(追加以下路径)D:\nvm\node_global\node_modules冗余项,无害,可留可删
D:\nvm\node_global最好加上

说明

  • NVM_HOMENVM_SYMLINK一般由 nvm-windows 安装程序自动配置,无需手动添加。
  • Path最重要的是D:\nvm\node_global——dsh、pnpm 等通过npm install -g安装的命令都在这里,不加这个路径,dshpnpm命令会找不到。
  • NODE_PATH和系统 Path 里的node_modules是可选的,不影响 dsh 运行。
  • 修改环境变量后,已打开的 cmd/PowerShell 窗口需重新打开才能生效。

二、安装 pnpm(关键步骤,不可省略)

这是 dsh 能否正常启动的关键依赖。dsh 通过 pnpm 安装 profile 的 200+ 插件依赖到~/.dsh/profiles。没有 pnpm,依赖装不出来,dsh 会报Cannot find package '@deepseek-ai/dsh-client-ui-plan'之类错误崩溃。

npm install-g pnpm

验证:

pnpm--version# 应输出 11.x

故障信号:如果 dsh 启动时报ERR_MODULE_NOT_FOUNDplugin tree failed to load第一时间检查 pnpm 是否存在。这是最常见的根因。


三、全局安装固定版本 dsh

全局安装而非 npx 临时运行,理由:

  • 避免 npx 缓存被清理/版本更新时重置,导致 profiles 依赖 junction 失效(这是之前踩过的大坑)
  • 启动更快,不再每次检查新版
  • 版本锁死,行为可预期
npm install-g @deepseek-ai/dsh@0.1.0-rc.6

安装时会有若干allow-scripts警告(npm 11 的安全机制,拦住原生模块的安装脚本)。建议补跑一次允许脚本,确保node-pty(终端)、koffi(FFI)等原生模块编译完成:

npm install-g--allow-scripts=@deepseek-ai/dsh-subprocess-local,koffi,node-pty,@google/genai,protobufjs @deepseek-ai/dsh@0.1.0-rc.6

验证:

dsh--version# 应输出 0.1.0-rc.6where.exe dsh# 应指向 D:\nvm\node_global\dsh.ps1

安装可能残留临时目录D:\nvm\node_global\node_modules\@deepseek-ai\.dsh-xxxxxx,无影响,可手动删除。


四、创建桌面启动批处理

4.1 确认真实桌面路径

Windows 桌面可能被 OneDrive 重定向,先确认真实位置:

[Environment]::GetFolderPath('Desktop')
  • 输出C:\Users\<用户名>\Desktop→ 用这个路径
  • 输出D:\Desktop之类 → 用输出的路径(本文档假设为D:\Desktop

4.2 创建启动 bat

在真实桌面新建文件dsh-web.bat,内容如下:

@echo off chcp 936 >nul title DeepSeek Harness (dsh web) echo. echo 正在启动 dsh web 服务... echo 浏览器将在几秒后自动打开 http://localhost:3080 echo 关闭此窗口即可停止服务。 echo. start "" http://localhost:3080 dsh web

手动创建步骤(记事本法)

  1. 打开记事本(Win+R 输notepad
  2. 粘贴上述内容
  3. 文件 → 另存为
  4. 保存位置选桌面
  5. 文件名填dsh-web.bat
  6. 保存类型选"所有文件 (.)"(否则会变成.bat.txt
  7. 编码选 UTF-8(有中文 echo 必须用 UTF-8)
  8. 保存

两个关键点:后缀.bat、编码UTF-8。搞错任一项都会导致文件无法使用。

4.3 使用方法

  • 启动:双击dsh-web.bat→ 弹出黑色 cmd 窗口 → 自动打开浏览器访问http://localhost:3080
  • 停止:关闭那个黑色 cmd 窗口
  • 服务监听在127.0.0.1:3080,仅本机可访问

五、数据存储说明

dsh 的所有数据都在C:\Users\<用户名>\.dsh\下,纯本地存储,无云同步:

路径内容备注
sessions\对话记录(session.jsonl.zstd核心数据,务必备份
settings.yaml全局设置可备份
.credentials.yamlAPI 凭据敏感,谨慎备份
storages\工作区状态可备份
profiles\profile 依赖安装区不要备份,让 dsh 自行生成
.anonymous-user-id匿名 ID无关紧要

关闭浏览器、结束 node 进程,对话记录依然保留,下次启动还在。


六、版本更新

全局安装的版本固定,不会自动升级。想升级时手动操作:

6.1 查看可用版本

npm view @deepseek-ai/dsh version# 最新版npm view @deepseek-ai/dsh versions--json# 所有历史版本

6.2 升级到新版

# 升级前先备份 sessions 目录!npm install-g @deepseek-ai/dsh@<新版本号> dsh--version# 验证

升级后若启动报错,可能是旧 profiles 不兼容,删除~/.dsh/profiles让 dsh 重建。

6.3 回退到旧版

npm install-g @deepseek-ai/dsh@0.1.0-rc.6

npm 上的历史版本不会消失,随时可回退。


七、故障排查速查表

现象可能原因解决
Cannot find package '@deepseek-ai/xxx'缺 pnpmnpm install -g pnpm
plugin tree failed to loadprofiles 依赖未安装检查 pnpm,删~/.dsh/profiles重启
端口 3080 不监听进程未起 / 启动崩溃cmd 前台跑dsh web看日志
端口被占用上次进程未退出netstat -ano | findstr :3080找 PID,Stop-Process -Id <PID> -Force
双击 bat 闪退编码非 UTF-8 / dsh 命令不存在检查 bat 编码、dsh --version
找不到桌面 bat桌面被 OneDrive 重定向[Environment]::GetFolderPath('Desktop')查真实路径
glibc/not a valid Win32 application用错平台包 / Start-Process 跑 .ps1用 cmd 或直接双击 bat

通用排查命令

# 端口状态netstat-ano|findstr :3080# 查 dsh 版本dsh--version# 查 pnpmpnpm--version# 查 node 进程Get-Processnode|Select-ObjectId,StartTime,Path

八、完整卸载(如需)

# 1. 停止服务(关闭所有 dsh cmd 窗口)# 2. 卸载 dshnpm uninstall-g @deepseek-ai/dsh# 3. 删除数据目录(会丢失对话记录,先备份!)Remove-Item-Recurse-Force"$env:USERPROFILE\.dsh"# 4. 删除桌面 batRemove-Item"D:\Desktop\dsh-web.bat"

附:关键路径速查

  • nvm 安装目录:D:\nvm
  • Node 当前版本:D:\nvm\v24.19.0
  • Node 符号链接:D:\nvm\nodejs(指向当前 use 的版本)
  • npm 全局目录:D:\nvm\node_global
  • npm 缓存目录:D:\nvm\node_cache
  • dsh 可执行:D:\nvm\node_global\dsh.ps1
  • dsh 数据目录:C:\Users\<用户名>\.dsh\
  • 桌面启动 bat:D:\Desktop\dsh-web.bat(或C:\Users\<用户名>\Desktop\dsh-web.bat

文档版本:2026-08-19 基于 dsh 0.1.0-rc.6 + Node v24.19.0 + pnpm 11.x 整理

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询