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

桌面客户端启动器 mhdfy1988/dsh-client-launcher

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

管理多个客户端并一键启动,自动检查更新

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

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

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

状态速览

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

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 26 处,展示前 23 条)
  • 读取本地文件
    src/auto-update.ts:37
    && existsSync(join(options.resourcesPath, 'app-update.yml'))
  • 读取本地文件
    src/main.ts:43
    const version = (JSON.parse(readFileSync(join(PROJECT_ROOT, 'package.json'), 'utf8')) as { version?: unknown }).version
  • 写入本地文件
    src/main.ts:65
    appendFileSync(traceFile, `${new Date().toISOString()} ${message}\n`, 'utf8')
  • 写入本地文件
    src/main.ts:68
    mkdirSync(POC_ROOT, { recursive: true })
  • 写入本地文件
    src/main.ts:69
    mkdirSync(USER_DATA, { recursive: true })
  • 写入本地文件
    src/main.ts:89
    writeFileSync(1, `DSH_DESKTOP_POC_PTY_DRAIN_INCOMPLETE ${JSON.stringify({ remainingPtys })}\n`)
  • 写入本地文件
    src/main.ts:105
    writeFileSync(1, 'DSH_DESKTOP_POC_DISPOSED\n')
  • 发起网络请求
    src/main.ts:115
    void shutdown.request(code)
  • 读取本地文件
    src/main.ts:146
    if (!existsSync(RUNTIME_CLIENTS)) return createEmptyRuntimeClientRegistry()
  • 读取本地文件
    src/main.ts:147
    const value: unknown = JSON.parse(readFileSync(RUNTIME_CLIENTS, 'utf8'))
  • 写入本地文件
    src/main.ts:152
    writeFileSync(RUNTIME_CLIENTS, `${JSON.stringify(registry, null, 2)}\n`, 'utf8')
  • 读取本地文件
    src/main.ts:186
    const manifest = JSON.parse(readFileSync(inspection.anchor, 'utf8')) as { version?: unknown }
  • 读取本地文件
    src/main.ts:373
    const value = JSON.parse(readFileSync(WINDOW_STATE, 'utf8')) as Record<string, unknown>
  • 发起网络请求
    src/main.ts:665
    await shutdown.request(1)
  • 读取本地文件
    src/profile.ts:49
    if (!existsSync(join(profileDir, 'package.json'))) {
  • 写入本地文件
    src/profile.ts:57
    writeFileSync(rootConfig, '[]\n', 'utf8')
  • 读取本地文件
    src/profile.ts:66
    if (!existsSync(join(shippedPresetRoot, 'standard', 'preset.yml'))) {
  • 执行外部命令来自配置/变量
    src/runtime-build.ts:24
    const child = spawn(command, commandArgs, {
  • 读取本地文件
    src/runtime-build.ts:52
    if (!existsSync(join(before.root, 'apps', 'cli', 'node_modules'))) {
  • 读取本地文件
    src/runtime.ts:77
    if (!existsSync(rootManifest)) issues.push(`缺少根 package.json:${rootManifest}`)
  • 读取本地文件
    src/runtime.ts:81
    if (existsSync(installedAnchor)) {
  • 读取本地文件
    src/runtime.ts:84
    } else if (existsSync(workspaceAnchor) && existsSync(workspaceLock) && existsSync(workspaceConfig)) {
  • 读取本地文件
    src/runtime.ts:135
    const manifest = JSON.parse(readFileSync(resolveHarnessPackageJson(), 'utf8')) as { version?: unknown }
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cosmokit@deepseek-ai/dsh@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-cmdline@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-launch-environment
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 管理多个客户端
  • 一键启动客户端
  • 自动检查更新

DeepSeek Harness 的 Windows 桌面启动器

README

由 DeepSeek 最新模型翻译生成
DSH 客户端启动器 DeepSeek Harness 的独立 Windows 客户端启动器。启动器安装在 DSH 根目录的专属子目录中,启动用户选择的当前 DSH,并提供显式源码构建助手。 本项目是独立社区项目,与 DeepSeek 官方无隶属、授权或背书关系。GitHub Release 提供正式版本源码和未签名 Windows 安装器;Windows 可能显示未知发布者提示。 当前发布状态 - 当前正式版本:0.1.3。 - 兼容基线:Windows 11 x64、Electron 43.4.0、DeepSeek Harness 0.1.1-rc.2。 - 已完成:目录内 DSH 定位、显式源码构建、随机回环 Host、托盘与单实例、窗口状态、原生目录选择、自绘标题栏和主题/皮肤颜色同步。 - 已完成启动器基础:首次启动显示 DSH 客户端选择页,可手动添加多个 DSH;启动前重新检测,默认客户端有效时后续直接进入。 - 已接入自动更新流程:带有更新 feed 的安装包启动后自动检查,发现新版本自动下载,下载完成后由用户确认重启安装;开发、便携和 smoke 运行默认跳过。 - 0.1.0 安装包遗漏了自动更新器运行依赖,无法自行升级;该版本用户需要手动安装一次 0.1.1,后续版本再使用应用内自动更新。
展开完整文档(README 剩余 1 节)
DSH 客户端启动器

DeepSeek Harness 的独立 Windows 客户端启动器。启动器安装在 DSH 根目录的专属子目录中,启动用户选择的当前 DSH,并提供显式源码构建助手。

本项目是独立社区项目,与 DeepSeek 官方无隶属、授权或背书关系。GitHub Release 提供正式版本源码和未签名 Windows 安装器;Windows 可能显示未知发布者提示。

当前发布状态

- 当前正式版本:0.1.3。
- 兼容基线:Windows 11 x64、Electron 43.4.0、DeepSeek Harness 0.1.1-rc.2。
- 已完成:目录内 DSH 定位、显式源码构建、随机回环 Host、托盘与单实例、窗口状态、原生目录选择、自绘标题栏和主题/皮肤颜色同步。
- 已完成启动器基础:首次启动显示 DSH 客户端选择页,可手动添加多个 DSH;启动前重新检测,默认客户端有效时后续直接进入。
- 已接入自动更新流程:带有更新 feed 的安装包启动后自动检查,发现新版本自动下载,下载完成后由用户确认重启安装;开发、便携和 smoke 运行默认跳过。
- 0.1.0 安装包遗漏了自动更新器运行依赖,无法自行升级;该版本用户需要手动安装一次 0.1.1,后续版本再使用应用内自动更新。
- 已验证安装器:Electron Builder NSIS 辅助安装器,覆盖当前用户静默安装、同目录覆盖安装、安装后真实工具链、静默卸载和用户数据保留;安装和卸载前会拒绝在任一新旧启动器进程仍运行时执行生命周期门禁。
- 未完成:代码签名、从旧 Preview 自动迁移、公开 feed 的真实下载与重启安装回归、更新失败回滚、长期驻留、新版错误目录恢复操作人工复核及 Windows 10 完整验证。当前 Windows 自动化控制器无法捕获 NSIS 原生窗口,返回 SetIsBorderRequired ... 不支持此接口;这不影响静默生命周期门禁,但不能代替人工界面确认。

当前边界

- 启动器源码开发基线固定为 @deepseek-ai/dsh@0.1.1-rc.2;打包后的启动器使用所在目录的当前 DSH,并在启动日志报告实际版本。
- 不修改 DeepSeek Harness 官方源码。
- 开发运行和 smoke 数据固定写入 .poc/;正式打包运行不注入 DSH_HOME,由 Harness 按继承环境或 ~/.dsh 自己解析正式数据目录。
- Electron Renderer 关闭 Node 集成,启用上下文隔离和沙箱。
- Host 只绑定 127.0.0.1 和系统分配端口。
- Electron 启动器位于 app.asar,默认把 EXE 目录的上一级识别为当前 DSH 根;不携带或回退内置 DSH。
- 支持已安装运行时和官方源码工作区;源码未构建时可在恢复页明确触发依赖安装与官方构建。
- Windows 目录选择请求由启动器精确识别后交给 Electron 原生文件夹选择器,并按 DSH 既有 worker 消息协议返回结果;不会修改 DSH 插件,也不会影响其他子进程。
- Windows ACL 沙箱 runner 仍由 DSH 官方链路生成;启动器只在其入口精确匹配时为该子进程启用 Electron Node 模式,避免 process.execPath 把 runner 重新解释为桌面 EXE。其他子进程保持原始启动语义。
- DSH 的 node-pty 仍从当前目录运行时加载;启动器只修正 ACL runner 的 Electron Node 子进程语义,并在退出前请求活动交互式 shell 正常结束,随后仍由 DSH 原有生命周期释放终端资源。
- 窗口关闭隐藏到托盘;托盘可恢复窗口、请求重启 Host 或统一退出;窗口位置和大小写入隔离 .poc 数据目录。
- 托盘、窗口和 Windows EXE 共用基于 DSH 官方鲸鱼标志制作的高对比多尺寸图标。
- Windows 标题栏读取当前 DSH 主题最终生效的背景、文字和强调色,并在主题或皮肤切换后的下一渲染帧更新;无边框窗口使用启动器自绘的最小化、最大化/还原和关闭按钮,支持拖动与双击最大化,默认菜单栏和额外分隔线均已移除。

本地验证

要求 Node.js ^22.19.0 || >=24.0.0 与 pnpm 11.7.0。源码运行使用本仓库锁定的 DSH 发布包,并把测试数据写入 .poc/。

pnpm.cmd install
pnpm.cmd run typecheck
pnpm.cmd run test
pnpm.cmd run smoke:abi
pnpm.cmd run smoke:recovery
pnpm.cmd run smoke:window-state
pnpm.cmd run smoke:single-instance
pnpm.cmd run smoke:lifecycle
$env:DSH_DESKTOP_SMOKE_RUNTIME_DIR = 'D:\path\to\fresh-deepseek-harness'
pnpm.cmd run smoke:directory-picker
pnpm.cmd run smoke:portable
pnpm.cmd run smoke:agent-toolchain
$env:DSH_DESKTOP_AGENT_TOOLCHAIN_SCENARIO = 'background'
pnpm.cmd run smoke:agent-toolchain
$env:DSH_DESKTOP_AGENT_TOOLCHAIN_SCENARIO = 'cancel'
pnpm.cmd run smoke:agent-toolchain
$env:DSH_DESKTOP_AGENT_TOOLCHAIN_SCENARIO = 'terminal'
pnpm.cmd run smoke:agent-toolchain
$env:DSH_DESKTOP_INSTALLER_SMOKE_RUNTIME_DIR = 'D:\path\to\fresh-deepseek-harness'
pnpm.cmd run smoke:installer

手动打开窗口:

pnpm.cmd start

便携目录使用

当前可生成未签名 Windows x64 便携目录和正式 NSIS 安装器:

pnpm.cmd run package:portable
pnpm.cmd run package:installer
将 .artifacts/portable/dsh-client-launcher-win32-x64 整个目录复制或重命名为目标 DSH 根目录下的 client-launcher。最终结构必须同时满足:

deepseek-harness/
├─ package.json
├─ node_modules/ 或 apps/cli/node_modules/ └─ client-launcher/ ├─ dsh-client-launcher.exe └─ resources/app.asar

双击 dsh-client-launcher.exe 后,启动器只检查上一级 DSH;缺少依赖或构建产物时显示客户端选择/恢复页,不搜索其他安装、不启动外部 dsh web,也不回退内置副本。源码和 smoke 的运行数据写入 Electron 用户数据目录下的 poc;正式打包运行不覆盖已有 DSH_HOME,由当前 DSH 自己使用继承环境或 ~/.dsh。

启动器只展示安装目录上一级候选和用户明确添加的目录,不扫描磁盘;选择结果保存在启动器隔离目录,移除客户端只删除启动器记录。

生命周期 smoke 会连续启动 20 个隔离运行代,要求每次页面就绪、Cordis 完整释放、Electron 正常退出,并确认退出后本轮回环端口不可再访问。

smoke:agent-toolchain 使用全新 DSH checkout 自带的官方无密钥模型 mock,启动真实便携 EXE,通过正式 HTTP API 注册工作区、创建并归组会话,再触发 Windows 标准预设实际公开的 pwsh 工具。工具经官方 Windows ACL 沙箱 runner 在会话工作区内写入并回读校验文件;验证随后检查持久化会话历史、真实 Renderer 可见结果、截图、Cordis 释放和回环端口关闭。设置 DSH_DESKTOP_AGENT_TOOLCHAIN_SCENARIO=background 时,同一门禁改走正式后台作业并检查返回的作业编号与异步文件结果;设置为 cancel 时启动长任务后走正式 session.cancel,要求中止结果可见且目标文件不会生成;设置为 terminal 时先通过正式 settings.update 把新会话权限设为 danger-full-access,再选择官方 minimal 预设,通过 node-pty 支撑的持久 PowerShell 工具执行同一文件闭环,并验证活动 PTY 在桌面退出时正常释放。该命令使用独立 smoke 数据目录,不读取或写入正式 DSH_HOME。

当前状态

第 0、1 阶段源码 POC 已通过,且第 2 阶段已落地目录内运行时切片:Electron 43.4.0 内置 Node 24.18.1,官方 Web Profile 和最小 Desktop Cordis 插件连续 20 轮完成启动、页面渲染、插件撤销、Host 释放和端口关闭;失败注入只显示恢复页;托盘、窗口状态、单实例、统一退出和 Windows 原生目录选择已通过 smoke。全新官方 DSH checkout 已由构建助手完成 935 个依赖安装和官方完整构建,随后真实便携 EXE 已完成工作区注册、会话归组、模型工具调用、Windows ACL 沙箱、前台及后台 PowerShell 文件读写、正式会话取消,以及 Full access 下持久 PowerShell 终端的命令、文件、Renderer 和清理闭环。Workspace write 下的持久终端仍受官方 ACL runner 与 ConPTY 组合限制,当前会在启动期返回 PTY shell exited during startup;标准预设的一次性 PowerShell 不受影响。皮肤平台 0.1.1 已完成深浅皮肤与 Harness 默认外观的标题栏颜色实测;0.1.2 已通过官方插件流程装入隔离桌面配置档案,等待当前窗口下次重启后做人工复核。Electron Builder NSIS 正式安装器已在全新测试 Harness 下完成首次安装、同目录覆盖、安装后便携与前台 Agent 工具链、卸载、注册项清理、用户数据保留及 Harness 摘要不变验证;当前安装器仍未签名,辅助安装界面和非静默目录选择仍需人工复核。后续发布门禁见 打包门禁,完整流程见 Electron Windows 安装器与发布流程。

目录约定和构建边界见 目录内 DSH 运行时与构建助手,详细证据见 阶段一验证。用户侧的首次配置、启动、切换、升级、卸载、自动更新和问题排查见 客户端启动器使用说明;安装器的打包、发布和门禁见 打包门禁 与 Windows 安装器与发布流程。正式发布不代表代码签名、Preview 数据迁移或更新失败回滚已经完成。
预览分享卡片长什么样 ↓mhdfy1988/dsh-client-launcher
分享 · DeepSeek Harness Hub
mhdfy1988/dsh-client-launcher

管理多个客户端并一键启动,自动检查更新

这是你的仓库?认领条目

回到顶部