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

桌面客户端壳 Audrey0976/dsh-desktop-shell

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

非官方社区桌面壳Unofficial:把官方

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

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

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/Audrey0976/dsh-desktop-shell.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · dev
暂无时间戳·判据 →
装得上吗[实装验证]!
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
L4 · 真实安装等级说明 →
数据截至 2026/10/30·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/06·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 14 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-desktop-shell(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:14:30

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 23 处,展示前 23 条)
  • 写入本地文件
    src/bootstrap/bootstrap.mjs:178
    await mkdir(join(configuration.dataDirectory, 'logs'), { recursive: true })
  • 执行外部命令来自配置/变量
    src/bootstrap/lib/backend.mjs:54
    const child = spawn(process.execPath, arguments_, {
  • 执行外部命令固定命令
    src/bootstrap/lib/backend.mjs:115
    const killer = spawn('taskkill.exe', ['/PID', String(child.pid), '/T', '/F'], { windowsHide: true, stdio: 'ignore' })
  • 读取本地文件
    src/bootstrap/lib/files.mjs:7
    return JSON.parse(await readFile(path, 'utf8'))
  • 写入本地文件
    src/bootstrap/lib/files.mjs:15
    await mkdir(dirname(path), { recursive: true })
  • 写入本地文件
    src/bootstrap/lib/files.mjs:24
    await rename(temporary, path)
  • 读取本地文件
    src/bootstrap/lib/files.mjs:60
    const info = await stat(executable)
  • 写入本地文件
    src/bootstrap/lib/files.mjs:70
    await mkdir(paths.versions, { recursive: true })
  • 删除本地文件递归
    src/bootstrap/lib/files.mjs:95
    await rm(path, { recursive: true, force: true })
  • 写入本地文件
    src/bootstrap/lib/log.mjs:17
    await mkdir(dirname(path), { recursive: true })
  • 写入本地文件
    src/bootstrap/lib/log.mjs:19
    if ((await stat(path)).size > 2 * 1024 * 1024) await rename(path, `${path}.previous`)
  • 读取本地文件
    src/bootstrap/lib/log.mjs:19
    if ((await stat(path)).size > 2 * 1024 * 1024) await rename(path, `${path}.previous`)
  • 写入本地文件
    src/bootstrap/lib/log.mjs:27
    queue = queue.then(() => appendFile(path, line, { encoding: 'utf8', mode: 0o600 })).catch(() => {})
  • 发起网络请求
    src/bootstrap/lib/registry.mjs:7
    const response = await fetch(endpoint, {
  • 读取本地文件
    src/bootstrap/lib/updater.mjs:19
    return JSON.parse(await readFile(runtimePaths(configuration.dataDirectory).updateState, 'utf8'))
  • 写入本地文件
    src/bootstrap/lib/updater.mjs:45
    await writeFile(join(stagingDirectory, 'package.json'), `${JSON.stringify({ private: true })}\n`, 'utf8')
  • 执行外部命令来自配置/变量
    src/bootstrap/lib/updater.mjs:53
    const child = spawn(process.execPath, arguments_, {
  • 写入本地文件
    src/bootstrap/lib/updater.mjs:83
    await mkdir(paths.versions, { recursive: true })
  • 写入本地文件
    src/bootstrap/lib/updater.mjs:90
    await mkdir(staging, { recursive: true })
  • 读取本地文件
    src/bootstrap/lib/updater.mjs:97
    const packageManifest = JSON.parse(await readFile(join(staging, 'node_modules', '@deepseek-ai', 'dsh', 'package.json'), 'utf8'))
  • 写入本地文件
    src/bootstrap/lib/updater.mjs:101
    await writeFile(join(staging, 'install.json'), `${JSON.stringify({
  • 删除本地文件递归
    src/bootstrap/lib/updater.mjs:108
    await rm(destination, { recursive: true, force: true })
  • 写入本地文件
    src/bootstrap/lib/updater.mjs:109
    await rename(staging, destination)
扫描于 2026/11/6(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

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

功能亮点

  • 非官方社区桌面外壳

DeepSeek Harness 的非官方社区桌面外壳

README

由 DeepSeek 最新模型翻译生成
DSH Desktop Shell English · 安装说明 · 兼容策略 非官方社区桌面壳(Unofficial):把官方 @deepseek-ai/dsh Web UI 当作本地 Windows 应用来跑。项目不 fork、不修改官方 Web UI,也不代表 DeepSeek 官方。 首版能力 - Windows 10/11 x64 原生 WinForms + WebView2 窗口。 - 32px 一体化标题栏、Windows 原生菜单、深浅主题、金属灰鲸鱼启动动画。 - 关闭窗口后驻留系统托盘;托盘菜单可重新打开、重启服务、检查更新、查看日志和真正退出。 - 内置 Node 24 与已验证的 @deepseek-ai/dsh@0.1.0-rc.6,无需预装 Node。 - 后台使用随机回环端口,只允许 WebView 导航到本次启动返回的精确本地 origin。 - dsh 同一兼容系列可独立提示更新;安装失败或 90 秒健康检查失败时自动回滚。 - Ctrl+B、Ctrl+N 等增强通过容错 DOM 适配器调用官方 UI;适配器失效不会阻止主界面运行。 下载与安装 首个公开版本为未签名的 v0.1.0 Pre-release,会触发 Windows SmartScreen 提示。
展开完整文档(README 剩余 1 节)
DSH Desktop Shell

English · 安装说明 · 兼容策略

非官方社区桌面壳(Unofficial):把官方 @deepseek-ai/dsh Web UI 当作本地 Windows 应用来跑。项目不 fork、不修改官方 Web UI,也不代表 DeepSeek 官方。

首版能力

- Windows 10/11 x64 原生 WinForms + WebView2 窗口。
- 32px 一体化标题栏、Windows 原生菜单、深浅主题、金属灰鲸鱼启动动画。
- 关闭窗口后驻留系统托盘;托盘菜单可重新打开、重启服务、检查更新、查看日志和真正退出。
- 内置 Node 24 与已验证的 @deepseek-ai/dsh@0.1.0-rc.6,无需预装 Node。
- 后台使用随机回环端口,只允许 WebView 导航到本次启动返回的精确本地 origin。
- dsh 同一兼容系列可独立提示更新;安装失败或 90 秒健康检查失败时自动回滚。
- Ctrl+B、Ctrl+N 等增强通过容错 DOM 适配器调用官方 UI;适配器失效不会阻止主界面运行。

下载与安装

首个公开版本为未签名的 v0.1.0 Pre-release,会触发 Windows SmartScreen 提示。
Release 提供:

- DSH-Desktop-Shell-0.1.0-win-x64-setup.exe:当前用户安装到 %LOCALAPPDATA%\Programs\DSH Desktop Shell。
- DSH-Desktop-Shell-0.1.0-win-x64-portable.zip:解压即用,数据写入自身 data\。
- SHA256SUMS.txt、SPDX SBOM 和第三方许可证说明。

安装版默认沿用 DSH_HOME;未设置时使用官方默认 ~/.dsh,因此可与 CLI/浏览器版共享会话与凭据。
便携版默认使用自身 data\dsh-home,其中可能含 API Key,复制 U 盘或上传压缩包前请先检查。

完整步骤见安装说明。

更新边界

桌面壳与 dsh 分别版本化:

- 桌面壳:v0.1.0
- 内置回退 dsh:0.1.0-rc.6
- 当前自动更新范围:>=0.1.0-rc.6 <0.2.0,并明确排除 0.2.0-*

兼容更新下载到应用数据目录的不可变版本文件夹,成功后原子切换 current.json;失败版本会回滚并隔离七天。
出现 0.2.x 等兼容边界时,只提示更新桌面壳,不直接安装。详见兼容策略。

隐私与安全

- 桌面壳不加入遥测、崩溃上传或静默自更新。
- 日志仅记录启动/更新生命周期,限制长度并脱敏常见密钥格式;不主动记录对话正文。
- API Key、会话、WebView 用户数据、日志、Node、dsh 和构建产物不会提交进 Git。
- 外部链接交给系统浏览器;WebView 只接受 bootstrap 返回的随机本地 origin。

这里描述的是桌面壳自身行为;上游 dsh 的网络请求和数据策略由其版本及用户配置决定。
详见隐私说明和安全策略。

开发

要求:Windows、.NET 8 SDK(用于构建 net48 项目)、Node 24、Inno Setup 6。

npm test --prefix src/bootstrap
dotnet build DSH.Desktop.Shell.sln -c Release -p:Platform=x64
powershell -ExecutionPolicy Bypass -File scripts/Build-Windows.ps1

构建脚本固定 Node/dsh/WebView2 版本,校验 Node 官方 SHA-256,并生成 Setup、Portable、SHA256SUMS 和 SPDX SBOM。
更多信息见贡献指南与发布指南。

许可证

桌面壳采用 MIT 许可证。DeepSeek Harness、Node.js、WebView2 和其他依赖遵循各自许可证,见 THIRD_PARTY_NOTICES.txt。
预览分享卡片长什么样 ↓Audrey0976/dsh-desktop-shell
分享 · DeepSeek Harness Hub
Audrey0976/dsh-desktop-shell

非官方社区桌面壳Unofficial:把官方

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