TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南
TechMoon 科技月球
WordPress、SEO 與 AI 工具實測指南

DeepSeek Harness Desktop 是社群維護的開源桌面外殼,把官方 Harness 的 Node.js 安裝與 npx 指令換成雙擊安裝。本文從原始碼拆解它如何用 Electron 內建 Node 執行捆帶的 dsh、金鑰與資料流向的官方契約,以及 v0.1.0 的平台與簽署現實,附該裝或該留在 npx 的分流判斷。
用 AI 摘要這篇文章:
DeepSeek 在 2026 年 8 月中開源了自家的 agent 執行環境 DeepSeek Harness,讓模型可以直接讀寫專案檔案、跑終端機指令、把一件工作拆成多步執行。要在家用它的官方路線有一道門檻:先安裝 Node.js,記住一條 npx 指令,再自己開瀏覽器連到本機的 3080 埠。社群專案 DeepSeek Harness Desktop 把這一整段前置作業換成了雙擊安裝,macOS 與 Windows 都有安裝檔可下載。
值得把它看清楚的理由有兩個。「免裝 Node.js」這句宣傳在原始碼裡有明確對應的實作,拆開看能學到 Electron 應用怎麼優雅地解決執行環境問題;同時這層桌面外殼只接管了服務的啟動與關閉,你與模型之間的信任安排,包含 API 金鑰怎麼存、檔案怎麼被讀、資料送去哪,全部維持官方 Harness 的契約。判斷可以先講:痛點在終端機與環境配置的人,裝了確實省事;Node.js 環境本來就現成的人,官方路線更輕,少一層外殼。
官方 repo 是 deepseek-ai/deepseek-harness,2026 年 8 月 13 日公開,MIT 授權,口號是「Everything is a Plugin」,底層用 Cordis 框架把模型、工具、對話記錄都做成可替換的外掛。同一週它也把 CLI 上了 npm,套件名 @deepseek-ai/dsh,從 8 月 10 日的 0.0.1-rc.1 在四天內迭代到 0.1.0-rc.6,節奏相當快。
官方 README 給的啟動方式是先裝 Node.js,然後執行:
npx @deepseek-ai/dsh web
指令會在本機啟動 Web 介面,預設網址是 http://127.0.0.1:3080,接著自己開瀏覽器連過去。進介面後的第一件事有個小機關:在選定工作區目錄之前,輸入框是鎖著的。官方文件的設計是 agent 以你選定的目錄為預設檔案系統位置,在那裡讀檔、改檔、執行命令;需要批准的操作會先跳出來問你。用過 Claude Code 的人對這套互動不會陌生,兩者的心智模型接近:給它一個專案目錄,交代任務,在關鍵動作上按下同意。
還有一件事要放在心上。官方 README 以斜體標明目前處於開發者預覽,並用粗體宣告 THERE WILL BE COMPATIBILITY-BREAKING CHANGES(將會出現破壞相容性的變更)。這句話對桌面版同樣成立,因為它包的就是這個還在劇烈變動的東西。
桌面殼類應用要擺脫 Node.js 依賴,常見做法是讓安裝器偷偷下載一份 Node,或者要求使用者預先裝好。這個專案兩種都沒選,做法寫在 apps/desktop/src/main.ts 的 hostPaths() 函式裡:應用打包後,Node 執行檔直接用 process.execPath,也就是 Electron 自己那顆二進位,搭配 ELECTRON_RUN_AS_NODE 環境變數讓它以純 Node 模式執行;要跑的 CLI 入口則是隨安裝包捆進 resources/host 目錄的 @deepseek-ai/dsh。一句話總結這個設計:Electron 本來就內建完整的 Node 執行環境,這裡讓同一顆執行檔在兩種身分之間切換,安裝包因此不必再塞第二份 Node,使用者也不必預裝任何東西。專案自己的文件也是這樣描述:不必多帶一份 Node 執行檔。
裝好之後的使用流程,照專案下載頁與官方 Web UI 指南可以整理成三步:到專案網站或 GitHub Releases 下載對應平台的安裝檔;打開設定裡的模型頁,填入 DeepSeek 的 API 金鑰;選擇一個本機目錄當工作區,開新對話就能交代任務。

