Windows 下通过 WSL2 + pnpm 从源码运行 DeepSeek Harness:从零开始的完整教程

0 阅读13分钟

DeepSeek 官方已经开源了自己的 Agent Harness —— DeepSeek Harness(dsh) 。

它和直接在 Windows 上运行最大的区别之一,是 Linux 环境下可以原生使用 Bash、PTY、Linux 工具链和 Linux Sandbox,因此如果你的目标是使用 DeepSeek Harness 的 Bash 工作流,WSL2 是 Windows 用户非常合适的运行环境。

本文将完整介绍如何在 Windows 上通过:

Windows
  ↓
WSL2 Ubuntu
  ↓
nvm
  ↓
Node.js
  ↓
pnpm
  ↓
DeepSeek Harness 源码
  ↓
pnpm install
  ↓
pnpm run build
  ↓
pnpm dsh web

最终启动 DeepSeek Harness Web UI。

本文尤其针对一个非常常见的问题进行了处理:

node-pty
node-gyp
make: not found

这也是目前在 Linux / WSL 上从源码安装 DeepSeek Harness 时最容易踩到的坑之一。


一、我们最终要搭建什么环境?

安装完成以后,整个运行架构如下:

Windows 11
│
├── Edge / Chrome
│       │
│       │ http://127.0.0.1:3080
│       ↓
│
└── WSL2 Ubuntu
        │
        ├── Bash
        │
        ├── Git
        │
        ├── GCC / G++
        │
        ├── Make
        │
        ├── Python
        │
        ├── Node.js
        │
        ├── pnpm
        │
        └── DeepSeek Harness
                │
                ├── node-pty
                ├── Agent
                ├── Plugins
                ├── Sandbox
                └── Web UI

这里最关键的一点是:

DeepSeek Harness 本身运行在 Linux 里,而不是 Windows Node.js 里。

也就是说,不是这种结构:

Windows dsh
    ↓
wsl.exe
    ↓
bash

而是:

WSL Linux
    ↓
dsh
    ↓
bash

这样可以避免 Windows 与 Linux 之间大量麻烦的兼容问题,例如:

  • Windows 路径和 Linux 路径转换;
  • PowerShell 与 Bash 差异;
  • Windows PTY 与 Linux PTY 差异;
  • Unix Signal;
  • 文件权限;
  • 可执行位;
  • Linux Sandbox;
  • Shell 工具链;
  • node-pty 的运行环境。

对于希望在 Windows 上使用 DeepSeek Harness Linux/Bash 能力的人来说,这是一条非常干净的路线。

DeepSeek 官方 README 当前也明确提供了“从源码运行”的方式:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

其中 pnpm run build 用来生成仓库所需的构建产物,之后 pnpm dsh web 直接使用这些已经构建好的产物启动 Web UI。


二、本文适用环境

本文适用于:

Windows 10 / Windows 11
WSL2
Ubuntu / Debian 系 Linux
x86-64 电脑

本文实际遇到问题时的环境为:

WSL2
Linux x64
Node.js v24.19.0
pnpm 11.7.0
Python 3.14.4

实际安装日志中,DeepSeek Harness 的 pnpm workspace 一共识别到 238 个项目,并下载约 923 个包。

需要特别说明的是:

DeepSeek Harness 目前仍然处于 Developer Preview。

官方明确提醒项目仍在快速迭代,未来可能发生破坏兼容性的修改。

因此本文中的命令针对当前版本有效;如果未来项目结构发生重大改变,应优先参考官方 README。


三、第一步:确认 WSL2 已经安装

首先打开 Windows:

PowerShell

建议使用:

Windows Terminal

然后执行:

wsl --status

再执行:

wsl -l -v

正常情况下应该看到类似:

  NAME      STATE           VERSION
* Ubuntu    Running         2

重点是:

VERSION
2

如果显示的是:

1

说明使用的是 WSL1。

建议切换到 WSL2。

例如:

wsl --set-version Ubuntu 2

如果电脑上根本还没有安装 WSL,可以执行:

wsl --install

然后按照 Windows 提示重启。

安装 Ubuntu 后,第一次启动时会要求创建 Linux 用户。

例如:

Enter new UNIX username: npc
New password:
Retype new password:

以后你看到的终端提示符可能类似:

npc@npc:~$

其中:

npc

就是你的 Linux 用户名。


四、进入 WSL

