DeepSeek Harness (DSH) 最吸引人的一点就是它 “一切皆插件” 的设计理念。
模型、工具、界面,甚至 Agent 的逻辑循环都可以通过插件来替换或增强。
必要网址
1、DeepSeek Harness 官网:
https://www.deepseek.com/harness/
2、DeepSeek Harness GitHub 地址:
https://github.com/deepseek-ai/deepseek-harness
3、DeepSeek 官方开放平台(用于购买官方 API key):
https://platform.deepseek.com/usage


安装方式
方式一:node 安装
运行需要安装 node
node 说明:
以前 JavaScript 只能在浏览器里跑(用来做网页特效、按钮点击、动画等)。
有了 Node.js 之后,JavaScript 就能像 Python、Java 一样,在电脑后台、服务器上跑程序了。
DSH 组件要求最低 node 版本 node >= v22.19.0
已安装 node 的,直接复制这个指令到终端
npx @deepseek-ai/dsh web

输入y


看到输出:dsh web: http://127.0.0.1:3080 即为安装成功,浏览器打开即可访问
未安装 node ? 或是不确定有没有安装?
检查本机 node 版本
command + 空格 搜索:终端 / ter 打开终端

在终端查看当前电脑上的 node 版本(如果没有显示版本,说明没安装 node ,显示版本则安装了node)
node-v(注意有个空格)回车执行命令,查看当前版本
# 未安装 nodenode -vcommand not found: node# 已安装 node(正常显示版本号)node -vvxx.xx.x

有 node 版本,且版本号大于 v22.19.0
直接运行官方安装命令即可安装:DeepSeek Harness 安装教程
有 node 版本,但是版本号小于v22.19.0
参考下方步骤,使用 nvm 安装新版 node,并通过nvm alias default 版本号指定使用最新版版本号。
无 node 版本,执行下方安装步骤
可以通过安装 brew 来安装 node 管理工具 nvm
brew:
Mac 电脑上的包安装管理器,一键安装、更新或卸载如
git、python、wget、node等开发工具nvm:
全称是 Node Version Manager(Node 版本管理工具)。
它是一个命令行工具,专门用来安装、卸载和管理电脑上的不同 Node.js 版本
brew 安装命令:
# 官方脚本 (推荐):# bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"# 国内镜像 (加速):如果官方源访问慢,可使用国内镜像。# bash/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
安装成功后验证,终端执行 brew -v 查看版本,正确输出: Homebrew x.x.xx 即为安装成功
nvm 安装命令:
brew install nvm安装成功后验证,终端执行
nvm -v查看版本,正确输出:x.x.xx即为安装成功
nvm 常用命令:
#查看当前电脑上安装有哪些版本的 nodenvm list# 安装指定版本的 nodenvm install 版本号# 使用指定版本号(通常只是终端临时切换版本,终端默认版本建议使用:nvm alias default 版本号命令)nvm use 版本号# 指定电脑默认版本的nodenvm alias default 版本号
安装最新长期支持版 node 24
nvm install --lts# 或者nvm install 24
安装成功后验证,终端执行 node -v 查看版本,正确输出: vxx.x.xx 即为安装成功
安装 DeepSeek Harness
npx @deepseek-ai/dsh web升级
# 强制使用最新版安装npx @deepseek-ai/dsh@latest web
运行
# 安装后 后续运行npx @deepseek-ai/dsh web
安装失败?发生错误?
异常 1:~/.npm 缓存目录权限异常
➜ ~ npx @deepseek-ai/dsh webNeed to install the following packages:@deepseek-ai/dsh@0.1.0-rc.6Ok to proceed? (y) ynpm error code EEXISTnpm error syscall mkdirnpm error path /Users/xxx/.npm/_cacache/content-v2/sha512/3c/d0npm error errno EEXISTnpm error Invalid response body while trying to fetch https://registry.npmjs.org/@deepseek-ai%2fdsh-terminal-bash: EACCES: permission denied, mkdir '/Users/xxx/.npm/_cacache/content-v2/sha512/3c/d0'npm error File exists: /Users/xxx/.npm/_cacache/content-v2/sha512/3c/d0npm error Remove the existing file and try again, or run npmnpm error with --force to overwrite files recklessly.npm error A complete log of this run can be found in: /Users/xxx/.npm/_logs/2026-08-16T14_19_08_967Z-debug-0.log

