DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Server Monitor — DeepSeek Harness 插件(DSH Plugin)
← Plugins
S

@goodandready/dsh-server-monitor

Server Monitor

DeepSeek Harness 的 SSH 服务器监控和终端侧边栏

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

npx -y @deepseek-ai/dsh plugin --profile web add github:GooDAnDReaDY/dsh-server-monitor#63a297ed31e60fa201b940edfee22c722785d378
README兼容性版本

兼容性与来源证明

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

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

版本

0.1.7stable
2026/9/24
0.1.6stable
2026/9/24
0.1.5stable
2026/9/19
查看其余 3 个版本收起版本
0.1.3stable
2026/9/18
0.1.1stable
2026/9/18
0.1.0stable
2026/9/17

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

📦 @goodandready/dsh-server-monitor

Standalone Read-Only Linux Server Monitor for DeepSeek Harness

🇬🇧 English • 🇨🇳 中文说明 • 🇷🇺 Русский

⭐ If you like this plugin, please star it on GitHub — it shows me that the plugin is useful to you and motivates me to keep developing it.

🐛 If you find a bug or would like to request a feature, open a GitHub issue in any language — I will review your proposal and implement useful suggestions in a future plugin version.

A standalone, read-only Linux server monitor for the DeepSeek Harness sidebar. This package owns its server profiles and credentials; it does not depend on dsh-remote-workspace or reuse another plugin’s connection settings.

MVP scope

  • Add and manage SSH profiles for Linux, macOS, BSD, and Windows OpenSSH.
  • Connect with an SSH private key (inline or server-side key path) or password authentication.
  • Generate Ed25519 SSH keys directly in the UI, copy a ready-to-use setup command for target servers, and verify the connection.
  • Show current host, CPU, memory, swap, disk, process, container, network, and listening-port data.
  • Refresh every 15 seconds while the sidebar is visible.
  • Background probes do not manage remote services, processes, or containers. The last hour is drawn as sparklines, and the operator can open one interactive terminal.

Credential boundary

Credentials belong to this plugin and are stored in its private vault on the DSH host. On POSIX hosts the plugin enforces and verifies owner-only mode 0600, and stops if that permission cannot be established. SSH keys generated via the UI are saved to ~/.dsh/keys/id_ed25519_dsh (directory 0700, file 0600). Secret values and private keys are never written to DSH settings or returned to the browser; profile APIs expose only masked values and presence flags. A configured private-key path is read on the DSH host.

Development checks

Run the same checks used by Gitea Actions:

npm ci
npm test

Tests use mocked SSH connections and do not connect to real servers. The Gitea Actions workflow runs these commands for pushes and pull requests.

Languages

The plugin UI ships English and Chinese dictionaries and uses the DSH locale service, allowing dsh-russian-lang to supply Russian translations. See README.zh.md and README.ru.md.

Requirements

  • A DSH web profile with the plugin installed and SSH reachability from DSH to each Linux host.
  • A remote account allowed to run standard read-only system commands. Docker/Podman data requires permission to query that runtime.
  • A private-key path must be readable by the DSH service account on the DSH host.
  • Runtime Dependency (ssh2): Requires ssh2 (^1.17.0) in dependencies (not peer) for SSH protocol handling and Ed25519 keypair generation. It is automatically installed from the package registry.
  • Pure JavaScript Fallback: No C/C++ compiler or Python build toolchain is required on the host. While ssh2 includes optional native acceleration modules (cpu-features, sshcrypto), it falls back automatically and cleanly to a pure JavaScript implementation if native build tools are unavailable.
  • Air-Gapped / Offline Environments: When installing from a .tgz tarball in an isolated network, ensure ssh2 and its transitive dependencies are available in your local package manager store or internal mirror.

Install

Replace web with your DSH profile:

dsh plugin --profile web add @goodandready/dsh-server-monitor

Follow the CLI prompts. In the plugin settings card, add a server, choose key or password authentication, test the connection, and save. Open Server Monitor in the sidebar. Remove with dsh plugin --profile web remove @goodandready/dsh-server-monitor.

Configuration

Manage profiles in the DSH settings card. Import from SSH config reads ~/.ssh/config, skips wildcard and git hosts, and lets you choose which hosts to add. The agent tools server_monitor_hosts and server_monitor_exec list hosts without secrets and run one non-interactive command with a 1–300 second timeout. Settings contain connection metadata only: do not place passwords, private-key contents, or passphrases in settings or config files.

FieldTypeDefaultMeaning
profilesarray[]Plugin-owned SSH profiles.
profiles[].idstringgeneratedStable profile ID.
profiles[].namestringemptyDisplay name.
profiles[].hoststringemptyLinux host reachable from DSH.
profiles[].portnumber22SSH port.
profiles[].usernamestringrootRemote account; prefer restricted permissions.
profiles[].authTypestringkeykey or password.
profiles[].privateKeyPathstringemptyOptional key path on the DSH host.
profiles[].shellstringposixposix sends probes to /bin/sh -s on stdin. powershell uses powershell.exe -EncodedCommand. Without /proc/meminfo, macOS and BSD are collected with sysctl. Choose powershell for Windows. The Terminal button opens a loopback xterm session.
profiles[].tagsstring listemptyComma-separated labels. The server list can filter by one tag and by search text.
profiles[].proxyJumpstringemptyAnother profile id, or user@host:port. The connection is opened through that bastion.
activeProfileIdstringemptySelected profile ID.
pollIntervalSecnumber30Background probe interval: 10, 30, 60, or 300. Other values use 30.

