🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

便携安装器 RiveDroite1795/deepseek-harness-portable

DeepSeek Harness
RiveDroite179542 天前有提交已提供中文文档扫描:无法判定

把命令行工具装进单个文件夹,删掉即卸载

29.6/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add RiveDroite1795/deepseek-harness-portable
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
数据截至 2026/09/27·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 42 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · RiveDroite1795
  • · deepseek-harness-portable
  • · tarball)
扫描于 2026/11/4(1 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 命令行工具装进单文件夹
  • 删除文件夹即卸载
  • npm缓存内置

把 DeepSeek Harness(@deepseek-ai/dsh)装进一个便携文件夹——dsh 变成真正的终端命令,npm 缓存锁在里面,删掉文件夹就等于卸载。零依赖,Python 3.8+。

README

由 DeepSeek 最新模型翻译生成
deepseek-harness-portable 把 DeepSeek Harness 装进一个文件夹:命令行走天下,删掉文件夹就是卸载。 English · 简体中文 · 故障排查 一个零依赖的 Python 安装器,为 DeepSeek Harness(@deepseek-ai/dsh)一次性解决三件事: | 你想要的 | 本工具怎么做 | | 终端里敲 dsh 就能用 | 生成入口脚本,并把所在目录写入用户 PATH | | 只占一个文件夹,卸载=删文件夹 | npm --prefix + --cache 双锁定在安装根目录内,程序与缓存同进同出 | | 桌面双击打开 Web 界面 | 生成启动器,自动抓取一次性 token 链接并打开浏览器 | DeepSeek Harness 是什么 DeepSeek Harness(DSH)是 DeepSeek 官方以 npm 包 @deepseek-ai/dsh 形式发布的 agent harness,带命令行界面,并在 http://127.0.0.1:3080 提供本地 Web 界面。上游给了三条安装路径:npx @deepseek-ai/dsh web、全局 npm i -g @deepseek-ai/dsh、或源码构建 pnpm。
展开完整文档(README 剩余 1 节)
deepseek-harness-portable

把 DeepSeek Harness 装进一个文件夹:命令行走天下,删掉文件夹就是卸载。

English · 简体中文 · 故障排查

一个零依赖的 Python 安装器,为 DeepSeek Harness(@deepseek-ai/dsh)一次性解决三件事:

| 你想要的 | 本工具怎么做 |
| 终端里敲 dsh 就能用 | 生成入口脚本,并把所在目录写入用户 PATH |
| 只占一个文件夹,卸载=删文件夹 | npm --prefix + --cache 双锁定在安装根目录内,程序与缓存同进同出 |
| 桌面双击打开 Web 界面 | 生成启动器,自动抓取一次性 token 链接并打开浏览器 |

DeepSeek Harness 是什么

DeepSeek Harness(DSH)是 DeepSeek 官方以 npm 包 @deepseek-ai/dsh 形式发布的 agent harness,带命令行界面,并在 http://127.0.0.1:3080 提供本地 Web 界面。上游给了三条安装路径:npx @deepseek-ai/dsh web、全局 npm i -g @deepseek-ai/dsh、或源码构建 pnpm。

这三条都会把状态散落各处:全局安装写进共享的 npm prefix,npm 缓存落到全局目录。本安装器面向相反的需求:一个自包含文件夹、一个真正的终端命令、其余地方不留任何残留。

为什么用 Python 而不是 shell 脚本

.cmd 或 .ps1 安装器只在它所属的 shell 里好用。Python 安装器在 cmd、PowerShell、bash、zsh、fish 下行为完全一致,也不受执行策略、引号规则、代码页影响。不需要 pip 步骤——全部为标准库,Python 3.8+ 即可。

环境要求

- Python 3.8 或更高
- Node.js ^22.19.0 || >=24.0.0
- Node 23.x 会被明确拒绝 —— 这是奇数版本、非 LTS,上游 engines 已排除。请用 22.19+ 或 24+。
- 不需要管理员权限,全部装在用户目录下。

快速开始

git clone https://github.com/RiveDroite1795/deepseek-harness-portable.git
cd deepseek-harness-portable
python dsh_installer.py

五步向导会依次询问:

1. 文件夹名称 —— 默认 DeepSeekHarness。若输入 dsh 会告警,因为它与配置目录 ~/.dsh 冲突。
2. 安装位置 —— 默认在用户目录下,并在动手前先校验盘符是否存在。
3. 代理 —— 可选,留空表示直连。
4. 加入 PATH —— 是否让 dsh 成为终端命令。
5. 桌面启动器 —— 是否创建双击快捷方式。

免交互等价写法:

走本地代理装到默认位置
python dsh_installer.py install --yes --proxy http://127.0.0.1:7890

指定位置与文件夹名
python dsh_installer.py install --yes --path D:/Apps --folder DeepSeekHarness

只预览,不写任何文件
python dsh_installer.py install --dry-run

不使用代理
python dsh_installer.py install --yes

装完请新开一个终端(PATH 变更对已打开的窗口不可见),然后:

dsh # 打开 Web 界面
dsh --help # 查看命令行用法
dsh web # 与不带参数相同
dsh # 原样转发给 Harness CLI

命令一览

python dsh_installer.py status # 装在哪、什么版本、PATH 状态
python dsh_installer.py doctor # 体检:文件 / 端口 / 陈旧锁 / PATH
python dsh_installer.py doctor --fix # 顺带修复可安全修复的项目
python dsh_installer.py uninstall # 先列出,再询问,然后才删除
python dsh_installer.py uninstall --purge-config # 连 ~/.dsh(账号与凭据)一起删
python dsh_installer.py uninstall --dry-run # 只列出,绝不删除
python dsh_installer.py purge # 彻底清空回收目录
python dsh_installer.py path-restore # 从备份还原用户 PATH

全局参数 --no-colour 放在子命令前后都可以。status 与 doctor 不需要任何权限。

卸载到底删了什么

默认只删本安装器自己创建的东西:

✓ 安装目录 \DeepSeekHarness\ (程序 + 私有 npm 缓存) ✓ 终端入口 ~\bin\dsh.cmd ✓ 桌面启动器 ~\Desktop\DSH Web.cmd ~ ~\bin 从用户 PATH 中移除(只删这一条,其它条目不动) ✗ 配置目录 ~\.dsh 默认保留 —— 加 --purge-config 才删

两条安全设计:

1. 先列表、再确认,默认答案是「否」。 uninstall 会先打印每一项的路径与体积,再问任何问题。
2. 删除是「移动到回收目录」,不是销毁。 文件进入 ~/.dsh-portable/trash//。确认无误后跑 purge;想反悔就直接把文件夹移回原位。

uninstall --dry-run 的保证在代码层,而非靠约定:只要 execute() 拿到的 plan 被标记为 dry-run,它就会抛异常而不是删除。

安装做了什么

六个阶段,全部记入运行报告:

| 阶段 | 内容 |
| 1. 环境检查 | 校验 Node 与 npm;版本不合规会拒绝并说明原因 |
| 2. 准备目录 | 非空且不是上次安装的目录时中止,而不是覆盖 |
| 3. npm install | 执行 node npm-cli.js,--prefix 与 --cache 都锁在安装根目录内 |
| 4. 安装脚本 | 按需重跑 npm 跳过的脚本 |
| 5. 生成启动器 | 写入 launch-web.cmd / dsh.cmd / 桌面启动器;POSIX 下生成对应的 .sh |
| 6. 配置 PATH | 读-改-写注册表,保留 REG_EXPAND_SZ,改动前先备份 |

每次运行都会在 ~/.dsh-portable/ 写入 install-report-.json,包含环境、耗时、各阶段结果,以及每一条警告和错误。安装成功还额外写 last-install.json 作为清单,卸载时按它精确删除。

跨平台支持

| 平台 | 支持情况 |
| Windows 10 / 11 | 完整支持 —— PATH 走注册表,启动器为 .cmd |
| Linux / macOS | 安装、启动器、PATH 写入均已实现(.sh + shell profile 中的标记块);桌面启动器仅 Windows |

Windows 路径是端到端实测过的。POSIX 路径的代码已写完并做过静态核对,但尚未在真实 Linux/macOS 机器上跑过,请按"未验证"看待,遇到问题欢迎反馈。

实测踩过的坑(均已处理)

以下都不是推测,都是开发中真实复现并修掉的。

dsh web 需要一次性 token

裸访 http://127.0.0.1:3080/ 返回 HTTP 401,只有带 token 的 URL 才返回 303。token 由 dsh web 启动时打印:

dsh web: http://127.0.0.1:3080/?token=...

因此启动器必须抓取这一行,写死 URL 不可能工作。本项目在 Windows 用 findstr、在 POSIX 用 sed 抓取,并另有一份等价的 Python 正则用于交叉校验。

让 npm 走 npm-cli.js 入口,而不是包装脚本

受限环境里,npm.cmd 外面往往还套了一层策略脚本。npm 的清理阶段会一次性删除数百个临时文件,这一步被中断时整个安装随之回滚并以非零码退出——尽管所有下载都已成功。执行 node 是直接走 npm 自己的 JavaScript 入口,不经过包装脚本,清理阶段因此能正常跑完。

.cmd 文件里绝不能放非 ASCII 文本

中文 Windows 用 OEM 代码页(GBK)重读批处理文件。含中文注释的 UTF-8 文件会被解码出破坏命令解析的字节。本项目生成的所有 .cmd 一律使用纯 ASCII 英文注释与 CRLF 行尾。

绝不要用 setx 改 PATH

setx 会在 1024 字符处截断,并把 REG_EXPAND_SZ 悄悄降级为 REG_SZ,导致正常 PATH 里其它 %USERPROFILE% 之类变量不再展开。本安装器直接读改写 HKCU\Environment\Path,保留原类型,并先备份。

陈旧锁文件会让启动永久失败

dsh 在写 .credentials.yaml 前会拿写锁。若上一个进程被强杀——Ctrl+C、关窗口、taskkill /F、崩溃——锁文件会残留,之后每次启动都永久失败并报:

atomic-write: timed out waiting for the writer lock at
~/.dsh/.credentials.yaml.lock

锁文件里只有持有者 PID,所以死活是可判定的。doctor --fix 仅在确认该 PID 已死时才删除;活进程持有的锁一律保留,因为误删活锁会造成数据竞争,比启动失败严重得多。~/.dsh/profiles/node_modules.lock 同样会残留。

其它已处理的细节

- 别把文件夹叫 dsh —— 配置目录是 ~/.dsh。向导会告警,默认值为 DeepSeekHarness。
- dsh --help 会初始化 profile。 它不只是打印文本,而是在 ~/.dsh/profiles/ 下安装完整依赖树。首次调用较慢,属正常。
- 盘符不存在时报的是干巴巴的 WinError 3: 'D:\'。向导与安装器都会校验盘符并直说。
- 桌面启动器用 .cmd 而非 .lnk。 创建快捷方式需要 COM(WScript.Shell),受限环境下不可用;一个小批处理文件到处能跑。

项目结构

deepseek-harness-portable/
├── dsh_installer.py 入口:argparse 子命令 + 交互向导 ├── dshportable/ │ ├── ui.py 彩色输出、提问、五步向导 │ ├── platform.py Node/npm 探测与版本门禁 │ ├── npm.py npm 驱动(一律经 npm-cli.js) │ ├── launcher.py 生成 .cmd / .sh 启动器 │ ├── pathsetup.py PATH 增删改(注册表 / shell profile) │ ├── installer.py 安装编排 + 结构化报告 │ ├── uninstaller.py 卸载:清单、列出、回收站式删除 │ └── diagnostics.py 健康检查与安全修复 ├── docs/TROUBLESHOOTING.md 详细的故障模式与解法 ├── README.md 英文版 ├── README.zh-CN.md 本文件(简体中文) └── LICENSE MIT

环境变量

| 变量 | 作用 |
| NO_COLOR | 关闭彩色输出(等同 --no-colour) |
| LOCALAPPDATA | Windows 下默认安装位置的父目录 |
| DSH_HOME | 覆盖 Harness 自身的配置位置(本安装器不设置它) |

生成的启动器会设 NO_PROXY=localhost,127.0.0.1,::1,确保本地 Web 界面流量不经过代理。

常见问题

需要管理员权限吗?
不需要。全部位于用户目录下,PATH 改动针对 HKCU\Environment\Path。

能装到非默认位置吗?
可以——用 --path 与 --folder,或回答向导第 2 步。路径请避免非 ASCII 字符与空格。

怎样彻底删干净?
先 python dsh_installer.py uninstall --purge-config,再 python dsh_installer.py purge。

为什么首次 dsh --help 很慢?
它会触发 profile 初始化,将完整依赖树装进 ~/.dsh/profiles/。

为什么拒绝 Node 23?
上游 engines 为 ^22.19.0 || >=24.0.0。23.x 是奇数版本线,该包明确排除。

Web 界面显示 401 怎么办?
裸地址返回 401 是预期行为。请使用 dsh web 打印的带 token 的 URL,或直接运行启动器。

报告文件在哪?
~/.dsh-portable/ —— 含 install-report-.json、uninstall-report-.json、last-install.json、PATH 备份与回收目录。

许可

MIT,见 LICENSE。
预览分享卡片长什么样 ↓RiveDroite1795/deepseek-harness-portable
分享 · DeepSeek Harness Hub
RiveDroite1795/deepseek-harness-portable

把命令行工具装进单个文件夹,删掉即卸载

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部