在 PowerShell 中执行:

wsl

或者直接从 Windows 开始菜单打开:

Ubuntu

进入以后,你应该看到类似:

npc@npc:~$

先确认系统确实运行在 WSL:

uname -a

你可能会看到:

Linux npc 6.x.x-microsoft-standard-WSL2 ...

只要里面出现:

microsoft-standard-WSL2

基本就说明没有问题。


五、非常重要:不要直接使用 Windows 里的 Node.js

这是很多人第一次使用 WSL 时最容易犯的错误。

Windows 和 WSL 虽然可以互相访问文件,但:

Windows Node.js

和:

Linux Node.js

实际上属于两个完全不同的运行环境。

例如,如果你之前已经在 Windows 中:

npm install -g @deepseek-ai/dsh

那么进入 WSL 后执行:

which dsh

可能会得到:

/mnt/c/Users/12713/AppData/Roaming/npm/dsh

这就意味着:

WSL 当前调用的是 Windows npm 安装出来的 dsh。

随后它可能执行:

node

而 WSL 里又没有 Linux Node,于是出现:

exec: node: not found

例如:

/mnt/c/Users/12713/AppData/Roaming/npm/dsh: 15: exec: node: not found

这种情况下,不要想办法给 Windows 那个 dsh“补一个 node”。

正确做法是:

在 WSL 内重新安装完整的 Linux Node.js 环境。


六、更新 Ubuntu 软件包

首先:

sudo apt update

然后:

sudo apt upgrade -y

虽然 upgrade 并非绝对必要,但新装的 WSL 建议先更新一次。


七、安装最基础的软件

安装 Git、curl:

sudo apt install -y git curl

验证:

git --version

以及:

curl --version

都应该正常返回版本号。


八、提前安装 Linux 编译工具链

这一部分非常重要。

DeepSeek Harness 会使用:

node-pty

而 Linux 环境下 node-pty 可能需要在本机通过 node-gyp 编译 native module。

DeepSeek Harness 当前的 pnpm workspace 也明确允许 node-pty 执行 native build,因为它是 persistent PTY backend 的跨平台组件。

因此建议不要等报错以后才补依赖,直接提前安装:

sudo apt install -y build-essential python3 python3-dev

其中:

build-essential

会安装 Linux 上最常用的 C/C++ 编译工具。

主要包括:

gcc
g++
make
libc 开发文件

安装完成后检查:

which make

应该得到:

/usr/bin/make

再执行:

make --version

应该看到 GNU Make 的版本。

检查 GCC:

gcc --version

检查 G++:

g++ --version

检查 Python:

python3 --version

只要这些命令全部正常,就已经解决了后面最常见的 node-gyp 环境问题。


九、为什么一定要装 build-essential?

这是本文最值得强调的一个坑。

在实际安装 DeepSeek Harness 时,pnpm install 下载到了:

node-pty@1.1.0

随后执行:

node scripts/prebuild.js || node-gyp rebuild

日志显示:

Checking prebuilds...

然后发现:

linux-x64

预编译目录不存在,于是转而使用:

node-gyp rebuild

进行本地编译。

随后 node-gyp 正确识别到了:

Node.js
Python
Linux x64

但最终失败于:

gyp ERR! build error
gyp ERR! stack Error: not found: make

所以这里的问题既不是:

Node.js 坏了

也不是:

Python 坏了

更不是:

DeepSeek Harness 下载失败

而仅仅是:

Linux 没安装 make

DeepSeek Harness 社区中目前也有人遇到了 Linux 下 node-pty 没有对应预编译二进制、需要回退到 node-gyp rebuild 的情况。

所以最省事的处理方式就是一开始直接:

sudo apt install -y build-essential python3-dev

十、安装 nvm

接下来安装 Node.js。

这里推荐不要直接:

sudo apt install nodejs

而使用:

nvm

原因是 nvm 可以非常方便地:

  • 安装不同 Node 版本;
  • 切换版本;
  • 升级 Node;
  • 避免 root 权限;
  • 避免污染系统;
  • 避免 Ubuntu 自带 Node 版本过旧。

执行:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

安装完成后:

source ~/.bashrc

然后验证:

nvm --version

如果正常看到:

0.40.3

或者其他版本号,则安装成功。


十一、安装 Node.js

执行:

nvm install --lts

然后:

nvm use --lts

再设置为默认:

nvm alias default 'lts/*'

