DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

@zer0kara/dsh-spark-monitor

Spark Monitor

DeepSeek Harness 状态栏监视器,适用于 1-4 个 DGX Spark 节点:通过 SSH 采样温度、内存和交换空间,并控制 GPU 时钟档位。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:zer0kara/dsh-spark-monitor#fda0f6e46c0692791312137815c1d4cf2a68ed66
README兼容性版本

兼容性与来源证明

Spark Monitor 以 @zer0kara/dsh-spark-monitor 发布,当前版本为 1.0.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/27

版本

1.0.1stable
2026/10/27
1.0.0stable
2026/10/27

相关插件

正在加载相关插件…

最新版
1.0.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/27
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Claude Designdsh-claude-designDeepSeek Harness 插件:来自 baoyu-design 的 claude-design 技能。智能体将画板画布写入文件,并在本地画布编辑器中打开它们。Claude Slidesdsh-claude-slidesDeepSeek Harness 插件:来自 baoyu-design 的 claude-slides 技能。代理会将可编辑的幻灯片演示文稿写入文件,并在本地幻灯片编辑器中打开。Claude Design Systemdsh-claude-design-systemDeepSeek Harness 插件:来自 baoyu-design 的 claude-design-system skill。代理将设计系统(令牌、字体、组件、资源)写入文件,并在本地 design-system 页面中打开。Claude Dashboarddsh-claude-dashboardDeepSeek Harness 插件:来自 baoyu-design 的 claude-dashboard 技能。该代理将基于数据的仪表板构建为文件,并在本地仪表板编辑器中打开。

README

dsh-spark-monitor

English | 简体中文

A DeepSeek Harness plugin that puts a live status monitor for 1–4 DGX Spark nodes at the far right of the composer status bar, and lets you switch their GPU clock tiers from the same button.

Temperature, memory and swap are sampled over SSH (sysfs hwmon and /proc/meminfo); the clock tiers are applied with sudo -n nvidia-smi -lgc on every configured node.

Features

  • Aggregate status pills — one pill shows the hottest node, one shows the fullest memory; hovering either lists every node with its own value and sample age.
  • Configurable nodes — 1 to 4 nodes, each with its own SSH alias, display label, and per-node temperature / memory switches.
  • Configurable clock tiers — any list of MHz values plus unlimited, applied to all nodes from a single click; the popover highlights the current tier.
  • Per-node failure isolation — one unreachable node does not break the others; its pill line shows the error.
  • en / zh dictionaries and a native settings form in the Desktop plugin manager.

Requirements

  • DeepSeek Harness >= 0.2.1-rc.2 (Web UI / Desktop profile).
  • Node.js >= 20 (only for local development).
  • SSH aliases for every node in ~/.ssh/config, reachable without a password prompt (BatchMode=yes).
  • Passwordless sudo on every node for nvidia-smi (sudo -n nvidia-smi ... must work).
  • nvidia-smi installed on the nodes (only needed for the clock feature).

Passwordless sudo (clock feature only)

Sampling temperature and memory needs no privileges. Applying a clock tier runs sudo -n nvidia-smi -lgc ..., so the SSH user needs a NOPASSWD rule:

# /etc/sudoers.d/dsh-spark-monitor
your-user ALL=(root) NOPASSWD: /usr/bin/nvidia-smi

Replace your-user with the SSH user. Without the rule the monitoring pills still work; set clock: false in the config to hide the clock button entirely.

Install

This package is distributed from GitHub; it is not published to npm.

Desktop: open the Plugins page, choose Add plugin, and enter github:zer0kara/dsh-spark-monitor (or the absolute path of a local checkout), then reload the page. The Desktop profile is owned by the Electron app, so dsh plugin --profile desktop is not the way to install there.

CLI profiles:

dsh plugin --profile web add github:zer0kara/dsh-spark-monitor
# a local checkout works the same way:
dsh plugin --profile web add file:/absolute/path/to/dsh-spark-monitor

Configuration

The plugin assumes no host names of its own: with no hosts configured it samples nothing and draws nothing in the status bar. Add your nodes in your profile's patch layer (~/.dsh/profiles/<profile>/cordis.patch.yml) or in the Desktop plugin-manager form. Replace node-1 / node-2 below with the SSH aliases from your own ~/.ssh/config:

- id: spark-monitor
  name: "@zer0kara/dsh-spark-monitor"
  config:
    hosts:
      - alias: node-1
        label: node 1
        temperature: true
        memory: true
      - alias: node-2
        label: node 2
        temperature: true
        memory: true
    tiers:
      - 1710
      - 1950
      - 2190
      - unlimited
    clock: true
    intervalSeconds: 300
    timeoutSeconds: 20
FieldDefaultMeaning
hosts[].alias— (required)SSH alias from ~/.ssh/config. Allowed characters: A-Z a-z 0-9 . _ -. With no hosts, nothing is sampled.
hosts[].labelaliasDisplay label used in tooltips.
hosts[].temperaturetrueSample temperatures for this node.
hosts[].memorytrueSample memory and swap for this node.
tiers[]1710, 1950, 2190, unlimitedClock tiers offered by the popover. Numbers are MHz; unlimited runs nvidia-smi -rgc.
clocktrueEnable the GPU clock tier control. Set false to hide the clock button when nvidia-smi needs a password.
intervalSeconds300Host sampling interval (30–86400).
timeoutSeconds20Whole SSH command deadline (5–120).

The Desktop plugin manager renders the same fields as a form.

How it works

  • Sampling. The Host half runs one SSH command per node per interval. It reads hwmon temp*_input files (millidegrees), /proc/meminfo (MemTotal, MemAvailable, SwapTotal, SwapFree), uptime and load. Each node's snapshot is stored independently; ageSeconds is computed by the Host per request.
  • Clock tiers. Applying a tier runs sudo -n sh -c 'nvidia-smi -lgc 0,<MHz> && …' (or -rgc for unlimited) and records the tier in /var/lib/gpu-clock-lock/tier on the node. The record file exists because the driver exposes no query for the locked clock — only set/reset; the optional boot service below writes the same file so the pill can show the boot tier after a reboot.

Optional: persist the clock limit across reboots

nvidia-smi -lgc is a runtime setting, so a reboot clears it. The plugin never installs or edits any service — this is only a companion example for people who want the limit to survive a reboot.

# /etc/systemd/system/gpu-clock-lock.service
[Unit]
Description=Lock GPU clocks for thermal control

[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -lgc 0,2190
ExecStartPost=/bin/sh -c 'mkdir -p /var/lib/gpu-clock-lock && echo 2190 > /var/lib/gpu-clock-lock/tier && chmod 644 /var/lib/gpu-clock-lock/tier'
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Replace both 2190 values with your tier. ExecStartPost only writes the tier record so the status pill can show the boot tier (the driver has no query for the locked clock). Without this service the plugin still works: the tier applies at runtime, and after a reboot the clocks revert and the pill shows — until you pick a tier again.

Limitations

  • There is no way to read the actual locked clock back from the driver; the plugin shows the last tier it applied (or the boot service's tier). A manual nvidia-smi -lgc outside the plugin is invisible.
  • nvidia-smi -lgc does not survive a reboot; use the optional boot service above to persist it.
  • The clock feature needs passwordless sudo; without it the apply fails and the error is shown per node.
  • SSH aliases must resolve without interactive prompts; use BatchMode=yes-friendly keys.

Development

pnpm install
node --test

The Host tests use a fake SSH runner (setRemoteRunner) and exercise the registered Fetch routes directly.

License

MIT