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 個值得優先安裝的外掛,涵蓋各個分類。