检查:

node -v

以及:

npm -v

还要检查 Node 到底来自哪里:

which node

正确结果应该类似:

/home/npc/.nvm/versions/node/v24.19.0/bin/node

重点是必须以:

/home/你的用户名/

开头。

如果看到:

/mnt/c/Program Files/nodejs/node

或者:

/mnt/c/Users/...

说明你仍然在调用 Windows Node。

这种情况需要先处理 PATH,不要继续安装 Harness。


十二、安装 pnpm

DeepSeek Harness 官方源码构建方式使用的是:

pnpm

而不是 npm。

推荐通过 Corepack 启用:

corepack enable

然后安装 pnpm:

corepack prepare pnpm@latest --activate

检查:

pnpm --version

应该正常返回版本号。

然后:

which pnpm

确保 pnpm 同样来自 Linux 用户目录,而不是:

/mnt/c/...

十三、创建 DeepSeek Harness 存放目录

不要把源码直接堆到:

~

目录。

建议专门建立一个目录。

例如:

mkdir -p ~/dsharness

进入:

cd ~/dsharness

检查:

pwd

应该看到:

/home/npc/dsharness

当然,你可以修改这个目录。

比如:

mkdir -p ~/code
cd ~/code

也完全可以。

本文后面统一使用:

~/dsharness

十四、克隆 DeepSeek Harness 官方源码

执行:

git clone https://github.com/deepseek-ai/deepseek-harness.git

下载过程中会看到类似:

Cloning into 'deepseek-harness'...
Receiving objects...
Resolving deltas...

实际测试中仓库 clone 完成后约下载了 110 MiB Git 数据。

下载完成后:

cd deepseek-harness

检查:

pwd

应该类似:

/home/npc/dsharness/deepseek-harness

十五、先检查一遍环境

正式安装依赖之前,建议执行:

node -v
npm -v
pnpm -v
python3 --version
make --version
gcc --version
g++ --version
git --version

然后检查路径:

which node
which npm
which pnpm
which python3
which make
which gcc
which g++

理想情况下应该类似:

/home/npc/.nvm/versions/node/vXX.XX.X/bin/node
/home/npc/.nvm/versions/node/vXX.XX.X/bin/npm
/home/npc/.local/share/pnpm/pnpm
/usr/bin/python3
/usr/bin/make
/usr/bin/gcc
/usr/bin/g++

如果这些都正常,再继续。


十六、安装 DeepSeek Harness 依赖

确保当前目录:

pwd

是:

/home/你的用户名/dsharness/deepseek-harness

然后执行:

pnpm install

第一次会下载大量依赖。

你可能看到:

Scope: all 238 workspace projects
Packages: +923

以及:

Downloading ...

这是正常的。

实际安装中确实识别到 238 个 workspace project,并安装 923 个 package。


十七、这些 WARN 不需要处理

安装过程中可能看到:

Unsupported platform:
wanted: {"cpu":["arm64"],"os":["linux"]}
current: {"os":"linux","cpu":"x64"}

例如:

native/landlock-run/packages/linux-arm64

这是正常警告。

原因是 DeepSeek Harness 是 monorepo,其中包含:

linux-arm64
linux-x64
Windows
macOS

等不同平台组件。

你的电脑是:

linux-x64

所以 pnpm 扫描到 ARM64 包时提示平台不匹配,并不代表安装失败。实际日志中也出现了这一提示,但真正的失败原因后来是 make 缺失。

同样,如果看到:

There are cyclic workspace dependencies

也通常只是 warning。

还有:

Tarball download average speed ...
is below ...

只是下载速度较慢。

这些都不是致命错误。

真正需要关注的是:

ERR!
ERROR
ELIFECYCLE
Command failed
exit code 1

十八、如果看到 node-pty 正在编译,不要慌

Linux 下你很可能看到:

node-pty: Running install script

然后:

node scripts/prebuild.js || node-gyp rebuild

随后:

Checking prebuilds...

如果没有对应 Linux prebuild,则会开始:

node-gyp rebuild

只要你已经安装:

sudo apt install -y build-essential python3-dev

就让它继续编译。

正常情况下你可能看到:

CXX(target)

或者:

make

这代表正在编译 C/C++ native addon。

不要关闭终端。


十九、如果仍然报 make not found

如果出现:

gyp ERR! stack Error: not found: make

执行:

sudo apt update
sudo apt install -y build-essential

