dsh-power-monitor: View Apple Silicon Mac Real-time Power Consumption in the DSH Sidebar

前言

在 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 / 幻方无官方从属关系。

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

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

Xiaoye