At a glance
What it does
A DeepSeek Harness Desktop companion bundle for shell settings, diagnostics, updates, tray events, and external-link failure notices.
Desktop Profile
Not declared in supplied evidence
Evidence-verified
Checked Sep 13, 2026, 1:59 PM UTC
Code-evidenced contributions
What it adds to DSH
Adds desktop-shell integration for update and diagnostic flows, desktop settings UI, tray-event relaying, and failed external-link notices.
Mechanism evidence ↗Before you choose it
This bundle inserts `dsh-desktop-companion` into a DSH profile layer and injects the DSH client locale package for the web client. Its declared role is to connect the .NET desktop shell with desktop settings, update and diagnostic UI, tray-event relaying, and feedback when an external link cannot open.
Best for
Use it if you run the dotnet-deepseek-harness-desktop desktop shell and want its companion integration rather than a standalone coding skill or general-purpose DSH extension.
Common tasks
- Enable the desktop shell's update, diagnostic, and desktop-settings integration.
- Receive desktop tray-event relay behavior in the companion shell.
- Show a user-facing notice when an external link fails to open.
Permissions and data
The supplied manifest declares web-client injection and desktop companion integration, but does not declare a detailed permission model or data policy.
Permissions- Declared client platform: web.
- Injects `@deepseek-ai/dsh-client-locale` into the client.
- No specific collection, storage, or transmission behavior is declared for this bundle in the supplied evidence.
- No external service requirement is declared for this bundle in the supplied evidence.
- No credential requirement is declared for this bundle in the supplied evidence.
Limitations
- No Harness version range is declared.
- No install script is captured; use the verified Git-bundle route rather than assuming npm availability.
- The supplied evidence does not verify installation or runtime behavior.
- The repository describes the broader desktop app as an early preview and notes that cross-version data compatibility is not guaranteed.
What DSHub checked
- Package manifest, bundle patch, and immutable Git source commit were verified.
- The bundle patch inserts `dsh-desktop-companion` into a profile layer.
- The package is licensed MIT.
What DSHub did not check
- Successful installation was not executed.
- Runtime compatibility, permissions, and behavior were not independently tested.
- The npm distribution for version 0.0.18 was not found.
Pinned install
Install DSH Desktop Companion
This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.
Maintainer source
Project README
DeepSeek Harness Desktop for .NET
<p align="center"><a href="README.en.md">English</a> · <strong>中文</strong></p><p align="center"><strong>DeepSeek Harness(MIT)的 .NET 桌面客户端——简单壳,依赖全机唯一的一份全局 dsh:无则装、落后则更新到 @alpha。</strong></p><p align="center"> <a href="#功能">功能</a> · <a href="#下载安装">下载安装</a> · <a href="docs/user-guide.md">用户指南</a> · <a href="docs/faq.md">常见问题</a> · <a href="#工作原理">工作原理</a> · <a href="#开发">开发</a> · <a href="docs/architecture.md">架构</a> · <a href="LICENSE">MIT License</a> </p><p align="center"> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/releases"><img src="https://img.shields.io/github/v/release/ZK-Andy/dotnet-deepseek-harness-desktop?style=flat&label=release&color=4D6BFE" alt="release"></a> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/releases"><img src="https://img.shields.io/github/downloads/ZK-Andy/dotnet-deepseek-harness-desktop/total?style=flat&label=downloads&color=4D6BFE" alt="downloads"></a> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop"><img src="https://img.shields.io/github/stars/ZK-Andy/dotnet-deepseek-harness-desktop?style=flat&label=stars&color=4D6BFE" alt="stars"></a> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/actions/workflows/ci.yml"><img src="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/actions/workflows/ci.yml/badge.svg" alt="build & test"></a> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/actions/workflows/ci.yml"><img src="https://img.shields.io/badge/tests-610%2F610-brightgreen" alt="tests"></a> <a href="docs/testing.md"><img src="https://img.shields.io/badge/coverage-55.72%25-yellowgreen" alt="coverage"></a> <a href="https://github.com/ZK-Andy/dotnet-deepseek-harness-desktop/releases"><img src="https://img.shields.io/badge/platform-macOS%20%7C%20Windows%20%7C%20Linux-4f6ef7" alt="platform"></a> <a href="https://dotnet.microsoft.com/download/dotnet/10.0"><img src="https://img.shields.io/badge/.NET-net10.0-512bd4" alt=".NET"></a> </p>DeepSeek Harness(MIT)的 .NET 桌面客户端,基于 Ryn(Tauri-for-C# 原生 WebView 框架)。桌面壳是简单壳,依赖系统全局 node + 全局 dsh(都在用户 PATH 上,npm install -g @deepseek-ai/dsh@alpha 装/更新,桌面与终端共用同一套、无版本分叉)。首次启动检测全局 dsh:没有 → 装;落后 @alpha → 更新到 @alpha;已最新 → 直接用。node 走系统全局(用户那份 node/npm,或没有则桌面下载最新官方 node 装到系统全局位供共用),桌面不自备私有 node / 私有 PATH。
功能
⚡️ 简单壳、依赖系统全局 node + 全局 dsh(online-first) — 安装器只带壳(约 30MB 级),不运输行时闭包。首启检测用户 PATH 上的全局 dsh:没有 → 经全局 node 的
npm install -g @deepseek-ai/dsh@alpha装到系统全局位;落后@alpha→ 更新到@alpha;已最新 → 直接用。dsh 跟随 alpha 预发布通道,不钉版。node 检查/下载只在"需要确保 dsh"时做一次(复用系统全局 node;无则桌面下载最新官方 node 装到系统全局位,写系统位需 sudo 时给出手动安装命令),不做重复联网。壳在共享数据目录~/.dsh以专属desktopprofile 拉起 dsh。会话/凭据/插件与 CLI、TUI、Web 同一宇宙互通。⌨️ 终端命令(CLI shim 注册) — dsh 已全局在 PATH;壳把内容恒定的
pnpmshim 注册到用户PATH(Windows%LOCALAPPDATA%\deepseek-harness\bin+HKCU\Environment\Path幂等合并;mac/linux~/.local/bin+ shell rc 幂等块;dsh 无需 shim),终端可直接用pnpm。不覆盖用户自己的同名命令。🔒 原生轻量壳 — C# 后端跑在系统 WebView(WebView2 / WKWebView / WebKitGTK),NativeAOT 就绪,能力沙箱 deny-by-default(
ryn.json)。🔄 崩溃自愈与会话回归 — 壳监督运行时子进程:崩溃 → 恢复页(原因/stderr 尾部 + 导出诊断 + 退出应用)→ 自动重启 → 同一窗口回到新 URL;端口保持稳定,Web UI origin(及页面级会话记忆)存活——崩溃或重启后回到之前的对话。例外:首选端口被本应用认不出归属的程序占用时(其他程序、其他 profile 的 dsh,或归属判不出的残留 dsh),本次启动漂移到新端口——origin 随之改变,页面级会话记忆不再保留;若这次漂移发生在页面已加载之后(崩溃恢复、市场接力的重启),该会话内设置页的更新、开机自启、关闭时最小化到托盘、导出诊断信息还会失效——重启应用恢复。
💓 页面健康监护(假活看门狗) — 壳侧只读探针轮询「dsh 进程在跑但页面空白」的假活形态(不注入脚本、不依赖桌面伴生插件存活);连续空白达阈值即在预算内触发一次有界 reload 自愈,耗尽转观测、成功恢复复位预算——防误报引发无限重载循环。
⬆️ 自更新 — 启动后台检查一次 + 设置页手动检查;发现新版本一键安装并自动重启(安装包
SHA256强校验;macOS引导手动更新),详见下方「自动更新」。🧩 插件市场 + 版本感知升级 + registry 自管 —
dsh-market经首启引导页「插件准备」步(推荐 chip + 确认/跳过 + 日志回流)以 registry 安装到桌面专属 profile(~/.dsh/profiles/dotnet-desktop),确认后与 dsh 内核一次就位(联网;跳过可稍后在应用内市场补装);随包桌面伴生插件按版本感知升级——内置版本更新即自动升级、绝不降级;市场为 registry 形态(与用户自装完全等价:上游发新版市场内即提示,无需等桌面发版);1200+插件可搜一键装。🖥️ 系统托盘 — 关闭窗口默认最小化到托盘(可在设置改为直接退出),托盘菜单提供显示主窗 / 检查更新 / 退出(随 dsh 语言中英切换);退出经有序编排,运行时子进程干净回收。
🚀 单实例仲裁 — 应用运行中再次点击启动器/图标,唤起既有主窗而非新开重复实例。
🔁 开机自启 — 设置页一键开关(Linux XDG autostart / Windows 注册表 Run / macOS LaunchAgents)。
🖼️ 原生图标 / Wayland 就绪 — 图标随包入
hicolor,ryn.json:identifier与StartupWMClass均为io.github.ZK-Andy.dotnet-deepseek-harness-desktop,任务栏正确关联。
下载安装
从 Releases 下载对应平台安装包(附 SHA256SUMS.txt 校验):
| 平台 | 架构 | 包格式 |
|---|---|---|
Linux |
x64 / arm64 |
deb(…_linux-amd64.deb / …_linux-arm64.deb)/ rpm(…_linux-x86_64.rpm / …_linux-aarch64.rpm) |
macOS |
arm64 / x64 |
dmg |
Windows |
x64 |
exe 安装器(…-setup.exe) |
预览版提示:项目处于早期预览阶段,可能存在破坏性变更(数据目录布局、配置格式、运行时组件版本等),不保证跨版本数据兼容;升级前请自行备份重要会话与配置。
升级注意:桌面 profile 目录为
profiles/dotnet-desktop——升级时旧profiles/desktop会在首次启动自动改名(插件与端口记忆保留,无需手动操作);终端手动操作请用dsh --profile dotnet-desktop,详见 docs/user-guide.md。未签名说明:本项目开源、不做付费签名,发布包未签名。macOS 首次打开若见 Gatekeeper「来自身份不明的开发者」→ 右键「打开」或 系统设置 → 隐私与安全性 →「仍要打开」;Windows 若见 SmartScreen「未知发布者」→「更多信息」→「仍要运行」。开发/内部可用
SELF_SIGN=1自签消除本机告警,用法见 docs/development.md。测试状态:单元测试由
CI自动跑(dotnet test全绿,见上方徽章);真机验收至今只在Linuxx64rpm包上做过——deb、Linux arm64、macOS(dmg)、Windows(setup.exe)均无真机验证,仅经 CI 编译/打包/冒烟。macOS x64/Windows真机针对性测试等待社区支持(本地无 mac Intel x64 / Windows 真机)。安装器、自更新、首启补装等依赖真机的链路请按 docs/testing.md 列出的边界对待,尝鲜前做好备份。
自动更新
- 启动时后台检查一次新版本(不轮询、不打扰);也可在 设置 → 桌面设置 手动检查。
- 发现新版本后,侧栏底部出现下载按钮——点击即下载校验、一键安装并自动重启(
Linux会弹一次系统授权)。 - 安装包落地前经
SHA256SUMS.txt强校验,校验失败拒绝安装。 macOS暂不支持应用内静默更新——检测到新版本时会提示手动下载dmg。
工作原理
┌──────────────────────────────────────────────────────┐
│ Ryn 壳(C#,系统 WebView) │
│ 拉起 dsh → 解析 dsh web: URL → 加载 Web UI │
│ 崩溃监督 → 稳定端口重启 → 回到之前对话 │
└─────────────────────────┬────────────────────────────┘
│ spawn + 共享 ~/.dsh · desktop profile
┌─────────────────────────▼────────────────────────────┐
│ 运行时(全局 dsh,简单壳) │
│ PATH 上的 @deepseek-ai/dsh@alpha(无则装/落后则更新) │
│ dsh web(localhost) │
└──────────────────────────────────────────────────────┘
(详细架构见 docs/architecture.md。)
开发
# 前置:.NET 10 SDK;Linux 需 WebKitGTK
# 运行(开发环境必须带 DSH_DESKTOP_DEV=1——dev 隔离 home 与单实例后缀;无 PATH dsh 时走首启引导,需网络)
DSH_DESKTOP_DEV=1 dotnet run --project src/DeepSeek.Harness.Desktop
# 测试(610/610)
dotnet test dotnet-deepseek-harness-desktop.slnx
# WebView 调试器(默认关)
DSH_DEVTOOLS=1 dotnet run --project src/DeepSeek.Harness.Desktop
运行时需要可达的 DeepSeek provider 凭据(如
DEEPSEEK_API_KEY)才能提供 Web UI。
目录
├── src/DeepSeek.Harness.Desktop/ # Ryn 壳:Program + Services/(运行时监督、自更新、系统托盘、单实例仲裁、诊断导出等)
├── tests/DeepSeek.Harness.Desktop.Tests/ # xunit 610/610
├── scripts/ # 门禁 + package-*.sh + release-preflight.sh + release-notes.sh
└── docs/architecture.md、testing.md、development.md
许可与致谢
- 本项目:MIT。
- deepseek-harness(MIT)—— 本壳托管的运行时。
- Ryn(MIT)—— 桌面壳框架。
- 打包思路参考 pilot-harness。
Operate deliberately
Install and manage
Prerequisites and target Profile
Target: Desktop Profile
Delivery: Dsh Bundle Git — ZK-Andy/dotnet-deepseek-harness-desktop#6b1f49cd806290192e5a76354f38afcbd696f432。
Verify, update, and remove
Show lifecycle commands
dsh plugin --profile desktop listCompatibility and access
DSH web Client bundle; desktop companion integration: Not declared in supplied evidence。
Review compatibility evidence ↗
Risk facts
Install from the pinned Git bundle; the corresponding npm package version was not found.
Evidence ↗Released under the MIT License.
Evidence ↗Evidence and editorial reviewManifest, Bundle patch, distribution and freshness
Immutable evidence
Review status and source activity
Choose this only for the desktop-shell companion features; its verified distribution route is the pinned Git bundle.
AI reviewed Sep 13, 2026, 2:00 PM UTC。GitHub facts last checked Sep 13, 2026, 2:00 PM UTC。
No material source change has been recorded since this evidence baseline.