然后:

which make

确认:

/usr/bin/make

再:

make --version

确认正常。

然后重新:

pnpm install

不需要重新 clone。

也通常不需要重新下载全部依赖。

pnpm 会复用缓存。

例如实际第二次安装时可以看到:

reused 917
downloaded 0

说明之前已经成功下载的包全部被复用了。


二十、依赖安装成功以后开始构建

当:

pnpm install

完整结束,并且没有:

ELIFECYCLE
Command failed

以后,执行:

pnpm run build

这一条非常重要。

因为源码仓库并不是 clone 完就可以直接运行。

官方说明:

pnpm run build

会准备仓库运行需要的 artifacts。

然后:

pnpm dsh web

会直接使用已经构建好的产物,而不会重新进行完整构建。

因此正确顺序一定是:

pnpm install
pnpm run build
pnpm dsh web

不要跳过:

pnpm run build

二十一、启动 DeepSeek Harness Web UI

构建完成后执行:

pnpm dsh web

DeepSeek Harness Web UI 默认监听:

http://127.0.0.1:3080

官方 README 当前也是这个默认地址。

因为 WSL2 与 Windows localhost 有较好的互通,所以通常可以直接在 Windows 浏览器打开:

http://127.0.0.1:3080

或者:

http://localhost:3080

即可看到 DeepSeek Harness 界面。


二十二、不希望自动打开浏览器怎么办?

可以执行:

pnpm dsh web --no-open

这样 Harness 只启动 Web Server,而不会尝试自动打开浏览器。

官方也提供了 --no-open 参数用于这一用途。


二十三、以后每天怎么启动?

第一次安装完成之后,不需要每天重新执行:

git clone
pnpm install
pnpm run build

以后正常启动只需要:

wsl

进入 WSL 后:

cd ~/dsharness/deepseek-harness

然后:

pnpm dsh web

即可。

也就是:

cd ~/dsharness/deepseek-harness
pnpm dsh web

然后 Windows 浏览器访问:

http://127.0.0.1:3080

二十四、一条命令启动

如果嫌每次:

cd ...
pnpm dsh web

麻烦,可以写一个 Bash alias。

编辑:

nano ~/.bashrc

最后加入:

alias dshweb='cd ~/dsharness/deepseek-harness && pnpm dsh web'

保存后:

source ~/.bashrc

以后进入 WSL 后只需要:

dshweb

就能启动。


二十五、甚至可以从 Windows PowerShell 一条命令启动

如果 Harness 安装在:

/home/npc/dsharness/deepseek-harness

可以直接在 Windows PowerShell 执行:

wsl bash -lc "cd ~/dsharness/deepseek-harness && pnpm dsh web"

于是整个启动过程就变成:

Windows PowerShell
        ↓
      WSL2
        ↓
      Bash
        ↓
      pnpm
        ↓
DeepSeek Harness
        ↓
http://127.0.0.1:3080

二十六、Windows 项目怎么给 WSL Harness 使用?

Windows C 盘在 WSL 中对应:

/mnt/c

例如 Windows 文件:

C:\Users\12713\Desktop\my-project

在 WSL 中就是:

/mnt/c/Users/12713/Desktop/my-project

所以:

cd /mnt/c/Users/12713/Desktop/my-project

即可访问。

类似:

D:\Code\demo

对应:

/mnt/d/Code/demo

因此你完全可以:

Windows:
VS Code / 浏览器 / 文件管理器

WSL:
DeepSeek Harness / Bash / Git / Python / Node

共享同一份 Windows 项目。


二十七、更推荐把代码放 Linux 目录还是 /mnt/c?

两种都可以。

方式一:项目放 Windows

例如:

C:\Code\project

WSL:

cd /mnt/c/Code/project

优点:

  • Windows 文件管理器访问方便;
  • Windows IDE 访问方便;
  • 文件位置直观。

缺点:

  • /mnt/c 文件 IO 通常不如 WSL Linux 文件系统快;
  • 某些 Linux 权限行为存在区别。

方式二:项目直接放 WSL

例如:

/home/npc/code/project

优点:

  • Linux 原生文件系统;
  • npm / pnpm / Git 大仓库速度通常更好;
  • 文件权限更符合 Linux 行为;
  • native toolchain 更稳定。

Windows 可以通过:

\wsl$\Ubuntu\home\npc\code\project

访问。

