前言¶
跑 DSH Web 时,用量、节点负载、本机资源和服务探活往往分散在终端命令、Prometheus 端点或第三方监控里。要在一次会话里对照这些信息,需要反复切窗口或自己拼页面。
dsh-dashboards 是 LosEcher 维护的 DSH 客户端插件:在会话区注册「看板」tab(conversation.view),用 widget 网格把 los 第一方指标、macOS 本机探针、服务探活,以及可选的 Glances、Uptime Kuma 和 feed 采集摘要放在同一视图。host 半包在 ctx.webServer 上挂 /dashboards/* 同源聚合 API,client 半包负责 tab 与卡片渲染。
这是什么¶
- 名称与归属:npm 包名
dsh-dashboards,仓库 LosEcher/dsh-dashboards,社区目录页 SkillHub。 - 分类:客户端(
dsh.client.platform: web,注入@deepseek-ai/dsh-client-runtime)。 - 版本与许可:当前资料中 package 版本为
0.1.0,许可证 MIT;peer 依赖@deepseek-ai/cordis>=4.0.0 <5.0.0。
插件通过 cordis.patch.yml 接入 profile,不是单独一条 dsh plugin add 命令即可完成全部接线;安装方式见下文。
核心功能¶
看板 tab 与 widget 网格¶
client 半包(src/client/)注册 conversation.view tab:id=dashboard,order=90,locale 命名空间 dashboard(zh/en)。按 ~/.dsh/storages/dsh-dashboards/widgets.json 中的配置渲染 stat、matrix、chart、list 等卡片;样式仅使用 --dsw-alias-* 白名单令牌。看板 tab 右上角「编辑」可增删探针目标、移除 widget,保存后即时生效(client bundle 需刷新页面后加载)。
los 第一方指标¶
同源 API 聚合(每后端独立轮询缓存、single-flight):
- LLM 用量/成本:
GET /dashboards/los/usage(对应/usage/summary) - Provider 延迟趋势:
GET /dashboards/los/trends(/metrics/trends) - 任务统计:
GET /dashboards/los/metrics(Prometheus/metrics) - 执行节点矩阵:
GET /dashboards/los/nodes(/nodes,含 load/mem 快照与心跳)
los 双 token 从环境、credentials 或 losEnvFile 解析(Bearer 用量 + x-los-operator-token 节点),不写明文。
macOS 原生探针(零额外安装)¶
GET /dashboards/macos 与 GET /dashboards/macos/history 提供:loadavg、内存(vm_stat,含可回收缓存口径)、CPU(iostat)、磁盘(df)、网络速率(netstat 差分)、进程数;内存滚动 120 点短趋势。差分采样遵守 host 侧的诚实性约定(基线时刻与字节数对应,dt 过小不出速率)。
服务探活¶
GET /dashboards/probe 对本机关键服务做 HTTP/TCP 探活。目标列表解析链:UI 编辑 store(~/.dsh/storages/dsh-dashboards/probe-targets.json)→ Config.probe.targets(cordis.patch.yml)→ 代码内 DEFAULT_TARGETS。GET/PUT /dashboards/probe-targets 管理目标;PUT 空数组表示重置为默认;带 revision 时不匹配返回 409。
可选:Uptime Kuma 与 Glances¶
默认关闭,在配置中启用即可:
- Uptime Kuma:设置
kuma.url与kuma.token,走 REST v1/api/v1/monitors;数据经GET /dashboards/kuma。 - Glances:本机执行
brew install glances && glances -w后配置glances.url;数据经GET /dashboards/glances。
feed 采集摘要¶
读 ~/.dsh/scheduler-reports/feed-digest-*.md(scheduler job「多平台 feed 采集摘要」落盘)最新 5 份,卡片内点击展开正文;GET /dashboards/feed/digests,Markdown 渲染。列表截断时响应会显式带上 available/totalChars 与 truncated。
AI 额度渠道(quota widget)¶
GET /dashboards/ai-quota 统一输出 channels[](保留 legacy zenmux/packy 字段)。数据源包括:余额 API(ZenMux、Packy、DeepSeek、OpenRouter,凭据在 ~/.dsh/.credentials.yaml)、订阅窗口(quota-axi 本地采集,codex/cursor/claude/kimi/grok/copilot 等,依赖本机官方 CLI/App 登录态)、以及无公开 API 的站内/控制台型渠道(不做自动采集)。刷新间隔 Config.aiQuota.pollMs(默认 5 分钟;看板未开时零采集)。quota-axi 需在插件目录执行:
cd dsh-dashboards && npm install --no-save quota-axi@0.1.29
终端汇总脚本:~/.dsh/scripts/quota-all.mjs(支持 --json)。
运维与合规向 API¶
GET /dashboards/status:后端健康、widget 数、sanity 丢弃计数、egress 关停项、各后端 stale 状态。GET /dashboards/egress:出网清单(每项外呼的目标、用途、凭据与开关);可通过Config.egress.<id>=false逐项关闭外呼(缺省全开,关闭只停外呼,不影响读本机文件的采集)。
PUT /dashboards/widgets 校验 endpoint 白名单,带 revision 做乐观并发;存储写入走原子 tmp→rename(0600)。
安装与启用¶
资料中的安装步骤以 profile、bundles 与 cordis.patch.yml 为准(README 建议参考 dsh-health-panel 接线方式):
# profile 依赖 + bundles + cordis.patch.yml(参考 dsh-health-panel 接线)
pnpm dsh --profile web --dump-config # 验证 dashboards 行合并
# 重启 dsh web(manifest touch 触发 daemon AUTO-RELOAD)
验证插件是否生效:
- 插件树:
include:dashboards且fiberPhase=active。 curl http://127.0.0.1:3080/dashboards/status。- 在 Web 会话区切换到「看板」tab,查看 widget 网格。
开发侧可执行:
node --check index.mjs
DSH_SOURCE=/path/to/deepseek-harness node scripts/build.mjs # client bundle(jsx automatic)
典型用法¶
- 快速确认聚合是否就绪:对本地 DSH Web 默认端口请求 status。
curl http://127.0.0.1:3080/dashboards/status
-
在 UI 中日常使用:打开任意会话,切到「看板」tab,对照 LLM 用量、节点矩阵与本机 macOS 探针;需要时在看板右上角编辑探针目标或 widget 布局。
-
启用 Uptime Kuma / Glances:在 cordis 配置中填写
kuma.url、kuma.token或glances.url,重启或触发重载后刷新看板。 -
查看 feed 摘要:确保 scheduler 已产出
~/.dsh/scheduler-reports/feed-digest-*.md,看板中对应卡片会展示最新若干份。 -
关闭部分外呼(示例来自 README):
- id: dashboards
config:
egress:
quotaApis: false # zenmux/packy/deepseek/openrouter 余额 API
diskAlert: false # 飞书 webhook 推送
适用场景与注意¶
适合谁:已在用 DSH Web、需要把 los 用量/节点、本机 macOS 状态、自定义 HTTP/TCP 探活和(可选)Kuma/Glances、feed 摘要放在同一会话视图里的开发者或运维。
平台与依赖:macOS 原生探针面向 macOS;Glances 安装示例为 brew install glances。AI 额度中的 quota-axi 依赖各渠道本机登录态文件或 Keychain,未登录渠道会显示 auth 与恢复命令说明。
安全与权限:插件以当前 dsh 进程权限运行,会读 credentials、本机探针命令输出,并按配置对外发起 HTTP(含可选 Kuma、Glances、余额 API 等)。安装前请阅读仓库源码与 MIT 许可证,核对 cordis.patch.yml 与 egress 开关是否符合你的环境策略。widget 与探针目标的 PUT 带 endpoint 白名单与 revision 守卫,但仍应只在你信任的配置源下启用。
生态说明:DSH 社区插件目录(如 SkillHub)为独立站点,与 DeepSeek、幻方无官方从属关系;本文事实来源为仓库 README 与 package 元数据。
结尾¶
dsh-dashboards 把 los 侧用量与节点、macOS 本机探针、可编辑的服务探活,以及可选的 Kuma、Glances 和 scheduler feed 摘要,收敛到 DSH 会话区的「看板」tab,并由同源 /dashboards/* API 供 curl 与 UI 共用。
- 目录页:https://www.skillhub.cn/plugins/LosEcher/dsh-dashboards
- 源码与完整 API 列表:https://github.com/LosEcher/dsh-dashboards