前言¶
用 DeepSeek Harness(DSH)做開發,本地進程很容易越積越多:模型在會話裏跑 npm run dev,你又在別的終端起了 Vite 或 Uvicorn,幾天下來誰佔着哪個端口、哪個進程屬於哪次會話,基本靠回憶。想回收端口時,慣常做法是開終端敲 lsof 找 PID,再手動 kill,一旦判斷錯對象,誤殺的就是不該動的進程。
dsh-service-console 把這套排查和操作搬進了 DSH 的 web UI:發現監聽端口、識別服務歸屬,再安全地查看、停止和重啓。DSH 的理念是「一切皆插件」,本文要介紹的 Jiyr0119/dsh-service-console 就是按這個思路實現的一個原生插件。
這是什麼¶
一句話定位:DSH 的本地開發服務控制檯。當會話裏(或你自己)啓動了本地開發服務器,它會把這些服務集中列出來——監聽哪些端口、用什麼命令和工作目錄啓動、是否屬於當前會話或工作區、停止或重啓是否安全。
插件由 Jiyr0119 維護,npm 包名爲 @jiyr0119/dsh-service-console,以 MIT 許可證開源,代碼託管在 GitHub。
核心功能¶
發現與歸屬¶
插件掃描本機監聽的 TCP 端口,併爲每個服務關聯 PID、PPID、命令、工作目錄、進程組和啓動時間(支持 macOS / Linux)。
歸屬分爲五級:
- This chat:與會話啓動臺賬匹配,確認屬於當前會話
- Workspace:屬於當前工作區
- Other local:本機其他來源
- Unknown:來源不明
- Protected:受保護進程
要注意,歸屬信息是作爲安全信號展示的,不是隱藏的分類過濾——本機所有監聽服務都會顯示出來,由你自己判斷哪些能動。
停止與重啓¶
停止操作面向整個進程組優雅退出(對進程組發送 SIGTERM);重啓則使用保存下來的安全啓動命令。每個操作都需要雙重確認,執行前會根據當前快照重新校驗一遍,避免拿着過時的信息動手。
安全防護¶
這是這個插件着墨最多的部分:
- 任何信號發送前都會做 PID 複用與指紋校驗
- 客戶端從不發送原始 PID 或 shell 命令,只以服務 ID 爲目標,Host 在操作前重新校驗 PID、啓動時間和指紋
- 未知與受保護服務只讀;系統關鍵、高權限進程同樣是只讀
- 強制殺進程(SIGKILL)默認關閉,僅在顯式啓用並確認後使用
- 沒有隱式自動清理,命令摘要中的敏感 token 和密碼會被脫敏
作者在文檔裏明確說,這不是一個通用進程管理器。
界面與交互¶
控制檯按需掃描:打開面板時獲取一次快照,之後用刷新按鈕顯式重新掃描,沒有後臺輪詢。列表支持關鍵詞過濾,可以設置優雅超時和強殺選項,標籤會根據 DSH 當前語言環境自動切換中英文。
展開的服務卡片使用 Web UI 的 token 視覺語言(DSH 原生檢查器樣式),展示進程身份、端口、命令、工作目錄和歸屬證據。
安裝與啓用¶
用官方命令安裝:
dsh plugin --profile web add -w @jiyr0119/dsh-service-console@latest
安裝後刷新 DSH web UI,會話頭部會出現「🖥 SC」入口,點擊即可打開控制檯面板。
有一點值得說明:插件被 dsh-market / awesome 收錄,並不意味着 UI 會自動出現。這個包自帶 Host 路由和瀏覽器 bundle,執行 dsh plugin add 之後面板即可用。
如果不想走構建流程,還有一條替代路徑:通過動態 Cordis 插件流程粘貼倉庫裏的 dynamic/host.js 和 dynamic/client.js,零構建、進程本地。
典型用法¶
1、安裝插件並刷新 web UI,從會話頭部進入控制檯面板;打開時會自動獲取一次快照,之後的重新掃描由刷新按鈕觸發。
2、不安裝也能試用界面:倉庫內有瀏覽器交互演示,打開 ./demo/index.html 即可,無需安裝。
3、想參與開發的話,流程如下:
pnpm install
npm run typecheck
npm run build
npm test
npm test 會先構建一次,再用 Node 內置的 node --test 運行完整測試套件,不需要額外的測試框架。
適用場景與注意事項¶
適合的場景:在 DSH 裏頻繁起停本地開發服務、想把端口回收從終端命令換成界面操作、需要判斷某個監聽進程屬於哪次會話或工作區的開發者。
動手之前,幾件事需要知道:
- 僅支持 macOS / Linux,Windows 暫不支持
- 它不是通用進程管理器,系統關鍵、高權限、未知及受保護進程一律只讀
- 插件以當前 dsh 進程的權限運行,能做的事以這個權限爲上限
- 安裝前建議先讀一遍源碼和許可證(MIT),確認符合自己的安全要求
小結¶
dsh-service-console 解決的是一個具體問題:DSH 會話裏起的本地服務散落在系統各處,排查和回收依賴終端命令和記憶。它把發現、歸屬識別、停止、重啓收進 web UI,並用雙重確認、PID 指紋校驗和只讀策略把誤操作的風險壓低。如果你經常在 DSH 裏起本地服務,值得一試。
- 社區目錄頁:https://www.skillhub.cn/plugins/Jiyr0119/dsh-service-console (該目錄爲獨立社區站點,與 DeepSeek / 幻方無官方從屬關係)
- GitHub 倉庫:https://github.com/Jiyr0119/dsh-service-console