如果你主要使用 Agent、Node、Python、Git 等 Linux 工具,我更推荐:

/home/npc/code/

而不是:

/mnt/c/

二十八、为什么 Harness 自己最好也放在 Linux home 下?

推荐:

/home/npc/dsharness/deepseek-harness

不推荐:

/mnt/c/Users/12713/deepseek-harness

原因很简单:

DeepSeek Harness 本身是一个很大的 Node/pnpm monorepo。

它拥有:

923+ packages
node_modules
native addon
大量 symlink
大量小文件
大量构建产物

这些东西放在 Linux 原生文件系统里通常更合适。

所以建议:

Harness:
~/dsharness/deepseek-harness

你的 Windows 项目:
/mnt/c/...

这是一种比较舒服的组合。


二十九、完整复制版:第一次安装

如果你已经安装好了 WSL Ubuntu,可以把下面这组命令基本原样执行:

sudo apt update
sudo apt upgrade -y

sudo apt install -y \
  git \
  curl \
  build-essential \
  python3 \
  python3-dev

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

source ~/.bashrc

nvm install --lts
nvm use --lts
nvm alias default 'lts/*'

corepack enable
corepack prepare pnpm@latest --activate

mkdir -p ~/dsharness
cd ~/dsharness

git clone https://github.com/deepseek-ai/deepseek-harness.git

cd deepseek-harness

pnpm install

pnpm run build

pnpm dsh web

然后 Windows 浏览器打开:

http://127.0.0.1:3080

三十、安装前的环境自检命令

如果你想尽可能一次成功,可以在 pnpm install 前执行:

echo "=== Node ==="
node -v
which node

echo "=== npm ==="
npm -v
which npm

echo "=== pnpm ==="
pnpm -v
which pnpm

echo "=== Python ==="
python3 --version
which python3

echo "=== Make ==="
make --version
which make

echo "=== GCC ==="
gcc --version
which gcc

echo "=== G++ ==="
g++ --version
which g++

echo "=== Git ==="
git --version
which git

这里尤其检查:

node
npm
pnpm

千万不要指向:

/mnt/c/

否则说明你正在混用 Windows 环境。


三十一、常见错误 1:dsh: node not found

错误:

/mnt/c/Users/你的用户名/AppData/Roaming/npm/dsh:
exec: node: not found

原因:

你在 WSL 里调用了 Windows npm 安装出来的 dsh。

检查:

which dsh

如果:

/mnt/c/Users/...

就是这个问题。

正确路线不是修这个 Windows dsh,而是在 WSL 内安装 Node,并从 WSL 环境运行 Harness。


三十二、常见错误 2:node-gyp 找不到 make

错误:

gyp ERR! build error
gyp ERR! stack Error: not found: make

解决:

sudo apt update
sudo apt install -y build-essential

然后:

make --version

确认成功。

再重新:

pnpm install

在实际安装日志中,node-gyp 已经正确检测到 Node v24.19.0 和 Python 3.14.4,真正导致失败的就是系统里没有 make。


三十三、常见错误 3:linux-arm64 Unsupported platform

例如:

native/landlock-run/packages/linux-arm64
Unsupported platform
wanted: arm64
current: x64

如果你的电脑确实是:

x86_64

一般可以忽略。

确认:

uname -m

如果返回:

x86_64

说明你就是 x64。


三十四、常见错误 4:cyclic workspace dependencies

看到:

There are cyclic workspace dependencies

通常不用处理。

DeepSeek Harness 本身是大型 pnpm workspace,安装时可能检测到 workspace package 之间存在循环依赖关系警告。

只要最后:

pnpm install

成功退出即可。


三十五、常见错误 5:下载很慢

例如:

Tarball download average speed ...

这不属于 Harness 本身错误。

如果网络只是慢,不需要处理。

pnpm 有缓存机制。

即使安装中途失败,第二次:

pnpm install

通常也会复用大量已经下载完成的 package。

实际日志中第二次安装已经显示:

reused 917
downloaded 0

因此不要因为某个 native addon 编译失败,就把整个仓库删掉重新下载。


三十六、常见错误 6:node-pty / pty.node 找不到

如果运行 Harness 时出现:

Failed to load native module: pty.node

说明 node-pty native addon 没有正确生成。

Linux 用户目前确实有人遇到 node-pty 没有 linux-x64 prebuild,需要本地 node-gyp rebuild 的情况。