The settings card stores secret values in the plugin-owned vault on the DSH host. POSIX vault operations require verified owner-only permissions (0600).

SSH key generation and sharing with other plugins

You can generate a dedicated Ed25519 keypair directly from the settings card by clicking Generate SSH key. The private key is saved on the DSH host at ~/.dsh/keys/id_ed25519_dsh (mode 0600). The UI displays the public key and a one-line setup command to paste on your target server. Once executed, click Command ran — test connection to test connectivity immediately.

This key path can also be configured in other local plugins such as dsh-remote-workspace to share the same management key without duplicating credentials.

Collected data

The bounded, read-only collector reports host/OS/kernel/CPU, load and uptime, memory and swap, mounted filesystem usage, up to 12 CPU-heavy processes, running Docker or Podman containers, network byte/packet counters and the one-second Rx/Tx rate measured on the host, and listening TCP/UDP ports (ss, falling back to netstat). A section can be empty if a command, runtime, or permission is unavailable. The server card shows the last SSH error and the probe latency in milliseconds. History is stored under the plugin metrics directory as raw, 1-minute, 15-minute and 1-hour samples, and GET /dsh-server-monitor/history returns one field for a time range. The first successful probe copies the previous day of CPU and memory from sar when sysstat is installed. Month traffic adds byte deltas for the UTC calendar month, ignores a counter drop after reboot, and starts again on the first day of the next month. Each server card draws the last hour of CPU, memory and disk as an SVG sparkline. A gap longer than 90 seconds breaks the line. CPU is stored as a percent of the core count when that count is known.

Architecture

flowchart LR
  UI[DSH sidebar] --> Client[Plugin client]
  Client --> Routes[Trusted local routes]
  Routes --> Settings[Profiles]
  Routes --> Vault[Credential vault]
  Routes --> SSH[SSH service]
  SSH --> Linux[Read-only Linux collector]
  Linux --> Snapshot[Current snapshot]
  Snapshot --> Client
ModuleResponsibility
lib/index.jsCordis registration, settings, service lifecycle.
lib/client.jsSidebar/settings UI; pauses polling while hidden.
lib/routes.jsTrusted-request checks, profile operations, snapshot cache.
lib/profile.jsProfile normalization and validation.
lib/vault-service.jsCredential storage and POSIX permission verification.
lib/ssh-service.jsSSH authentication, bounded commands, reuse and cleanup.
lib/linux-collector.jsSnapshot parsing and the Linux /proc probe.
lib/snapshot-commands.jsmacOS, BSD, and Windows collection commands.
lib/pty-bridge.jsLoopback terminal upgrade and xterm assets.
lib/agent-tools.jsAgent tools that list hosts and run one bounded command.
lib/plugin-updater.jsVersion checking and one-click in-card plugin updates.

Internal HTTP routes

These DSH-client routes accept only a loopback client. Origin, Referer and Sec-Fetch-Site are checked for that local browser and do not admit another machine. They are not a public or remote-management API.

MethodPathPurpose
GET/dsh-server-monitor/stateSanitized profiles and selected ID.
GET/dsh-server-monitor/snapshot?profileId=<id>Current snapshot; defaults to active profile.
GET/dsh-server-monitor/updateCurrent and latest version status.
POST/dsh-server-monitor/updateRun one-click plugin update via DSH CLI.
POST/dsh-server-monitor/profiles/saveCreate/update a profile.
POST/dsh-server-monitor/profiles/deleteDelete profile, stored secrets, the SSH session and local metric files.
POST/dsh-server-monitor/profiles/activeSelect active profile.
POST/dsh-server-monitor/keys/generateGenerate Ed25519 keypair in ~/.dsh/keys (0600) and return public key + setup command.
POST/dsh-server-monitor/testTest SSH connection.
GET/dsh-server-monitor/historyStored samples for one profile and field.
GET/dsh-server-monitor/profiles/import-ssh-configConcrete hosts from the local SSH config.
GET/dsh-server-monitor/vendor/*xterm files for the terminal, loopback only.
WebSocket/dsh-server-monitor/ptyInteractive shell for one saved host, loopback only.

Snapshots are cached per profile for 15 seconds from collection start; concurrent requests share a collection. Save/delete invalidates that profile’s cache.

Security and support

The plugin owns its SSH credentials and never returns secrets to the browser. Background probes are read-only. The Terminal button opens one interactive SSH session and accepts the upgrade only from loopback. Alerts are not included.

  • Issues: GitHub Issues
  • License: MIT

Visual verification

DSH Server Monitor visual verification