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


一、前置环境准备

参考文献:12:文献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.0
npm --version     # 应输出 11.x

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

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

npm config set prefix "D:\nvm\node_global"
npm config set cache "D:\nvm\node_cache"

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

npm config set registry https://registry.npmmirror.com

1.4 配置环境变量

用户环境变量
变量名 变量值 说明
NVM_HOME D:\nvm nvm 安装目录(nvm 安装程序通常已自动设置)
NVM_SYMLINK D:\nvm\nodejs Node 当前版本的符号链接(nvm 安装程序通常已自动设置)
Path(追加以下路径) D:\nvm
%NVM_HOME%
nvm 主程序所在目录
D:\nvm\nodejs
NVM_SYMLINK
node/npm 可执行文件目录(指向当前 nvm use 的版本)
D:\nvm\node_global npm 全局安装的命令所在目录(dsh、pnpm 等都在这里)
系统环境变量
变量名 变量值 说明
NODE_PATH D:\nvm\node_global\node_modules 供 Node require 解析全局模块(可选,非必需)
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.6
where.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.yaml API 凭据 敏感,谨慎备份
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' 缺 pnpm npm install -g pnpm
plugin tree failed to load profiles 依赖未安装 检查 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

# 查 pnpm
pnpm --version

# 查 node 进程
Get-Process node | Select-Object Id, StartTime, Path

八、完整卸载(如需)

# 1. 停止服务(关闭所有 dsh cmd 窗口)
# 2. 卸载 dsh
npm uninstall -g @deepseek-ai/dsh
# 3. 删除数据目录(会丢失对话记录,先备份!)
Remove-Item -Recurse -Force "$env:USERPROFILE\.dsh"
# 4. 删除桌面 bat
Remove-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 整理

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