首先确保:

sudo apt install -y build-essential python3-dev

然后回到仓库:

cd ~/dsharness/deepseek-harness

重新:

pnpm install

必要时可以清理:

rm -rf node_modules

然后:

pnpm install
pnpm run build

不过除非安装状态已经异常,否则不建议一开始就删除 node_modules。


三十七、常见错误 7:老 Ubuntu 的 GCC 不支持 C++20

如果使用较老的 Linux 发行版,例如 Ubuntu 20.04,可能出现类似:

g++: error: unrecognized command line option '-std=gnu++20'

这说明问题已经不是:

make 不存在

而是:

G++ 太旧

DeepSeek Harness 社区已经有人在 Ubuntu 20.04 上遇到类似 node-pty C++20 编译问题。此时需要安装支持 C++20 的更新 GCC/G++。

对于新装 WSL 的用户,更简单的方法通常是直接使用较新的 Ubuntu 版本。


三十八、如何更新 DeepSeek Harness 源码?

以后 DeepSeek Harness 更新后:

cd ~/dsharness/deepseek-harness

然后:

git pull

再:

pnpm install

再:

pnpm run build

最后:

pnpm dsh web

也就是:

cd ~/dsharness/deepseek-harness
git pull
pnpm install
pnpm run build
pnpm dsh web

由于 DeepSeek Harness 当前仍处于 Developer Preview,并明确说明可能出现 breaking changes,所以更新版本后重新执行:

pnpm install
pnpm run build

是比较保险的做法。


三十九、如何判断自己真的跑在 Linux Bash 环境?

运行:

uname -a

应该出现:

microsoft-standard-WSL2

检查:

echo $SHELL

通常:

/bin/bash

检查 Node:

which node

应该:

/home/xxx/.nvm/...

检查 Harness 运行目录:

pwd

应该:

/home/xxx/...

而不是:

/mnt/c/Users/.../AppData/Roaming/npm

这就证明你的 DeepSeek Harness 已经完整运行在:

Linux / WSL2

环境里。


四十、最终推荐的目录结构

我个人推荐最终整理成:

/home/npc/
│
├── dsharness/
│   └── deepseek-harness/
│
├── code/
│   ├── project-a/
│   ├── project-b/
│   └── project-c/
│
└── .nvm/

其中:

~/dsharness/deepseek-harness

只负责 Harness 本身。

然后自己的代码放:

~/code

如果必须操作 Windows 项目,也可以直接访问:

/mnt/c/Users/你的用户名/...

四十一、最终版:以后真正需要记住的命令只有两条

第一次安装完成以后,每次启动:

cd ~/dsharness/deepseek-harness
pnpm dsh web

Windows 打开:

http://127.0.0.1:3080

即可。

如果做了 alias:

alias dshweb='cd ~/dsharness/deepseek-harness && pnpm dsh web'

以后甚至只需要:

dshweb

四十二、总结

在 Windows 上运行 DeepSeek Harness,如果希望获得真正的:

Bash
Linux PTY
Linux 工具链
Linux 文件权限
Linux Sandbox

那么与其让 Windows 版 Harness 再调用:

wsl.exe bash

更干净的做法是:

Windows
    ↓
WSL2
    ↓
DeepSeek Harness
    ↓
Bash

完整安装流程本质上只有:

sudo apt install -y \
  git \
  curl \
  build-essential \
  python3 \
  python3-dev

# 安装 nvm / Node.js / pnpm

git clone https://github.com/deepseek-ai/deepseek-harness.git

cd deepseek-harness

pnpm install

pnpm run build

pnpm dsh web

真正最容易踩的坑,则是:

node-pty
    ↓
没有 Linux prebuild
    ↓
node-gyp rebuild
    ↓
需要 make / gcc / g++

所以只要一开始提前安装:

sudo apt install -y build-essential python3-dev

就能规避很大一部分 Linux/WSL 安装失败。

最终架构:

Windows 浏览器
      │
      │ 127.0.0.1:3080
      ↓
DeepSeek Harness Web
      │
      ↓
WSL2 Ubuntu
      │
      ├── Node.js
      ├── pnpm
      ├── node-pty
      ├── Bash
      ├── GCC
      ├── Python
      └── Linux Toolchain

对于希望在 Windows 上获得完整 DeepSeek Harness Linux/Bash 使用体验的人来说,这是一种相当稳妥的部署方式。