DSH Plugins Marketplace

DSH Plugins

Plugins

/

Tools & Capabilities

/

dsh-vps-ops

d

dsh-vps-ops

Manifest valid

Read-first VPS operations tools: systemd status and actions, disk usage, Docker status, log tails, configured backups, and quiet-hours schedules.

hasBundlePatch

dsh-vps-ops

Read-first VPS operations tools for DeepSeek Harness.

dsh-vps-ops gives your DSH agent a small, explicit toolkit for running a server: systemd status, disk usage, Docker status, log tails, configured backups, and quiet-hours schedule checks. Nothing about your host is baked into the code — every unit, container, backup command, and time window comes from plugin config.

Read-only by default. Destructive tools refuse in read-only mode, only accept allow-listed targets, and ask the host for approval before running.

Tools

ToolKindWhat it does
service_statusread-onlysystemctl state, sub-state, restarts, PID, start time, host uptime, last error journal lines. One configured unit or all of them.
disk_usageread-onlydf -h /, inode usage, and the five largest top-level directories under /.
docker_statusread-onlyRunning containers, or docker inspect state/health/restarts for one configured container.
log_tailread-onlyjournalctl tail for a configured unit, or the tail of an absolute file inside the configured log directories. Max 200 lines.
quiet_hours_statusread-onlyPure schedule calculation: lists the windows and says whether now is inside one. Starts and stops nothing.
service_actiondestructive`systemctl start
backup_rundestructiveRuns one operator-configured backup command, after approval.

Install

dsh plugin --profile web add dsh-vps-ops
systemctl restart dsh-web   # or restart your DSH process

Then allow-list your host's units in the profile's cordis.patch.yml:

- id: vps-ops
  config:
    services:
      - label: DSH Web
        unit: dsh-web
      - label: OpenBot
        unit: openbot
    containers:
      - label: OpenViking
        name: openviking
    backups:
      - id: openviking-daily
        label: OpenViking backup
        command: ['/usr/local/bin/openviking-backup.sh']
        timeoutMs: 120000
    quietHours:
      timeZone: UTC
      windows:
        - 'Mon-Fri 01:00-04:00'
        - 'Mon-Fri 06:00-10:00'
    logs:
      dirs: ['/var/log']
    safety:
      readOnly: false
      requireApproval: true
      timeoutMs: 15000
      maxOutputBytes: 65536

Without a config block the plugin still boots and only reports that nothing is configured.

Configuration

KeyDefaultMeaning
services[]{ label, unit } allow-list of systemd units.
containers[]{ label, name } allow-list of Docker containers.
backups[]{ id, label, command, timeoutMs }; command is an argv array (preferred) or a shell string.
quietHours.timeZoneUTCIANA zone used to evaluate the windows.
quietHours.windows[]"<days> HH:MM-HH:MM"; day ranges may wrap (Fri-Mon) and a window whose end precedes its start crosses midnight.
logs.dirs["/var/log"]Directories log_tail may read files from.
audit.file<DSH_HOME>/logs/vps-ops-audit.logWhere approved operations are recorded.
safety.readOnlytrueWhen true, service_action and backup_run refuse.
safety.requireApprovaltrueWhen true, destructive tools ask the host first.
safety.timeoutMs15000Default command timeout.
safety.maxOutputBytes65536Output cap per call.

Safety model

  • No shell interpolation of model input. Commands are executed as an executable plus an argv array. Names are validated before they reach an argv slot, which also blocks option injection such as a unit called --help.
  • Allow-lists only. service_action, docker_status <container>, log_tail <unit>, and backup_run accept only configured names.
  • Files stay in the log directories. log_tail <file> resolves symlinks and refuses anything outside logs.dirs.
  • Bounded work. Every command has a wall-clock timeout and a stdout/stderr byte cap; runaway output kills the child.
  • No secret plumbing. Children get a minimal environment, and no tool reads or forwards credentials.
  • Fail-closed approval. A missing or throwing approval answerer means the operation does not run.
  • One audit line per approved operation, as JSON on a single line.

Requirements

  • DSH >= 0.2.1-rc.4 (Node ^22.19.0 || >=24.0.0).
  • systemctl / journalctl for the systemd tools, docker for the Docker tool. Missing binaries are reported as tool output, not as crashes.

Development

node --test

The suite covers window parsing and evaluation, argv building, UTF-8 safe output truncation, output parsers, and the destructive-operation gate (read-only refusal, rejected approval, missing answerer, approved execution, audit line).

License

MIT

Comments

Loading…

From the same category

reactive-resume

DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.

Tools & CapabilitiesManifest valid

★ 41.7k

↓ 215/wk

MIT

Aug 24, 2026

dsh plugin --profile web add dsh-plugin-reactive-resume

by dsh-market

The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场

Tools & CapabilitiesManifest valid

★ 10.1k

↓ 361.7k/wk

MIT

TypeScript

Nov 1, 2026

dsh plugin --profile web add dshmarket

by Tencent

Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.

Tools & CapabilitiesManifest valid

★ 9.9k

↓ 12.3k/wk

MIT

TypeScript

Nov 1, 2026

dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-plugin

by yjh051108

dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).

Tools & CapabilitiesManifest valid

★ 7k

MIT

JavaScript

Sep 18, 2026

dsh plugin --profile web add @dsh-external/dsh-super-injector

by superdesigndev

OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn

Tools & CapabilitiesManifest valid

★ 7k

NOASSERTION

Python

Nov 1, 2026

dsh plugin --profile web add treg-dsh

by Q00

Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,

Tools & CapabilitiesManifest valid

★ 6.3k

MIT

Python

Nov 1, 2026

Index only — not installable