问题说明:
通常之前某次使用 sudo npm,导致缓存里部分文件归 root 所有。
解决方案:
# 修复 npm 目录权限(会要求输入 Mac 登录密码,输入时终端不会显示字符,正常输入后回车即可。)sudo chown -R $(whoami) ~/.npm# 删除缓存npm cache verify# 随后正常执行安装命令即可npx @deepseek-ai/dsh web
如果仍然出现 EEXIST,把 npm 缓存删除后重建:
# 删除 npm 缓存目录rm -rf ~/.npm/_cacachenpm cache verify# 随后正常执行安装命令即可npx @deepseek-ai/dsh web
异常 2:未检查 node 版本,使用了低版本 node 安装 DSH
➜ ~ npx @deepseek-ai/dsh webNeed to install the following packages:@deepseek-ai/dsh@0.1.0-rc.6Ok to proceed? (y) ynpm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'commander@15.0.0',npm warn EBADENGINE required: { node: '>=22.12.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'node-addon-require-builtin@0.1.5',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'sharp@0.35.3',npm warn EBADENGINE required: { node: '>=20.9.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/langs@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'shiki@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@earendil-works/pi-ai@0.82.1',npm warn EBADENGINE required: { node: '>=22.19.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@deepseek-ai/node-addon-landlock-run@0.1.1',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'chokidar@5.0.0',npm warn EBADENGINE required: { node: '>= 20.19.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/client-bedrock-runtime@3.1048.0',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@google/genai@1.52.0',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/core@3.977.8',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-node@3.972.80',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/eventstream-handler-node@3.972.33',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/middleware-eventstream@3.972.28',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/token-providers@3.1048.0',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/types@3.974.4',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/xml-builder@3.972.39',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-env@3.972.69',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-http@3.972.71',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-ini@3.973.14',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-process@3.972.69',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-sso@3.973.13',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-web-identity@3.972.75',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/credential-provider-login@3.972.76',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/nested-clients@3.997.43',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/token-providers@3.1111.0',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@aws-sdk/signature-v4-multi-region@3.996.45',npm warn EBADENGINE required: { node: '>=20.0.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/types@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'node-addon-native-custom-loader@0.1.5',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/core@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/engine-javascript@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/engine-oniguruma@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/themes@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: '@shikijs/primitive@4.4.3',npm warn EBADENGINE required: { node: '>=20' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn EBADENGINE Unsupported engine {npm warn EBADENGINE package: 'readdirp@5.1.1',npm warn EBADENGINE required: { node: '>= 20.19.0' },npm warn EBADENGINE current: { node: 'v18.20.8', npm: '10.8.2' }npm warn EBADENGINE }npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException insteadfile:///Users/sunquanqing/.npm/_npx/1e7f6d9597241db0/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:4import { parseEnv } from "node:util";^^^^^^^^SyntaxError: The requested module 'node:util' does not provide an export named 'parseEnv'at ModuleJob._instantiate (node:internal/modules/esm/module_job:123:21)at async ModuleJob.run (node:internal/modules/esm/module_job:191:5)at async ModuleLoader.import (node:internal/modules/esm/loader:337:24)at async loadESM (node:internal/process/esm_loader:34:7)at async handleMainPromise (node:internal/modules/run_main:106:12)Node.js v18.20.8
问题说明:
@deepseek-ai/dsh@0.1.0-rc.6 的依赖里,已经有多个包要求 Node 20+,甚至直接要求:
@earendil-works/pi-ai@0.82.1
required: node >=22.19.0
解决方案:
使用 nvm 安装高版本 node,并将默认 node 版本设置为可用的版本
再次安装 DSH 前需执行以下命令!否则还是安装异常
# 删除刚使用低版本 node 安装的临时目录rm -rf ~/.npm/_npx/1e7f6d9597241db0# 删除缓存npm cache verify
方式二:从源码安装
仍需确保 node 版本 node >= v22.19.0
先为 DSH 的代码找一个安装位置,以 用户根目录下的 work目录为例:
# work 目录:/Users/用户名/workcd work# 使用 git 命令克隆项目代码git clone https://github.com/deepseek-ai/deepseek-harness.git# 进入项目目录cd deepseek-harness# 执行运行命令pnpm installpnpm run buildpnpm dsh web
方式三:pnpm 安装
# pnpm 安装pnpm dlx @deepseek-ai/dsh@latest web
升级
pnpm dlx @deepseek-ai/dsh@latest web运行
pnpm dlx @deepseek-ai/dsh web访问 DeepSeek Harness
通过浏览器访问 DSH 后台:http://127.0.0.1:3080
当前应用形式只是个本地应用的壳子,仍需要使用官方或者第三方 API key 驱动,所以开始前建议先行准备好 API key。


好玩的插件
界面与体验增强 (UI/UX Enhancements)
这类插件能直接改变你与DSH交互的方式,让界面更顺手、更好看。
dsh-web-ui(全家桶):一个聚合包,一次安装就能获得任务看板、Git图谱、实时Token统计、皮肤中心等众多功能,把默认的“毛坯房”变成“精装房”。deepseek-harness-zh_pro(中文增强):专为中文用户优化,能修正界面残留英文、自动展开思考过程、调整对话宽度等,让界面更符合中文使用习惯。dsh-pet(桌面宠物):在Web UI里添加一个可爱的桌面宠物(比如“鲸鱼娘”),它的动画还能和Agent状态联动,非常有趣。dsh-tianshu-tui/deepseek-harness-tui(终端界面):为喜欢命令行的开发者提供TUI(终端用户界面),可以直接在终端里与DSH交互。dsh-genui(交互式UI渲染):让模型能在回复中直接生成并渲染交互式的UI组件,如图表、表单、3D场景等,极大丰富了对话的呈现形式。dsh-better-sidebar(侧边栏增强):改进侧边栏功能,集成文件浏览器、终端和Git审查等工具,方便预览和管理文件。
核心功能与工具扩展 (Core & Tools)
这类插件能直接赋予DSH新的能力,让它能“看到”更多、“做到”更多。
ModLens(视觉能力):这是DSH的首款视觉插件,能让纯文本模型“看见”图片。它通过调用外部视觉模型,将图片内容转换为文字描述,再喂给DeepSeek处理。dsh-plan-execute(双模型路由):实现“规划-执行”分离,由一个模型负责思考规划,另一个模型负责具体执行,可以提升复杂任务的效率。dsh-toolkit(零依赖工具套件):提供计算器、CSV处理、Diff、JSON、Markdown等基础但实用的工具,无需额外依赖。dsh-context-doctor(上下文医生):帮你分析每个请求的上下文构成,量化Token成本,检测并提示上下文中的重复与冲突,给出优化建议。dsh-voice-webspeech(语音输入):利用浏览器自带的Web Speech API,为DSH增加语音输入功能。dsh-news-plugin(RSS订阅):一个RSS新闻获取工具,让DSH能读取和解析RSS源。
复杂工作流与自动化 (Workflow & Automation)
如果你想让DSH处理更复杂的任务,这类插件提供了高级的编排能力。
dsh-deepresearch(深度研究):一个自适应深度研究编排器,能驱动DSH进行自主的、多步骤的在线研究。dsh-forge(扩展套件):被誉为DSH的“锻造台”,它提供了一套强大的运行时扩展,包括插件市场、技能管理、任务感知的路由策略,以及跨会话邮箱、Agent团队协作等高级功能。dsh-plan-execute:同上,它既是核心工具,也是实现特定工作流(规划-执行模式)的关键插件。
开发与管理工具 (Dev & Management)
这类工具帮助你更好地发现、安装和管理插件。
zat-dsh-engine(可视化插件市场):直接在DSH的Web设置中添加一个“插件市场”标签页,让你可以浏览、搜索并按分类筛选GitHub上所有带dsh-plugin标签的插件,并实现一键安装、更新和卸载。awesome-deepseek-harness/awesome-dsh-plugin(精选列表):这是两个由社区维护的“Awesome”列表,是发现新插件的最佳起点,它们对插件进行了详细分类。@dsh-tools/dsh-install(安装管理工具):一个强大的安装器,用于安装和管理MCP服务器和Skills,支持注册表备份、实时挂载等功能。
第三方客户端 (Third-party Clients)
除了官方Web界面,你还可以通过以下客户端使用DSH:
deepseek-harness-studio(零代码桌面端):一个开箱即用的桌面应用,支持Windows和macOS,内置插件发现和热点推送功能。deepseek-harness-desktop(Electron桌面封装):多个开发者提供了基于Electron的桌面版,双击即可启动,无需手动配置Node.js环境。Deepseek-Harness-LocalWorkbench(Windows本地工作台):专为Windows用户设计的本地工作台,基于WebView2构建。
怎么找到更多?
GitHub Topic:在GitHub上搜索
dsh-plugin主题,这是官方推荐的插件聚集地。Awesome列表:收藏下面这两个精选列表,它们是了解生态的窗口:
awesome-deepseek-harness
awesome-dsh-plugin
插件市场:直接安装
zat-dsh-engine,在DSH界面内浏览和安装插件。
夜雨聆风