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

便携启动器 MM071022/dsh-portable

DeepSeek Harness
MM07102280 天前有提交已提供中文文档扫描:含敏感能力

免装 Node.js,双击即开 dsh 网页界面

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · other
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

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

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 6 处,展示前 6 条)
  • 读取本地文件
    build/repair-session-log.mjs:110
    const original = readFileSync(path);
  • 写入本地文件
    build/repair-session-log.mjs:208
    renameSync(path, backup);
  • 写入本地文件
    build/repair-session-log.mjs:210
    writeFileSync(path, repaired);
  • 写入本地文件
    build/repair-session-log.mjs:213
    try { renameSync(backup, path); } catch {}
  • 读取本地文件
    build/strict-validate.mjs:46
    if (existsSync(candidate)) {
  • 读取本地文件
    build/strict-validate.mjs:57
    const buf = readFileSync(path);
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 免装Node.js
  • 双击启动网页界面
  • 会话日志自愈

README

由 DeepSeek 最新模型翻译生成
dsh-portable DeepSeek Harness(dsh)的便携版:dsh.exe(Windows)或 dsh 脚本(Linux、macOS)内嵌完整的 dsh 运行环境与 Node.js,双击(Windows)或一条命令(Linux/macOS)即可在浏览器打开 Web UI(默认 http://127.0.0.1:3080),无需预先安装 Node.js。 特性 - 单文件/自包含分发:Windows 为单个 dsh.exe;Linux/macOS 为自带 node + dsh 包的 tarball,无需预先安装任何运行时。 - 首次运行自动解压(Windows):解压到 %LOCALAPPDATA%\dsh-exe\<version>,之后直接启动。 - 幂等启动:目标端口已由 dsh Web UI 使用时只打开浏览器并退出,重复启动不会产生重复服务器;其他服务占用端口时仍交由 dsh 报告冲突。 - 单实例保护:同一数据目录只允许一个 dsh 服务器;再启动第二个实例会被拒绝,避免两个服务器并发写坏同一份会话历史。 - 会话日志自愈:读取端自动处理被并发/过期写入者重写的日志段,"历史加载失败"不再出现。 - 启动检查更新:启动时联网查询 GitHub Release,发现新版本在控制台提示下载链接(离线/超时自动跳过,不影响启动)。
展开完整文档(README 剩余 1 节)
dsh-portable

DeepSeek Harness(dsh)的便携版:dsh.exe(Windows)或 dsh 脚本(Linux、macOS)内嵌完整的 dsh 运行环境与 Node.js,双击(Windows)或一条命令(Linux/macOS)即可在浏览器打开 Web UI(默认 http://127.0.0.1:3080),无需预先安装 Node.js。

特性

- 单文件/自包含分发:Windows 为单个 dsh.exe;Linux/macOS 为自带 node + dsh 包的 tarball,无需预先安装任何运行时。
- 首次运行自动解压(Windows):解压到 %LOCALAPPDATA%\dsh-exe\<version>,之后直接启动。
- 幂等启动:目标端口已由 dsh Web UI 使用时只打开浏览器并退出,重复启动不会产生重复服务器;其他服务占用端口时仍交由 dsh 报告冲突。
- 单实例保护:同一数据目录只允许一个 dsh 服务器;再启动第二个实例会被拒绝,避免两个服务器并发写坏同一份会话历史。
- 会话日志自愈:读取端自动处理被并发/过期写入者重写的日志段,"历史加载失败"不再出现。
- 启动检查更新:启动时联网查询 GitHub Release,发现新版本在控制台提示下载链接(离线/超时自动跳过,不影响启动)。

快速开始

Windows

1. 从 Releases 下载 dsh.exe(约 110 MB,内嵌完整运行时)。
2. 双击运行,或命令行执行 dsh.exe web。
3. 浏览器自动打开 http://127.0.0.1:3080。

Linux / macOS

1. 从 Releases 下载对应平台的 dsh-portable-<version>-<os>-<arch>.tar.gz(linux-x64、linux-arm64、darwin-arm64)。
2. 解压并运行:
tar -xzf dsh-portable-0.1.0-rc.8-linux-x64.tar.gz
./dsh # 或 ./dsh web,等价于 dsh web

3. 浏览器自动打开 http://127.0.0.1:3080。可把解压目录里的 dsh 软链到 ~/.local/bin/dsh(macOS 为 /usr/local/bin/dsh)以便全局使用。

说明:macOS 仅提供 Apple Silicon(darwin-arm64,覆盖 2020 年后的所有 Mac);Intel Mac 因 GitHub 已弃用 Intel macOS 构建机(macos-13)暂不提供。

命令行用法与 dsh 一致,例如:

dsh.exe web # Windows:启动 Web UI(默认端口 3080) ./dsh web --port 8080 # Linux/macOS:指定端口 dsh.exe --version # 其他 CLI 用法透传

更新

1. 关闭正在运行的 dsh(关掉启动它的控制台窗口,或任务管理器结束 dsh / node 进程)。
2. 从 Releases 下载新的 dsh.exe,覆盖旧的 dsh.exe。
3. 重新运行即可。

- 图标 / 启动器逻辑(互斥锁、端口、更新检查)改动 → 换 exe 立即生效。
- 内嵌 dsh 运行时改动 → 只有 launcher.cs 的 Version 升版后才会重新解压到新目录;数据始终在 %USERPROFILE%\.dsh,更新不丢会话。
- 自 v0.1.0-rc.7 起,启动时会自动提示新版本。

数据与文件位置

| 内容 | 位置 |
| 解压后的运行时 | %LOCALAPPDATA%\dsh-exe\<version>\ |
| 会话、配置、凭据 | %USERPROFILE%\.dsh\ |

可用环境变量 DSH_EXE_HOME 覆盖运行时解压根目录(便携模式)。

从源码构建

需要:Windows(自带 .NET Framework 编译器 csc.exe)、dsh 包、node.exe。

1. 准备输入 dsh.zip — dsh 包(含 node_modules 与 config 的完整目录压缩,根目录为 dsh\) node.zip — 仅含 node.exe 的压缩包
2. 构建(产物为 dsh.exe,默认嵌入 build/app.ico 蓝鲸图标) .\build\build.ps1 -DshZip .\dsh.zip -NodeZip .\node.zip -Out .\dsh.exe

build.ps1 用系统自带的 .NET Framework csc.exe 编译 launcher.cs,并把两个 zip 作为托管资源嵌入,生成控制台子系统(subsystem 3)的 AnyCPU exe。

历史加载失败修复说明(自 v0.1.0-rc.6 起)

背景:同时运行两个 dsh 服务器(例如在会话里把打包好的 exe 当作后台任务启动测试,而主服务器仍在运行)会对同一份会话日志并发追加。旧进程持有过期 seq,会重写一段已提交的 seq 区间,日志被读取端判定为损坏(corrupt session log: seq gap in committed region),表现为打开旧会话时提示"历史加载失败:{message}({code})"。

修复分三层:

1. 数据修复工具 build/repair-session-log.mjs:扫描日志中的 seq 回退段,丢弃被覆盖的旧事件、保留权威的后续段并重建连续日志(自动备份原文件)。
node build/repair-session-log.mjs <session.jsonl.zstd>

2. 读取端自愈:dsh-session-persistence-jsonl 的日志扫描器遇到 seq 回退时自动采用新段,不再整份拒绝日志(后续段视为权威续写)。
3. 单实例互斥锁:launcher.cs 在 Web 模式下按数据根目录加命名互斥锁,同一数据目录只允许一个服务器实例(端口检查只防同端口重复,互斥锁补齐了跨端口场景)。

仓库结构

dsh-portable/
├── README.md
├── LICENSE
├── .github/workflows/
│ └── release-unix.yml # GitHub Actions:在各平台构建 Linux/macOS tarball ├── build/ │ ├── launcher.cs # C# 启动器源码(Windows,自解压 + 端口检查 + 单实例互斥锁 + 更新检查) │ ├── build.ps1 # Windows 构建脚本(csc 编译并嵌入 zip + 图标) │ ├── launcher.sh # POSIX 启动器(Linux/macOS:单实例锁 + 更新检查 + 浏览器打开) │ ├── build-unix.sh # Linux/macOS 打包脚本(组装 dsh + node + launcher 的 tarball) │ ├── app.ico # 应用图标(DeepSeek 蓝鲸,多尺寸) │ ├── app-icon.svg # 蓝鲸图标 SVG 源文件 │ ├── make-ico.ps1 # 由 256px PNG 生成多尺寸 .ico │ ├── repair-session-log.mjs # 会话日志修复工具 │ └── strict-validate.mjs # 日志严格校验工具(用真实解码器验证 seq 连续性)

发布产物(dsh.exe、dsh.zip、node.zip)体积大且可再生成,通过 GitHub Release 附件分发,不进仓库。

许可证

- launcher.cs:MIT(见 LICENSE)
- 内嵌的 @deepseek-ai/dsh 运行时:MIT(见 deepseek-ai/deepseek-harness)
- 内嵌的 Node.js:MIT(见 nodejs/node)
预览分享卡片长什么样 ↓MM071022/dsh-portable
分享 · DeepSeek Harness Hub
MM071022/dsh-portable

免装 Node.js,双击即开 dsh 网页界面

这是你的仓库?认领条目

回到顶部