DeepSeek Harness Plugin

JularDepick/dsh-system-monitor-plugin

Stars ★ 0 Downloads (30d) 475 Category Tools & Capabilities Added 2026-10-16 npm dsh-system-monitor-plugin

A plugin for dsh: monitor the resource utilization of dsh system processes, and report the results to the user in the form of charts.

Install

# from npm (prebuilt)

dsh plugin --profile web add dsh-system-monitor-plugin

# from a prebuilt release tarball

dsh plugin --profile web add "https://github.com/JularDepick/dsh-system-monitor-plugin/releases/download/v0.2.0/dsh-system-monitor-plugin-0.2.0.tgz"

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:JularDepick/dsh-system-monitor-plugin

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

dsh-system-monitor-plugin

[English] | 简体中文

A plugin for dsh: monitor the resource utilization of dsh system processes, and report the results to the user in the form of charts


Features

  • Automatic collection: CPU usage percentage and memory usage of the dsh process and its child processes (auto-scaled KB/MB/GB; percentages in three tiers: exactly 0 shown as 0%, below 0.01% shown as <0.01%, otherwise two decimals)
  • Container quota basis: percentages are computed against the CPU and memory quota of the running environment itself (falling back to the visible totals when no quota is readable), so readings inside a container are not diluted by host totals
  • Session attribution: processes are attributed to sessions through terminal mapping, explicit reporting and session environment variables, and the panel presents them across four dimensions: this session / all processes / sessions / subagents
  • Standalone palette: the panel uses its own blue-and-white palette (light and dark variants); share bars and table swatches are colored by role, with a fixed semantic color for the main process and host, the subagent total, other applications and idle
  • Lane color pool: ordinary processes and sessions take pool colors in order, and the pool can be added to, edited or trimmed in the plugin config and in the panel settings sub-page (16 colors by default); when there are more members than pool colors the lane color strategy decides, recycling existing colors (default) or auto-inserting the midpoint between two neighbouring colors and saving it into the config
  • Handle reporting: a reporting tool allows the Agent to report process handles (e.g. subagent processes) that the plugin cannot identify on its own
  • Panel-only display: monitoring data is shown on the plugin UI panel only and is not exposed to dsh

Installation

This release targets dsh 0.2.0-rc.2; since dsh 0.2.0-rc.2, dsh enforces the dsh-prefixed peerDependencies of a plugin (a mismatched plugin is refused both at installation and at startup), so the plugin version must be installed against the matching dsh version

This plugin works in both the web and desktop dsh profiles, installed from the same package; only the UI host environment differs (Web UI session-area tab / the same slot on desktop), while collection and panel behavior stay identical

Install this plugin into a dsh profile:

dsh plugin --profile <name> add dsh-system-monitor-plugin

When distributing a tarball:

dsh plugin --profile <name> add dsh-system-monitor-plugin-0.2.2.tgz

Usage

After installation and startup, the plugin provides a "System Monitor" tab in the session-area tab bar of the Web UI, showing CPU usage and memory usage of monitored processes across four dimensions (auto-scaled KB/MB/GB; percentages in three tiers: exactly 0 shown as 0%, below 0.01% shown as <0.01%, otherwise two decimals): this session's processes (the current session plus the subagent sessions it spawned, with subagent rows marked and their total shown in the card head), processes, sessions (sessions attributed to a subagent are merged into a single subagent total row), subagents (each subagent listed separately, those spawned by the current session first and marked as this session)

Each card carries the totals of its dimension, a resource share bar of three fixed lanes (others, DSH and its subprocesses (segmented per member), idle; each lane is labelled with its percentage of the whole machine, and the process/session name is shown inside a segment whenever it fits) and a detail table; clicking a card title collapses or expands that card

Detail tables can be sorted by CPU, memory or name, and the optional columns (PID, parent, session, memory percentage) can be hidden; a process or session that was sampled before does not disappear as soon as a later round misses it, but stays with zeroed values and is removed automatically only after several consecutive rounds without a sample (10 by default, adjustable in the plugin config and the panel settings sub-page), and any row can also be removed manually (it comes back once sampled again)

The "Settings" button at the top right of the panel opens an in-panel settings sub-page to toggle in-lane names, switch the CPU scope (whole machine / per core), the view columns (single / two-column), the table sort (default / CPU / memory / name) and the visible columns (per-column toggles), adjust the row retention rounds, switch the lane color strategy (recycle existing / auto-insert midpoints) and add, edit or remove lane pool colors, and to copy the current snapshot as text; settings and collapse states are kept in browser-side local preferences; card folding and the settings sub-page are both keyboard operable (ESC closes the sub-page)

Process handles that need to be monitored are reported by the Agent through the reporting tool during a session

The handle fields of the reporting mechanism (identity, parent process, process name, session id, and the like) and the deduplication rules are documented in the reporting tool's parameter description inside the plugin

Directory Structure

dsh-system-monitor-plugin/
├── .gitignore          # git ignore rules
├── AGENTS.md           # development rules and project information
├── COPYRIGHT           # copyright notice
├── LICENSE             # license
├── README.md           # Chinese main README
├── README_en-US.md     # English README
├── cordis.patch.yml    # config-layer patch
├── package.json        # package manifest and build scripts
├── pnpm-lock.yaml      # locked dependency versions
├── pnpm-workspace.yaml # pnpm workspace declaration
├── tsconfig.json       # type-check configuration
├── tsdown.config.ts    # build configuration
├── version.index.md    # version index
├── docs/               # project docs (official plugin dev docs, tech specs, tag and release spec)
├── scripts/            # helper scripts (syntax check, build pre/post steps)
└── src/                # project source (entry, config, constants, client, monitor, translation)

Copyright

Copyright © 2026 JularDepick

See COPYRIGHT

License

This repository is licensed under the Apache-2.0 License

Related Links

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.