打包管線還有一道少見的把關。建置腳本會先為桌面 Host 暫存一份封閉的正式環境依賴樹,把 dsh 與它需要的套件整批收進安裝包;封裝完成後有 afterPack 檢查,如果捆帶的 CLI 入口或 Web 前端入口缺件,成品會在簽章前直接被拒絕,不讓一個壞掉的安裝檔流出去。這個 repo 為暫存與驗證環節各寫了對應的測試檔,工程態度在同類社群專案裡算是扎實的。
背景服務的監管參數也定得保守:就緒等待上限 90 秒,超過就終止行程、判定啟動失敗;啟動期間的輸出最多保留 32K 字元供診斷,失敗訊息會附上這段輸出,讓你看得到卡在哪裡。對一個包著開發者預覽軟體的殼來說,把失敗訊息做得可讀,比多塞一個功能實在。
| 啟動 DeepSeek Harness | 官方 npx 路線 | 桌面版路線 |
|---|---|---|
| 前置環境 | 先安裝 Node.js | 無,安裝檔自帶執行環境 |
| 啟動方式 | 終端機輸入 npx 指令 | 雙擊應用圖示 |
| 介面 | 另開瀏覽器分頁連 127.0.0.1:3080 | 桌面視窗內建 |
| 服務退出 | 顧終端機按中斷 | 系統托盤選單退出 |
兩條路線還有一個不容易察覺的差異:工作目錄。用 npx 的時候,你在哪個專案目錄下指令,那個目錄就是服務的預設檔案位置;桌面版原始碼裡給背景服務的工作目錄是家目錄,所以第一次打開後,介面裡不會有任何工作區被預先選好,一定要自己把專案資料夾加進去才開得了工。對習慣 cd 到專案再啟動工具的人,這個習慣要換一下。安裝檔的體積也是同一個邏輯:npx 路線共用你機器上既有的 Node,桌面版則把 Electron 與整棵依賴樹都收進安裝包,硬碟空間與更新流量換的是那份開箱即用。
桌面版最需要講清楚的一點,是它沒有重新發明任何 agent 能力,模型呼叫、檔案存取、審批流程全部來自官方 Harness,外殼只負責把服務跑起來、顯示視窗、管理背景行程。這意味著你真正該審視的契約對象是官方那套東西。
金鑰的處理方式在官方文件裡寫得明白。填入 DeepSeek API 金鑰儲存後,設定頁之後只會拿到遮蔽後的描述字串,永遠拿不回明文,金鑰本體落在本機的 $DSH_HOME/.credentials.yaml 檔案裡。模型來源也不限定 DeepSeek 一家,設定頁可以新增 Anthropic、OpenAI,或者 Bedrock、Vertex、Azure 這類企業端方案,後三者需要各自的原生憑證而非單一 API 金鑰;任何 OpenAI 相容的自訂端點也填得進去。
自訂端點還有兩個容易卡住的地方。模型清單按下取得可用模型就能直接查詢端點,查到的候選只更新草稿,按下儲存之前什麼都不會寫進設定;另一個是手動輸入的模型,在它自己宣告能力之前一律被當成純文字對待,硬要附加圖片會在送出前就被擋下,想讓自訂視覺模型吃圖,得去 $DSH_HOME/settings.yaml 給那個模型補一行 input 設定。用公司內部閘道接視覺模型的人,這段官方文件寫得細,值得先讀再填。
資料流向要分成兩件事講,混在一起容易誤會。第一件事是你交給模型的內容:Harness 是自帶金鑰的架構,執行任務時,提示詞與工作區的任務上下文會送給你所配置的模型服務,用它就代表接受這條路徑,這部分官方文件與桌面版文件口徑一致。第二件事是遙測:官方在 8 月 10 日的設計決策裡把兩路遙測資料流都改成預設關閉,環境變數 DSH_TELEMETRY_MODE 沒有設定的話就是停用,全新的安裝不會發出任何遙測網路請求,要明確設成 FULL 或 FEEDBACK_ONLY 才會對外分享對話內容,其中 FULL 連啟動器回報也一併開啟。所以「預設不回報遙測」成立,「完全離線運作」不成立,這兩句常被混為一談。
模型設定的兩個行為細節也該知道。改模型或換端點後,下一次請求就生效,不需要重啟服務;自訂模型來源時要給一個 Provider ID,這個代號一旦建立就是永久的,請求、儲存的對話、預設模型與憑證引用全都掛在它底下,事後不能改名,想換只能新建一個再刪掉舊的。第一次設定時想清楚命名,之後省一次搬家。
自帶金鑰也代表帳單按調用量走。重度使用的話,在本機常駐一個 DeepSeek API 用量監控會比月底看帳單舒服;跨 Claude Code、Cursor 這些工具攤提成本的話,CodeBurn 這類讀本機工作階段記錄的成本追蹤工具能幫上忙。至於該走訂閱制還是按量計費,先前在 AI coding 方案比較裡算過一輪,結論仍然取決於你的用量密度。
有兩個工程細節值得單獨拿出來講,它們決定了這個外殼的安全性格。
第一個是它對本機迴環的執念。服務啟動時會在標準輸出印一行就緒網址,桌面版的監管程式只接受 127.0.0.1 或 localhost 開頭的 HTTP 網址,格式不對就視為啟動失敗直接擋下。視窗內的導航也被鎖在這個來源,任何外部連結都會被交給系統瀏覽器打開;渲染層跑在 sandbox 裡,關閉了 Node 整合,相機麥克風這類權限詢問一律預設拒絕。這些限制組合起來的意思是:桌面視窗實質上是一個被收緊過的瀏覽器,專門用來顯示本機那個服務。
第二個是視窗與服務的壽命分離。點掉視窗的紅燈只會把視窗藏起來,服務繼續在背景跑,系統托盤才是真正的開關;從托盤選退出,才會對服務行程送出終止訊號,等五秒沒停就強制砍掉。反過來,如果背景服務自己掛掉,整個應用也會跟著收掉,不會留一個空殼視窗在那裡。應用還帶單實例鎖,第二次啟動只會把既有視窗叫回來。
視窗本身依平台做了不同的原生外觀:macOS 走隱藏式標題列加側欄毛玻璃,Windows 保留系統視窗按鈕與圓角,配 acrylic 壓克力質感。對模型這一側,外殼的態度是儘量透明:桌面版文件明言它不會增加任何模型可見的輸入,沿用的就是 Web 版既有的執行環境,只多帶一個 DSH_DESKTOP 標記讓服務知道請求來自桌面殼。你在 Web 版看到的模型行為,搬到桌面版不會變樣。
第一個公開版本 v0.1.0 在 8 月 13 日發布,安裝檔只有兩種:macOS Apple Silicon 的 DMG 與 Windows x64 的 EXE。Intel Mac 沒有,Linux 也沒有。
簽署狀態得先看清。專案文件記載 macOS 發布走完整的 Developer ID 簽章加 Apple 公證流程,同一份文件也明說 Windows 與 Linux 的打包目前產出的是未封裝應用,安裝包格式與發布簽名列為後續工作。換句話說,Windows 用戶現在裝的是作者宣稱未經簽署流程的安裝檔,下載時認明 GitHub Releases 或專案官網,安裝時跳出的安全性警告要知道它為什麼出現。macOS 用戶想親自驗貨的話,專案文件直接附了三條終端機指令:用 codesign 驗簽章、用 spctl 評估 Gatekeeper、用 stapler 檢查公證票據,掛載 DMG 後跑一遍,安裝包的來歷就查得乾淨。
歸屬也要弄清楚。這是 anywhere-labs 社群維護的獨立專案,repo 聲明寫明它並非 DeepSeek 官方產品,MIT 授權,授權檔的版權行寫的是 DeepSeek,因為整個 repo 收錄了官方原始碼樹再加上 apps/desktop 這個桌面層。專案 8 月 13 日才建立,首版同日發布,一天內累積了超過 1,500 顆星,熱度是真的,年紀也是真的。README 上掛的手機遠端控制、外掛市集、接微信飛書的 Channels 整合,全部標著「即將推出」,文件也自承桌面端目前還沒有以官方外掛機制交付。把這些條件疊起來看,現在的定位比較接近「願意陪一個一天大的專案一起踩坑的人的嘗鮮管道」,官方 Harness 本身的開發者預覽屬性又疊了一層不保證在上頭。
還有一項隱含的維護成本:dsh 是整份捆進安裝包的,官方 npm 套件四天內發了六個候選版,桌面版要吃到新版就得等維護者重新打包發布,終端機路線一條 npx 指令永遠拿當下最新版。追新的人對這個時間差要有預期,疊加官方還在破壞性改版的預覽階段,這個時間差偶爾會放大成相容性落差。

分流其實很乾淨。你如果天天在終端機裡工作,Node.js 環境現成,官方的 npx 路線沒有任何對不起你的地方,想走命令列的人優先看官方倉庫,這也是桌面版 README 給的方向;少一層外殼就少一份記憶體與更新的負擔。你如果想用 Harness 讀寫專案、跑多步任務,但聽到「先裝 Node.js」就興趣減半,或者平常就是開桌面軟體幹活的類型,桌面版把那道門檻整個拿掉了,安裝後填金鑰、選工作區就能開工。
想橫向比較的話,OpenWork 這類本地優先的 agent 桌面應用走的是另一條路:它們自己實作 agent 核心,而這裡的桌面版只做官方服務的外殼。哪種路線對,取決於你要的是一個完整的替代品,還是一個更舒服的啟動器。下載點在專案官網與 GitHub Releases 兩處,安裝後的下一步都是同一件事:把模型金鑰填好,挑一個你能接受被讀寫的目錄當工作區,再開始交代第一個任務。