In the DSH system, plugins, skills, presets, and specifications are scattered entities. Managing them often requires frequent context switching. The dsh-asset-manager plugin provides a centralized view that consolidates all of these assets into a single panel. It unifies the DSHComponent data model, scans actual data, and provides a full set of lifecycle management features (enable/disable/delete), while including built-in safety mechanisms.

Installation

Install the plugin via the command line:

dsh plugin --profile web add github:butingxz/dsh-asset-manager

Entry Points

The plugin provides two access entry points:

  1. Session View tab “System Overview”: Left-side tree navigation + right-side card table.
  2. Button on the right side of the session header: Goes directly to the main panel.

Key Features

  • Asset Overview: Provides four statistic cards, respectively showing total, enabled, disabled, and updatable counts.
  • Asset Browsing: Supports category tree navigation, status filtering, and fuzzy search by name/description.
  • Component Actions: Use a toggle switch to enable or disable components; supports local path thumbnails and one-click copy.
  • Details: Click a row to expand details, including a plain-language description, usage examples, source chain, and location/time information.
  • Deletion Protection: Deleting requires secondary confirmation by entering the full component name in a Modal; automatically backs up to workspace/.dsh-asset-backups before deletion; built-in protection prevents deleting official @deepseek-ai/* components or system specifications.
  • Version Updates: Performs real queries to npmmirror for the latest version (with timeout and caching), and displays upgrade options for updatable items.
  • UI/UX: Includes skeleton-screen loading, operation loading to prevent duplicate clicks, and Toast error handling.

API

  • GET /@dsh-external/dsh-asset-manager/api/assets: Retrieve the asset list (including cached update information).
  • POST /@dsh-external/dsh-asset-manager/api/refresh-updates: Trigger update detection.
  • POST /@dsh-external/dsh-asset-manager/api/disable | enable | delete: Execute component operations.

Chat tool: _dsh_external_dsh_asset_manager_status (quick asset status overview).

Build and Injection

For local development:

bash scripts/build.sh              # 构建 host + client
dev_inject_plugin <本目录>        # 首次注入 / 大改后重注入
dev_reload_package dsh-asset-manager   # 小改热重载(若报 duplicate route:先 dev_clear_routes /@dsh-external/dsh-asset-manager)

Note: Client changes require refreshing the browser page to take effect (when the dev:web watcher is not enabled).

Dependencies

The plugin depends on the following packages:

  • @deepseek-ai/dsh-client-ui-slots
  • @deepseek-ai/dsh-llm
  • @deepseek-ai/dsh-tools
  • cordis
  • schemastery

Conclusion

This plugin provides DSH developers with a centralized hub for managing assets and monitoring status. See the GitHub repository for more information or to contribute.