dsh-power-monitor:在 DSH 側欄看 Apple Silicon Mac 實時功耗

前言

在 DeepSeek Harness(DSH)裏跑長對話或本地工具鏈時,側欄裏常見的 CPU 佔用條往往看不出「電池在悄悄被燒」:空閒 0.2 W 和失控 22 W 在百分比視圖裏可能差不多。社區插件 dsh-power-monitor 把瓦特數放在側欄底部(賬號行上方),並附帶 CPU、內存、溫度與風扇轉速,方便你在同一界面判斷機器是否在過熱或高功耗。下面介紹它是什麼、怎麼裝、以及可選的特權輔助進程。

這是什麼

dsh-power-monitor 由維護者 chuanjunzhang 發佈,分類爲客戶端插件;倉庫見 GitHub,社區目錄頁見 SkillHub。許可證爲 MIT(package.json 版本 0.1.0)。

它面向 macOS Apple Silicon(arm64) 上的 DSH Desktop 構建:需要宿主暴露 sidebar.footer.action 插槽。Intel Mac 不支持內置的 arm64 二進制。

側欄卡片示例(README):

CPU 13%   MEM 14.8G
TEMP 41°  FAN 0 rpm
● PWR     1.1W

各列按閾值着色(綠 → 琥珀 → 橙 → 紅),狀態點取 CPU、溫度、功耗三者中最差的一檔。

核心功能

無管理員權限即可顯示

通過 Mach host_statistics(約 400 ms 差分)與 vm_stat(active + wired + compressed)採集 CPU 與 內存,無需 root。

可選:溫度、風扇、功耗

安裝特權輔助後,LaunchDaemon 以 root 讀取 SMC(風扇與傳感器)並調用 powermetrics(cpu+gpu+ane 功耗),約每 2 秒寫入 /tmp/dsh-power-monitor.json。客戶端經宿主路由 GET /power-monitor/metrics 輪詢(同樣約 2 秒),不向網絡發送數據。

閾值(摘自 README):

指標 綠 黃 橙 紅
CPU <30% 30–60% 60–85% >85%
MEM <60% 60–80% 80–90% >90%
TEMP(SMC 最大值) <55° 55–70° 70–82° >82°
FAN ≤2600 rpm 2600–4200 >4200 —
PWR <4 W 4–12 W 12–25 W >25 W

顯示層對功耗做了 3 樣本中值平滑;FAN 爲 0 rpm 在 Apple Silicon 上可能正常(風扇在約 50–60 °C 以下常停轉)。無風扇機型(如部分 MacBook Air)FAN 格爲空。

安裝與啓用

DSH 生態裏插件常以本地 bundle 方式接入;本插件官方步驟如下,安裝後需重啓 DeepSeek Harness。

1. 安裝插件本體(無需管理員)

腳本會把包鏈接到 ~/.dsh/profiles/desktop/node_modules/,並在 profile 的 bundles 列表中加入 dsh-power-monitor。

git clone https://github.com/chuanjunzhang/dsh-power-monitor.git
cd dsh-power-monitor
./install-plugin.sh

2. 可選:特權輔助(啓用 TEMP / FAN / PWR)

macOS 會一次性請求管理員密碼,安裝 SMC 讀取器、採樣腳本與 LaunchDaemon:

./helper/install.sh

涉及路徑包括 /usr/local/libexec/dsh-power-monitor-smc、/usr/local/libexec/dsh-power-monitor-helper.sh 與 /Library/LaunchDaemons/com.local.dsh-power-monitor.plist。卸載輔助:

./helper/uninstall.sh

若跳過第 2 步,側欄仍顯示 CPU 與內存。

工作原理(簡要)

LaunchDaemon (root)
  ├─ dsh-power-monitor-smc ──► SMC
  └─ powermetrics    ──► watts ──► /tmp/dsh-power-monitor.json
                                            │
DSH host plugin ── GET /power-monitor/metrics
                                            │
DSH client plugin ── sidebar.footer.action ──► 側欄卡片

讀 SMC 與 powermetrics 在 Apple Silicon 上需要 root;不裝 daemon 則僅保留無需特權的 CPU/內存路徑。

適用場景與注意

  • 適合:在 DSH 側欄常駐觀察 Apple Silicon Mac 負載與功耗的開發者;希望用瓦特而不僅是 CPU% 判斷後臺是否在耗電。
  • 環境:僅 arm64 macOS;依賴 DSH 內部插槽名 sidebar.footer.action,DSH 升級若改名可能需要插件跟進。
  • 侷限:部分 SoC 溫度鍵名不在探測列表時溫度可能爲空;功耗採樣窗口與間隔與其他工具瞬時讀數可能不一致;Intel 需自行編譯 universal 二進制(見 helper/smc.swift)。
  • 安全與隱私:輔助進程以 root 運行,安裝前應閱讀源碼(SMC 約 150 行 Swift);daemon 僅寫 world-readable 的 /tmp/dsh-power-monitor.json,錯誤日誌在 /var/log/dsh-power-monitor.err.log。插件以當前 DSH 進程權限運行,安裝前請覈對倉庫許可證與代碼。

完整卸載插件還需刪除 ~/.dsh/profiles/desktop/node_modules/dsh-power-monitor,並從 ~/.dsh/profiles/desktop/package.json 的 bundles 數組中移除 dsh-power-monitor(先 ./helper/uninstall.sh 若裝過輔助)。

結尾

dsh-power-monitor 把 Apple Silicon 上的實時功耗與關鍵傳感器讀數收進 DSH 側欄底部,本地輪詢、無出站網絡。社區目錄與 GitHub 分別爲 SkillHub 插件頁 與 chuanjunzhang/dsh-power-monitor。SkillHub 爲社區獨立站點,與 DeepSeek / 幻方無官方從屬關係。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