DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Silverhand Dsh Pet — DSH Plugin for DeepSeek Harness
← Plugins
S

silverhand-dsh-pet

Silverhand Dsh Pet

Silverhand desktop pet for the DeepSeek Harness Web GUI — drag to move, walks in the drag direction, reacts to agent state.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Qiao-NEYC/silverhand-dsh-pet#dfad6fbf4c4a694c3a9072d50f5ae2e8ef4c6188
READMECompatibilityVersions
Silverhand desktop pet demo

Compatibility and provenance

Silverhand Dsh Pet is published as silverhand-dsh-pet and currently resolves to version 1.0.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/20/2026

Versions

1.0.2stable
8/20/2026

Related plugins

Loading related plugins…

Latest
1.0.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
8/20/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundle

README

Silverhand — DSH Desktop Pet

Silverhand desktop pet demo

A desktop pet for the DeepSeek Harness Web GUI. Silverhand (a cyberpunk mercenary with a silver cybernetic arm) lives in the bottom-right corner and reacts to what the agent is doing — idle breathing, active work, reviewing output, waving hello, celebrating a finished turn, sulking on an error, and waiting for your approval.

The character artwork is migrated as-is from the Codex pet format — no redesign, just the original spritesheet.webp + pet.json.

Features

  • Renders in the frame-wide shell.overlay layer, fixed to the bottom-right.
  • Click-through by default (only the pet itself is interactive).
  • Reacts to real agent state, driven by DSH host events:
    • idle / running from agent/status
    • review from tools/result
    • failed from agent/error
    • waving from agent/created / agent/session-start
    • jumping when a turn finishes (running → idle)
    • waiting while an approval request is open (approval/request)
  • Drag the pet to move it — it walks left/right in the drag direction.
  • Hover to see the current state; click (no movement) to make it jump.

Install

This is a standard DSH plugin package. Two ways to install:

From GitHub (recommended)

  1. Add it to your profile's dependencies and dsh.profile.bundles (in ~/.dsh/profiles/<profile>/package.json):

    {
      "dependencies": {
        "silverhand-dsh-pet": "github:Qiao-NEYC/silverhand-dsh-pet"
      },
      "dsh": {
        "profile": {
          "bundles": [
            "...your existing bundles...",
            "silverhand-dsh-pet"
          ]
        }
      }
    }
    
  2. Run pnpm install in the profile directory (or let the DSH desktop app install on launch).

  3. Restart DSH. The pet appears in the bottom-right.

From npm

Once published: npm i silverhand-dsh-pet, then add "silverhand-dsh-pet" to dsh.profile.bundles.

Layout

Silverhand/
├── README.md
├── LICENSE
├── .gitignore
├── package.json           # DSH plugin manifest (dsh.client, exports)
├── lib/
│   ├── index.js           # host half: reads the sprite, serves HTTP routes + state
│   └── client.js          # client half: renders the pet, polls state
├── assets/
│   ├── pet.json           # migrated Codex manifest
│   └── spritesheet.webp   # migrated sprite atlas (8×9, 192×208 cells)
├── scripts/
│   ├── make_demo_gif.py   # render docs/demo.gif (animated demo)
│   ├── analyze_frames.py  # measure per-row frame counts / diffs
│   └── contact_sheet.py   # render a labeled contact sheet
└── docs/
    ├── demo.gif           # animated demo (all animations)
    └── sprite-atlas.md    # atlas layout + state mapping

Anatomy

A DSH plugin is a Cordis plugin split into two halves:

  • Host (lib/index.js) runs in the DSH Node process. It reads the sprite from its own assets/ (via import.meta.url, so it works no matter where the package is installed) and registers two HTTP routes:
    • GET /silverhand-pet/spritesheet.webp — the sprite atlas.
    • GET /silverhand-pet/state — { "state": "..." } derived from agent events.
  • Client (lib/client.js) runs in the browser. It registers into shell.overlay, polls /silverhand-pet/state every 300 ms, and animates the matching atlas row from /silverhand-pet/spritesheet.webp.

The two halves communicate over plain same-origin HTTP routes.

Configuration

All tunables are constants at the top of each half:

  • lib/index.js — ROUTE_SPRITE / ROUTE_STATE, and the per-state transient durations in the event listeners.
  • lib/client.js — ANIMS (row / frame count / cadence per animation), STATE_ANIM (state → animation), PET_W / PET_H (display size), and the CSS block (position, shadow, hover).

Troubleshooting blank or missing pet artwork

  • Use package version 1.0.1 or newer. The client bundle now declares the layout dependency explicitly, so shell.overlay is available before the pet registers.
  • The client probes /silverhand-pet/spritesheet.webp and logs a route error in the browser console if the Host half is not serving the atlas. A 404 or 500 means the host package is not active; reinstall the bundle and restart DSH.
  • Animation frames are reset whenever the state changes. This prevents a stale frame index from selecting an empty atlas cell when switching back to the six-frame idle or waiting rows.
  • If the pet container exists but is transparent, inspect the browser Network panel for the sprite route and confirm its response is image/webp with a payload around 1 MB.

Asset provenance

The artwork was migrated from the local Codex pet directory (~/.codex/pets/silverhand/). It is your asset — before publishing this repo to GitHub, confirm you hold (or have) the right to redistribute the sprite and the Silverhand likeness. The code in this repository is MIT licensed; the sprite's licensing is yours to state.

Development helpers

# Regenerate docs/demo.gif
python scripts/make_demo_gif.py

# Report per-row opaque-cell counts and consecutive-frame deltas
python scripts/analyze_frames.py

# Render a labeled contact sheet (full + zoomed ambiguous rows)
python scripts/contact_sheet.py

analyze_frames.py / contact_sheet.py require Python 3 with Pillow and numpy.