前言¶
用 DeepSeek Harness(DSH)跑长会话时,模型在远端,本机却在编译、开浏览器、挂多个工具进程。任务管理器要切窗口,终端里 top 又和对话界面脱节。若只想在写提示词的位置旁边扫一眼「机器有没有顶满」,需要一块跟 composer 绑在一起的轻量指示,而不是整块悬浮窗或整条底栏。
下面介绍社区插件 hehf21/dsh-sysmon(维护者 hehf21,分类:客户端)。它在 DSH 输入卡片正下方显示本机 CPU、内存的圆环水位;点一下可展开约一分钟走势与明细。仓库当前星标为 0;许可证 MIT;Node 要求 ≥20。
这是什么¶
dsh-sysmon 是 DSH 的客户端插件:浏览器半边往 conversation.composer.dock 槽位挂两个 14px 圆环和百分比,宿主半边在进程内采样并通过 GET /sysmon/stats 提供 JSON。无配置项,依赖仅 node:os 与 node:fs,不装第三方包、不起子进程。
与同类开源实现相比: hnmrxz/dsh-plugin-sysmon 是同槽位的状态胶囊;AKS1st/dsh-sysmon 走右下角悬浮窗;Small-Miao/dsh-statusbar 占用 shell.overlay 整条底栏。本插件把圆环贴在 composer 下方,点开再看走势与磁盘等扩展信息。
行内显示与警示¶
会话已存在时,费用行附近会出现类似下面的行内展示(示意来自 README):
… 费用明细 本会话 ¥0.5181 · 命中 98.8% │ CPU ◔ 26% │ 内存 ◕ 56% │ ◯ 28%
└── 本插件 ──┘
圆环几何与宿主自带的 ContextMeter 一致:14px 视框、半径 5.5、2px 描边,从 -90° 顺时针绘制。占用率正常为中性色;≥75% 环与数字转黄(--dsw-alias-state-warn-primary),≥90% 转红(--dsw-alias-state-error-primary)。
文案跟随 DSH 界面语言(中/英);取不到语言服务时中文兜底。
点开面板:一分钟走势与明细¶
点击行内区域会展开面板,包含:
- CPU、内存各一条一分钟走势(带 50% 虚线参考线)。
- CPU 核数与型号。
- 内存已用/总量。
- 用户主目录所在盘的磁盘占用(Windows 上为
C:\;读取失败则不显示该行)。 - DSH 进程常驻内存(RSS)。
- 开机时长。
点面板外或按 Esc 收起。走势窗口在宿主侧维护 60 格(约一分钟),客户端只读不算。
采样与轮询¶
宿主每 1s 采样一次;磁盘每 15s 采一次。浏览器前台每 2s 请求一次 /sysmon/stats,标签页隐藏时降到 15s;连续失败会退避到 10s。
取值口径(与 README 一致):
- CPU:两次
os.cpus()累计时间片之差,1 - idleΔ/totalΔ,跨全部核心加权;间隔内无新时间片时保留上次读数,避免曲线假谷底。 - 内存:
(totalmem - freemem) / totalmem;Windows 上freemem与任务管理器「使用中」同口径。 - 磁盘:
fs.promises.statfs针对用户主目录所在盘。
间隔由源码常量控制:宿主 SAMPLE_MS、客户端 POLL_MS,安装后不可通过配置改。
安装与启用¶
Web profile 从 GitHub 安装(将 web 换成你的 profile 名):
dsh plugin --profile web add github:hehf21/dsh-sysmon
装完后刷新页面。卸载:
dsh plugin --profile web remove dsh-sysmon
桌面版(Electron)的 profile 由应用独占,CLI 无法安装——请在侧栏 插件 页安装、启用或停用。
开发时注意:浏览器半边(client.js)改动后关闭再打开插件即可重新加载;宿主半边(index.js)是进程内 ESM 模块,修改后必须重启 dsh 才生效。
架构简述¶
浏览器 client.js 宿主进程 index.js
┌─────────────────────┐ GET ┌──────────────────────────────┐
│ conversation │ ──────────► │ /sysmon/stats(精确路由) │
│ .composer.dock │ ◄────────── │ ├ node:os cpus() 时间片差 │
│ 两个圆环 + 点开面板 │ JSON │ ├ node:os totalmem/freemem │
└─────────────────────┘ │ ├ node:fs statfs 磁盘 │
│ └ 1s 采样 → 60 格走势窗口 │
└──────────────────────────────┘
cordis.patch.yml 向宿主注册插件行 sysmon,浏览器加载地址为 /plugins/sysmon/client.js。
适用场景与注意¶
适合:在 DSH 会话视图里写提示、调工具,需要常驻、低打扰的本机 CPU/内存指示,偶尔点开看一分钟趋势和磁盘、进程内存的人。
边界与权限:
- 仅会话视图:欢迎页(新会话空态)不渲染;槽位
conversation.composer.dock要求会话已存在。 - 本机可读:
/sysmon/stats不在/api前缀下,不走连接插件的浏览器信任栅栏;能打开本机 DSH 页面的本机进程都能读到 CPU/内存/磁盘占用(README 称无敏感信息)。桌面版通常只绑127.0.0.1;若要收紧,需在index.js的handle()里自行加 Host / Origin 白名单。 - 插件权限:宿主代码以当前 dsh 进程权限运行。安装前请阅读仓库源码与 MIT 许可证,确认接受其采样与暴露方式。
DSH 生态强调「一切皆插件」;SkillHub 目录页 是社区收录站点,与 DeepSeek / 幻方无官方从属关系。
链接¶
- 目录页:https://www.skillhub.cn/plugins/hehf21/dsh-sysmon
- GitHub:https://github.com/hehf21/dsh-sysmon
若你已经在用 composer 下方的同类胶囊或整条状态栏,可以按槽位与交互习惯在本插件与 README 所列同类仓库之间选型;本插件的核心价值是把圆环贴在输入区下方,并用一次点击补齐一分钟走势与机器明细。