At a glance
What it does
A DSH bundle that supplies the desktop host bridge and replaces the upstream webserver configuration.
Desktop Profile
Not declared in supplied evidence
Evidence-verified
Checked Sep 10, 2026, 2:18 PM UTC
Code-evidenced contributions
What it adds to DSH
Replaces the upstream webserver entry with a desktop-bound host bridge and webserver configuration.
Mechanism evidence ↗Before you choose it
This private DSH bundle is part of the Swift Native Shell project. Its patch disables @deepseek-ai/dsh-host-webserver, then adds a localhost desktop webserver and the dsh-desktop-host bridge. The package exposes client, webserver, browser-route, LAN-route, ingress, session-broker, control, and access-state modules.
Best for
DSH Desktop integrators using the Swift Native Shell architecture who need its bundled desktop bridge.
Common tasks
- Configure a DSH profile with the desktop host bridge.
- Run the desktop webserver on localhost with a configurable DSH_DESKTOP_PORT.
- Provide the bridge modules used by the desktop shell's client and service boundaries.
Permissions and data
The supplied patch configures a local webserver and the manifest injects theme, sessions, and locale into the web client.
Permissions- Bind a webserver to 127.0.0.1.
- Access theme, sessions, and locale through DSH client injection.
- No retention, telemetry, or external data-transfer policy is declared in the supplied package manifest or patch.
- Requires the @deepseek-ai/dsh-host-webserver peer dependency.
- No credential requirement is declared in the supplied evidence.
Limitations
- No npm distribution for version 0.1.0 was found.
- No installation script was captured.
- No Harness version range is declared.
- This bundle is private and is specifically configured as a desktop bridge rather than a general-purpose webserver replacement.
What DSHub checked
- The package manifest and DSH bundle patch were structurally verified at the pinned source commit.
- The patch disables the upstream webserver entry and inserts desktop-webserver plus desktop-host.
- An immutable Git bundle distribution path is verified.
What DSHub did not check
- Installation and runtime behavior were not executed.
- Compatibility with a particular DSH Harness version was not verified.
- The exposed modules' operational behavior was not independently verified.
Pinned install
Install DSH Desktop Host Bridge
This plugin bundle does not have a DSH Plugin install action. Use its source documentation for the delivery method.
Maintainer source
Project README
DSH Swift Native Shell 是 DSH Desktop 的独立 Swift 原生 macOS 实现。它负责窗口、菜单、设置页、运行时生命周期和桌面系统集成,核心 DSH Web UI 仍由官方 @deepseek-ai/dsh 运行时提供。
本项目是一个独立的 Xcode 工程,不依赖 Electron 仓库,也不需要通过 npm install 或 npm ci 准备应用构建依赖。
[!IMPORTANT] 这是非官方社区项目,当前为预发布版本。macOS 构建默认使用本地自签名证书签名(无证书时可用
DSH_CODESIGN_IDENTITY=-回退 ad-hoc),尚未接入 Developer ID 和 notarization。首次打开如遇系统拦截,请右键选择“打开”,或前往“系统设置 → 隐私与安全性”放行。
下载
当前 Swift 原生版安装包发布在 DSH Desktop Releases。
| 平台 | 架构 | 安装包 | 下载 |
|---|---|---|---|
| macOS | Apple Silicon | DMG | 下载 arm64 |
界面预览
主界面
<p align="center"> <img alt="DSH Swift 主界面" src="assets/主界面.png" /> </p>独立设置中心
设置窗口采用接近 macOS 系统设置的布局,支持通用设置、版本管理、插件管理和关于页面。
<h4 align="center">通用设置</h4> <p align="center"> <img alt="DSH Swift 通用设置" src="assets/通用设置.png" /> </p><h4 align="center">版本管理</h4> <p align="center"> <img alt="DSH Swift 版本管理" src="assets/版本管理.png" /> </p><h4 align="center">插件管理</h4> <p align="center"> <img alt="DSH Swift 插件管理" src="assets/插件管理.png" /> </p>主要特性
- 原生 macOS 窗口体验:使用 AppKit 管理主窗口、交通灯、Dock 恢复、窗口拖拽、双击标题栏和独立设置窗口。
- SwiftUI 设置中心:提供通用、版本、插件和关于页面,界面跟随系统深浅色模式。
- DSH 运行时管理:应用包只内置 Node.js 和 pnpm,首次启动时从 npm Registry 下载并安装 DSH 运行时。
- DSH Runtime 更新:首次启动和后续更新均从 npm Registry 获取 DSH 插件族;更新先安装 candidate,完成 Node/control、Renderer HTTP、匿名拒绝、Browser/LAN 边界和 Web UI 验证后才确认,失败时恢复完整的 Runtime 与当前 Profile 快照,并暂时抑制失败版本。
- 插件管理:支持当前 DSH Profile 插件的安装、更新、卸载和服务重启,桥接插件随应用内置。
- 桌面通知:支持 DSH 任务完成通知,并可从通知恢复应用窗口。
- Sparkle 更新:Swift 应用包使用 Sparkle 提供检查更新和签名更新;应用版本与 DSH npm 运行时版本彼此独立。
- Apple Silicon 构建:应用、内置 Node.js 和 DMG 均为 arm64 架构。
运行架构
DSH Swift Native Shell
├── AppKit / SwiftUI / WKWebView
│ ├── 主窗口、菜单和 macOS 系统交互
│ └── 设置与关于窗口
│
├── DSH Service
│ ├── 应用内置 Node.js
│ ├── 应用内置 pnpm
│ └── 从 npm 安装的 DSH 运行时
│
├── Desktop Host Bridge
│ └── 当前 Profile 的桥接插件
│
└── Sparkle
└── Swift 应用包更新
构建
环境要求
- macOS 26 或更高版本
- 支持 Swift 5.9 的 Xcode
- 构建时可访问 Swift Package Manager、Node.js 和 npm Registry
构建应用与 DMG
在仓库根目录执行:
bash scripts/build-app.sh
bash scripts/package-dmg.sh
默认构建并打包 Apple Silicon(arm64)版本:
DSH_BUILD_ARCH=arm64 bash scripts/build-app.sh
DSH_BUILD_ARCH=arm64 bash scripts/package-dmg.sh
应用包和 DMG 默认输出到 dist/。如需指定输出目录:
SWIFT_DIST_DIR=/path/to/output bash scripts/build-app.sh
SWIFT_DIST_DIR=/path/to/output bash scripts/package-dmg.sh
构建脚本会自动准备对应架构的 Node.js,并下载、校验固定版本的 pnpm CLI。assets/node/ 和 assets/bin/pnpm-pkg/ 是构建时生成的缓存,已通过 .gitignore 排除,不需要提交。
Xcode 工程是标准构建入口;Package.swift 仅作为辅助 Swift Package 清单保留。若要获得完整的资源准备和分架构产物,请使用 scripts/ 下的脚本。
默认用本地自签名证书(DSH Local Dev)对应用包签名,使 macOS 的 TCC 授权(如屏幕录制)在替换新包后仍保持有效;首次构建前可运行 bash scripts/setup-local-codesign-cert.sh 生成并导入该证书,或通过 DSH_CODESIGN_IDENTITY=- 回退到 ad-hoc 签名。
测试
测试包括源码/工程配置检查与动态 Swift harness;需要 Node.js、macOS 和 Xcode 命令行工具,不需要安装 npm 依赖:
npm test
开发工作流
- 一次完成本地 arm64 构建、打包、校验及 SHA-256:
bash scripts/release-local.sh arm64;加--dry-run只查看流程。沿用SWIFT_DIST_DIR;成功打包后会由原脚本清理.build。此入口不运行测试、不安装、不发布。
版本与更新
- Swift 应用版本和构建号独立维护在 Version.xcconfig 中。
- Swift 应用版本不等同于 DSH npm 运行时版本;后者在应用内的版本管理页单独检查并升级到 npm
latest、next或用户明确选择的alpha。启动、插件操作和 Runtime 更新共享串行事务门,避免并发重启。 - Runtime 版本目录以 npm Registry 为唯一来源;当前只接受 stable、
alpha.N与rc.N版本,GitHub 独有版本、beta 及任意降级暂不参与运行时选择。 - Sparkle 公钥写入 Info.plist,Ed25519 私钥只保存在发布机器的 Keychain 中,禁止提交到仓库。
- 当前更新 feed 位于
appcast-swift.xml,发布新版本时需要先构建 arm64 DMG,再使用 Sparklesign_update生成签名并更新 feed。
已知限制
- 当前使用本地自签名证书签名(
scripts/setup-local-codesign-cert.sh创建,DSH_CODESIGN_IDENTITY可切换到其它身份或-回退 ad-hoc),未提供 Developer ID 签名和 notarization。 - 通知点击恢复隐藏主窗口等少数系统交互仍有待完善。
- 应用更新和 DSH npm 运行时更新是两套独立流程。
- 当前只提供从已安装 Runtime 向 npm
latest/next/alphatag 的单向升级;默认仅通知不自动安装,next和alpha只能由用户明确选择;更新失败的版本会抑制到 npm tag 变化、应用升级或用户手动重试;旧版本会保留到新 Runtime 连续两次成功启动后自动清理,暂不提供任意版本切换、卸载或降级入口。 - App 默认使用独立的
profiles/swift-desktop,终端dsh web继续使用profiles/web;旧版 App 的profiles/desktop会在首次启动时安全复制到新目录;通用设置中切换到web后,两者会共享插件和依赖,升级或插件变更可能影响终端启动。 webProfile 下禁止 DSH Runtime 版本升级和自动更新;从web切回swift-desktop时,应用会先停止服务,再移除 web Profile 中的dsh-desktop-host与@deepseek-ai/dsh-host-webserver,避免继续污染终端环境。- 目前仅提供 macOS 26+、Apple Silicon(arm64)构建。
- 同一用户会话只允许运行一个实例:状态文件、事务快照、服务记录和端口都位于
~/Library/Application Support/DSH,而该目录不随DSH_HOME隔离。重复启动会被拒绝(LSMultipleInstancesProhibited+ 应用内的flock实例锁,见Sources/Service/DshInstanceLock.swift);锁路径被非普通文件占用(目录、符号链接等)或锁调用异常时会弹窗说明并停止启动,只有权限/只读/磁盘空间这类环境限制才会在记录诊断后继续启动。测试 harness 使用独立的DSH_TEST_APP_SUPPORT根,仍可并行运行。 - Runtime 升级完成到下次启动之间是"已确认待结算"窗口:此期间插件安装/更新/卸载与 Profile 切换会保持禁用(普通设置不受影响),重启一次 DSH 后即可继续——这样可避免升级回退时静默撤销此间改动的插件,或让清理悬置。该门禁在插件操作真正取得运行时锁之后会再检查一次,因此排队期间进入该窗口的操作会被拒绝,而不是静默生效后再被回退。
许可证
本项目采用 MIT License。DSH 运行时在首次启动时从 npm Registry 获取,其版权和许可证归对应上游项目所有。
本项目与 DeepSeek 不存在隶属或官方合作关系。DeepSeek Harness 及相关名称的权利归其各自所有者所有。
Operate deliberately
Install and manage
Prerequisites and target Profile
Target: Desktop Profile
Delivery: Dsh Bundle Git — summer-521/deepseek-harness-swift#c41a74fc5f09832c133f6576c6437de64f61284c。
Verify, update, and remove
Show lifecycle commands
dsh plugin --profile desktop listCompatibility and access
Requires @deepseek Ai/dsh Host Webserver as a peer dependency: Not declared in supplied evidence。
Review compatibility evidence ↗
Risk facts
The patch configures the desktop webserver to bind to 127.0.0.1 and uses DSH_DESKTOP_PORT or port 3080.
Evidence ↗MIT licensed; provided without warranty.
Evidence ↗Evidence and editorial reviewManifest, Bundle patch, distribution and freshness
Immutable evidence
Review status and source activity
Use the pinned Git source rather than expecting this 0.1.0 package to be available from npm.
AI reviewed Sep 10, 2026, 2:19 PM UTC。GitHub facts last checked Sep 10, 2026, 2:19 PM UTC。
No material source change has been recorded since this evidence baseline.