MIT 社区移植项目(Shell),把官方 DSH 桌面端打包到 Linux,产出 AppImage / deb / rpm / Arch 包,并补上托盘、玻璃模式与无边框补丁。
DSH 适配
原生运行时
作者声明
安全审计
未审计
最后核验
2026-11-10
许可证
MIT
01它能帮你完成什么?
在上游明确不支持的 Linux 上跑官方 DeepSeek Harness 桌面端
官方 Electron 应用本身的 AppImage、deb、rpm 与 Arch 包:渲染走自己的 dsh-app:// 协议,内置 Node / pnpm / Python 运行时,并使用独立的 desktop profile
不想用 CLI 或浏览器标签页、想要桌面客户端的 Linux 用户
关窗后还能把窗口找回来——因为关窗只是隐藏
带菜单的常驻托盘图标(补丁 0013),可以重新打开窗口,或从托盘菜单、Application → Quit、Ctrl+Q 完全退出
关掉窗口后以为程序退出了的用户
让窗口近似 macOS 版观感,或干脆去掉系统标题栏
可选开启的玻璃模式(隐藏菜单栏、侧栏浓度可调)与无边框模式(40px 页面内 caption、Electron 自绘窗口按钮)
在 KDE、Hyprland 或 niri 上想指定窗口形态的 Wayland 用户
让插件市场能读到宿主版本,而不是显示「宿主版本未知」
补丁 0017 把打包安装的 resources 根传给 Linux 的 Host 进程,兼容性筛选与「更新到兼容版本」随之可用
在 Linux 上从市场装插件的用户
02如何接入 DeepSeek Harness?
前置条件
- 从 Releases 下预编译包,或从源码构建:Node 24.9+(要带 TypeScript 类型剥离)、用 npm 或 corepack 装的 pnpm 11、git,打 rpm 还需 rpmbuild
- AppImage 需要系统提供 FUSE 2(libfuse.so.2),而主流发行版现在默认只装 FUSE 3
- GNOME 需要 AppIndicator 扩展才有托盘,且新装的扩展要注销重登才生效
安装步骤
- 01
装预编译包:AppImage 先 chmod +x 再运行,deb 用 `sudo apt install ./deepseek-harness-*.deb`,rpm 用 `sudo dnf install ./deepseek-harness-*.rpm`,Arch 用 `sudo pacman -U ./dsh-desktop-linux-*.pkg.tar.zst`
- 02
从源码构建:`./scripts/fetch-upstream.sh`、`./scripts/apply-patches.sh`,然后 `./scripts/build.sh --all`(或 --dir / --appimage / --deb / --rpm)
- 03
打 Arch 包:`./scripts/pkgbuild-dir.sh` 摊平成 ./pkgbuild,再在里面 `makepkg -si`
- 04
跑 `./scripts/verify.sh --runtime` 验证构建出的运行时矩阵
验证接入成功
- 产物落在 `upstream/apps/desktop/.desktop-build/targets/linux-x64/unsigned-artifacts/`(arm64 机器上是 linux-arm64)
- `./scripts/verify.sh --runtime` 会对 linux-unpacked 跑活体矩阵
回滚
- 用安装时所用的包管理器卸载(apt / dnf / pacman -R);Arch 包只把未打包目录装进 /opt/deepseek-harness-desktop,并在 /usr/bin 留一个符号链接
03DSH 适配与能力边界
不是插件:它把官方桌面端的打包流水线移植到 Linux,用一套补丁系列从上游源码构建官方 Electron 应用本身,产出 AppImage、deb、rpm 与 Arch 包。
Linux 打包流水线
PKGBUILD 里钉住的上游 tag 源码,加上补丁系列→AppImage、deb、rpm 与 Arch 包;build.sh 按 uname -m 自动选 linux-x64 或 linux-arm64
不支持交叉构建;构建要拉上游 monorepo 并跑完整的 pnpm workspace 构建,比装插件重得多真 Node 的 Host 进程
打包进产物里的 primary-runtime Node→绕开 Electron 的 node 模式(那里 sharp 解码会段错误)的 Host 进程,代价是 dsh 目录树不放进 asar
dsh 目录树不进 asar,这也是 linux-unpacked 约 1.1G 的原因沙箱选择
内核对非特权 user namespace 的支持情况→支持时走 namespace 沙箱加 seccomp,不支持才退回 setuid chrome-sandbox;AppImage 由 AppRun 运行时探测,deb / rpm / Arch 在 postinst 里判断
这个选择发生在安装或启动时,不是靠设置项切换玻璃模式与无边框模式
启动时设 DSH_DESKTOP_GLASS=1 和/或 DSH_DESKTOP_FRAMELESS=1,侧栏浓度用 DSH_DESKTOP_GLASS_TINT=0..100→近似 macOS 版布局(菜单栏自动隐藏、侧栏半透明),或只有页面内 caption 与 Electron 自绘按钮的窗口
两种模式互斥——无边框优先,玻璃模式自动关闭并在 stderr 打警告;有没有模糊取决于合成器
04适合谁?何时不该用?
适合
- 不想用 CLI 或浏览器标签页、想要桌面客户端的 Linux 用户
- 关掉窗口后以为程序退出了的用户
- 在 KDE、Hyprland 或 niri 上想指定窗口形态的 Wayland 用户
- 在 Linux 上从市场装插件的用户
不适合
- 源码构建需要带 TypeScript 类型剥离的 Node 24(发行版自己打的 Node 可能没有,会在 build:official 第一步失败),以及用 npm 或 corepack 装的 pnpm 11——官方 standalone 安装器与 Homebrew 的二进制会让上游脚本以 SyntaxError 炸掉。
- AppImage 需要 FUSE 2(libfuse.so.2),而 Debian 13、Ubuntu 26.04、Fedora 44 默认只有 FUSE 3;装对应包,或用 APPIMAGE_EXTRACT_AND_RUN=1 绕过(解包到 /tmp,多占约 1.2G)。
- 没有自动更新:上游的强制更新策略通道只认 desktop-win / desktop-mac 客户端身份,Linux 产物也没有更新通道,所以它不嵌策略、不轮询、不会自己更新。
- Linux 没有「安装命令行工具」入口;想在终端用 dsh 得自己装,或直接用应用自带的那份 lib/bin.js 配打包的 primary-runtime node。
- 上游的客户端身份映射把 Linux 落到 desktop-mac,于是 Platform 把 Linux 客户端当 macOS,而 device_model 仍是 linux-x64 或 linux-arm64;这是上游的行为,不是本项目引入的。
- 产物是 unsigned 构建。
05兼容性、维护与安全提示
- 源码构建需要带 TypeScript 类型剥离的 Node 24(发行版自己打的 Node 可能没有,会在 build:official 第一步失败),以及用 npm 或 corepack 装的 pnpm 11——官方 standalone 安装器与 Homebrew 的二进制会让上游脚本以 SyntaxError 炸掉。
- AppImage 需要 FUSE 2(libfuse.so.2),而 Debian 13、Ubuntu 26.04、Fedora 44 默认只有 FUSE 3;装对应包,或用 APPIMAGE_EXTRACT_AND_RUN=1 绕过(解包到 /tmp,多占约 1.2G)。
- 没有自动更新:上游的强制更新策略通道只认 desktop-win / desktop-mac 客户端身份,Linux 产物也没有更新通道,所以它不嵌策略、不轮询、不会自己更新。
- Linux 没有「安装命令行工具」入口;想在终端用 dsh 得自己装,或直接用应用自带的那份 lib/bin.js 配打包的 primary-runtime node。
- 上游的客户端身份映射把 Linux 落到 desktop-mac,于是 Platform 把 Linux 客户端当 macOS,而 device_model 仍是 linux-x64 或 linux-arm64;这是上游的行为,不是本项目引入的。
- 产物是 unsigned 构建。
- 实测覆盖 Arch 上的 KDE Plasma 6、Hyprland 与 niri,以及 Wayland x86_64 上的 Ubuntu 26.04、Debian 13、Fedora 44;aarch64 只过了 CI 构建与启动冒烟,其他发行版、桌面环境与 X11 均未验证。
README 标 MIT(GitHub 识别为 NOASSERTION)· 最新发布 v0.2.2rc1(2026-11-04);独立的社区移植项目,用有文档的补丁系列从上游源码构建,不是 DeepSeek 官方产品
06常见问题
怎么安装?
从 Releases 下载后按发行版安装:AppImage 先 chmod +x,deb 用 `sudo apt install ./deepseek-harness-*.deb`,rpm 用 `sudo dnf install ./deepseek-harness-*.rpm`,Arch 用 `sudo pacman -U ./dsh-desktop-linux-*.pkg.tar.zst`。从源码构建需要带类型剥离的 Node 24 与 pnpm 11。
为什么关掉窗口程序没退出?
这是上游的设计:main.ts 拦截窗口 close 并改为隐藏,Host 与正在跑的任务继续。补丁 0013 加了常驻托盘,可以从托盘菜单「打开」找回窗口,或从托盘「退出」、Application → Quit、Ctrl+Q 完全退出。
在 Debian 13 或 Fedora 44 上 AppImage 起不来?
这些发行版只装 FUSE 3,而 AppImage 需要 libfuse.so.2。Fedora 装 fuse-libs,Debian 13 / Ubuntu 24.04+ 装 libfuse2t64,或用 APPIMAGE_EXTRACT_AND_RUN=1 运行(解包到 /tmp,多占约 1.2G)。
GNOME 上有托盘图标吗?
装了 AppIndicator 扩展才有——GNOME 本体不提供 StatusNotifierItem 宿主。新装的扩展不会热加载,要注销重登;没有托盘宿主时图标不会出现,只能靠二次启动把窗口找回。
它会自己更新吗?
不会。上游的强制更新策略通道只认 desktop-win 与 desktop-mac 客户端身份,Linux 产物也没有更新通道,所以它不嵌策略、不轮询、不自我更新。
07相关的 DSH 工作流
open-design
作者 nexu-io
DeepSeek Harness 的开源 AI 设计插件,本地优先桌面应用,让编码智能体变身设计引擎,生成原型、落地页、幻灯片、图片与视频,支持多种格式导出。
mole
作者 tw93
将 Mole 命令行工具作为 DSH 技能使用,进行磁盘分析、预览清理、卸载应用和系统健康检查。
dsh-desktop
作者 anywhere-labs
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
picgo
作者 molunerfinn
PicGo:面向高效创作者的图片上传神器,支持 Obsidian、Typora、VS Code 等编辑器,以及 S3、GitHub、Cloudflare R2、Imgur、阿里云 OSS 等 60+ 图床,粘贴即上传。
08数据与来源
把 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 官方桌面端 (`apps/desktop` 的 Electron 应用)的**打包流水线**移植到…
上游目前明确不支持 Linux(`apps/desktop/packaging/README.md`:*"Linux is not a supported Desktop release target."*)。
页面基于项目公开文档、仓库元数据和 DSH Plugins 的结构化解析生成;最后核验于 2026-11-10。发现错误?提交更正。
最佳 DeepSeek Harness 插件
从全目录挑出的 12 个值得优先安装的插件,覆盖各个分类。
