dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
面向 DeepSeek Harness 的 Windows 桌面启动器与插件管理器
一个下载即用的启动器:管理 DSH 本体、插件、API Key 与运行配置,无需预装 Node.js。
简体中文 · English
dsh-旋律启动器是一个 Windows 桌面应用,把 DeepSeek Harness(DSH)的下载、部署、插件管理和启动流程收拢到一个图形界面里。交互方式参考《我的世界》忘却的旋律启动器:在真正启动之前,先在一个地方把运行配置、API Key、插件启停和加载顺序都安排妥当。
它解决的是这样一类问题:
原本要做的事 · 用启动器之后 装 Node.js → 装 npm → npx @deepseek-ai/dsh · 下载一个 exe,点「下载安装 DSH」 手改 .credentials.yaml 填 API Key · 界面里输入,自动写入并设为 0600 权限 翻 GitHub 找插件、手敲 dsh plugin add · 内置搜索 dsh-plugin Topic,一键安装 编辑 profile 的 package.json 调加载顺序 · 拖动列表,直接改官方 Profile 开终端、记命令、盯输出 · 一个按钮启动,实时日志面板
[!NOTE]
整合包(Modpack)功能已可用。 支持把一组插件与配置保存、导入和导出为可复用的整合包。欢迎一起开发 —— QQ:1250104511
PATH、%APPDATA%\npm 和系统 Node.js 目录dsh-plugin、dsh-skill 与 dsh-app,在同一列表中浏览和搜索Plugin、Skill、应用加载项、Agent 预设、混合资源、DSH 本体 或 无效/SKILL.md 或单文件 .md,YAML frontmatter 必须包含 kebab-case 的 name 与非空 description准备 → 解析 → 下载 → 配置 → 完成 五个阶段,带百分比与实时状态文本@deepseek-ai/dsh-base、dsh-web-app、dsh-headless 三个核心组合层在主进程层面禁止停用,界面上也不提供卸载入口ERR_PNPM_IGNORED_BUILDS 时,仅为当前安装的仓库批准构建脚本并自动重试DSH_HOME、Profile 名称、工作目录、启动命令与参数,均可在界面调整前往 Releases 下载最新的 DSH-Launcher-*-portable.exe。
[!IMPORTANT]
便携版目前未使用商业代码签名证书。首次运行时 Windows SmartScreen 可能提示来源未知 —— 请确认文件确实来自本仓库 Release 页面后,选择「更多信息 → 仍要运行」。
打开启动器。如果没有检测到本地 DSH,首页主按钮会显示 「下载安装 DSH」,点击即可完成首次部署。
整个过程不需要预先安装 DSH、Node.js、npm 或 npx —— 缺什么启动器就准备什么。请保持网络连接;下载中断后重新点击可继续。
在启动页填入 DeepSeek API Key。启动器会写入 DSH 官方凭据文件 $DSH_HOME/.credentials.yaml。
进入「资源市场」搜索候选仓库,检测真实类型后安装 Plugin 或 Skill。Plugin 可在「插件顺序」中调整启用状态与加载顺序。
回到启动页点击 「启动 DSH」。服务就绪后会自动打开 Harness 网页。
如果你已经安装了 Node.js,也可以通过 npm 直接运行启动器:
# 直接运行,不需要先安装
npx dsh-melody-launcher
# 或全局安装后运行
npm install -g dsh-melody-launcher
dsh-melody-launcher[!NOTE]
该方式会通过 npm 安装 Electron 运行时,首次启动可能需要下载 Electron 二进制。
目前仅支持 Windows。
启动器有三个主要视图:
展示当前 Profile 中的全部 Bundle。每个插件可以:
变更在下次启动 DSH 时生效。
从 GitHub 合并检索带 dsh-plugin 或 dsh-skill Topic 的仓库,显示 Star 数、主语言、更新时间和描述。点击检测后,启动器会同时验证 Plugin 与 Skill 结构,并按识别标签调用对应安装器。
同一仓库可以同时提供 Plugin 和 Skill。此时列表显示 Plugin + Skill,安装按钮会打开组件选择窗口,由用户分别安装或更新。
搜索使用 GitHub 匿名 API,有速率限制;额度用尽时启动器会明确提示,稍后重试即可。
查看 DSH 运行状态、PID、启动时间和服务地址,以及实时日志流。日志分 runtime(DSH 本体)和 plugin(插件操作)两个通道,分 info / error / success 三个级别。
启动器在资源市场会特别识别这个仓库:
deepseek-ai/deepseek-harness它不会被当作普通插件处理,而是走独立的本体安装流程。
启动时按以下顺序查找已安装的 DSH:
%APPDATA%\dsh-launcher\dsh-runtime)PATH%APPDATA%\npm(Windows npm 全局目录)[!TIP]
检测结果必须同时包含官方@deepseek-ai/dsh包清单和dsh可执行文件,才会被认定为有效安装 —— 这样可以避免把同名程序误认成 DSH。
情况 · 行为 检测到系统安装 · 直接使用,不重复安装 未检测到 · 首页主按钮变为「下载安装 DSH」,引导首次部署 执行安装 · 通过 npm 将 @deepseek-ai/dsh@latest 装入启动器本地运行目录,并自动切换启动命令为本地可执行文件
安装完成后,首页按钮从「下载安装 DSH」自动切换为「启动 DSH」。
当系统中找不到 Node.js 时,启动器会自动准备一份便携运行时:
环节 · 说明 来源 · Node.js 官网 https://nodejs.org/dist/,当前锁定 v24.19.0 架构 · 自动匹配 win-x64 或 win-arm64 校验 · 下载官方 SHASUMS256.txt,逐字节 SHA-256 比对;校验失败自动重下一次,仍失败则中止并报错 续传 · 使用 HTTP Range 请求,网络中断后可从断点继续 解压 · 调用 Windows 自带 tar.exe 解压到临时目录,校验完整性后原子重命名到最终位置 位置 · %APPDATA%\dsh-launcher\node-runtime
[!NOTE]
便携运行时的自动准备仅支持 Windows。若系统已安装 Node.js,启动器会直接复用,不会重复下载。
启动器直接使用 DSH 官方 Profile 结构,不引入任何不兼容的私有插件配置格式。
内容 · 路径 启动器设置 · %APPDATA%\dsh-launcher\settings.json 本地 DSH 运行目录 · %APPDATA%\dsh-launcher\dsh-runtime Node.js 便携运行时 · %APPDATA%\dsh-launcher\node-runtime GitHub 登录会话(加密) · %APPDATA%\dsh-launcher\github-auth.bin DSH 凭据 · $DSH_HOME.credentials.yaml DSH Profile 清单 · $DSH_HOME\profiles\\package.json
%APPDATA%\dsh-launcher对应 Electron 的app.getPath('userData'),目录名取自package.json的name字段。
项 · 默认值 DSH_HOME · 环境变量 DSH_HOME,否则 %USERPROFILE%.dsh Profile 名称 · web 工作目录 · 系统「文档」目录 启动命令 · npx --yes @deepseek-ai/dsh web(检测到本地安装后自动切换为 dsh web) 启动后自动打开网页 · 开启
措施 · 实现 渲染进程隔离 · contextIsolation: true、nodeIntegration: false、sandbox: true 受控 IPC 面 · 渲染层只能通过 contextBridge 暴露的固定接口与主进程通信,无法直接访问 Node API 凭据文件权限 · .credentials.yaml 以 0600 写入,目录 0700;先写临时文件再原子重命名,避免写坏原文件 GitHub 凭据加密 · GitHub Token / OAuth 会话通过 Electron safeStorage 调用系统凭据保护能力加密,渲染层无法读取明文 外链白名单 · shell.openExternal 只允许 http: / https: 协议 输入校验 · 包名、Profile 名、GitHub 仓库名在进入主进程逻辑前统一校验;目录参数必须是绝对路径 下载完整性 · Node.js 运行时下载后强制 SHA-256 校验,不匹配即丢弃
浏览器 OAuth 登录需要给构建过程设置公开的 DSH_LAUNCHER_GITHUB_CLIENT_ID。对应 GitHub OAuth App / GitHub App 必须启用 Device Flow;未配置时仍可在界面使用 Fine-grained Token 登录。Client ID 不是密钥,Release 工作流从同名 GitHub Actions Repository Variable 注入。