Preface

Under DSH’s philosophy of “everything is a plugin,” profiles, bundles, plugin installation, and restarts are typically scattered across the CLI, configuration, and host capabilities. When maintaining multiple profiles, it is often necessary to confirm whether the current profile is active, if bundles need to be restarted, if plugin versions across multiple profiles are consistent, and if a single installation requires a rollback.

dsh-profile-panel is a DSH plugin that centralizes these operations into the profile-panel section of the settings panel.

What is this

dsh-profile-panel is a DSH plugin status panel / profile operations console maintained by lingxin-maz. The repository name is lingxin-maz/dsh-profilespanel, the npm package name is dsh-profile-panel, and the license is MIT.

It is used for observation, diagnosis, change management, and Agent integration, covering:

  • Current profile, bundle status and pending restart detection (SSE)
  • One-click restart
  • Multi-profile synchronized installation (web+desktop dual-end mode)
  • Supply chain version preview (minimumReleaseAge release age warning)
  • Pre-install snapshot, automatic rollback on failure, manual undo
  • Update detection and cross-profile version alignment
  • Health checks (missing packages / peer gaps / orphan bundles / layer stack duplicates)
  • Side-by-side diff of two profiles
  • Startup report
  • Audit logs (local JSONL)
  • Agent tools: profile_status / profile_updates / profile_sync_install / profile_restart
  • Market search and github:owner/repo direct install
  • Hot reload (when host supports it)

It installs into a specified DSH profile, rather than running as a standalone application. The plugin runs with the permissions of the current dsh process; it is recommended to check the source code and license before installing.

The community directory page is an independent site with no official affiliation with DeepSeek / Huafan; it should not be interpreted as an official app store.

Core Features

Observation and Diagnosis

Below are the capabilities used to view status.

  • Current profile, bundle status and pending restart detection (SSE).
  • Update detection and cross-profile version alignment.
  • Health checks: missing packages, peer gaps, orphan bundles, layer stack duplicates.
  • Side-by-side diff of two profiles.
  • Startup report.
  • Audit logs: local JSONL.

Change Management

Below are operations that will actually change the plugin or profile state.

  • One-click restart.
  • Multi-profile synchronized installation (web+desktop dual-end mode).
  • Supply chain version preview: minimumReleaseAge release age warning.
  • Pre-install snapshot, automatic rollback on failure, manual undo.
  • Hot reload (when host supports it).

Agent and Market Integration

Below are capabilities oriented towards model invocation and market entry points.

  • Agent tools: profile_status / profile_updates / profile_sync_install / profile_restart.
  • Market search and github:owner/repo direct install.

Installation and Enabling

Runtime requirements node >=18, peerDependencies includes:

{
  "@deepseek-ai/cordis": "^4.0.1",
  "@deepseek-ai/schemastery": "^3.18.1"
}

Install via registry:

dsh plugin --profile <name> add dsh-profile-panel

To pin a version:

dsh plugin --profile <name> add dsh-profile-panel@1.0.0

Direct install from GitHub:

dsh plugin --profile <name> add github:lingxin-maz/dsh-profilespanel

Local path:

dsh plugin --profile desktop add ../dsh-profilespanel

After installation, open:

Settings → Profile / Plugins (profile-panel section of the settings panel)

Verify interface:

GET http://127.0.0.1:<port>/api/profile-panel/status

Returning 200 indicates successful installation.

Typical Usage

Configurable in cordis.yml:

profile-panel:
  profile: web
  allowRestart: true
  pollIntervalMs: 5000
  minimumReleaseAgeDays: 7

Configuration item meanings:

  • profile: Explicitly specify the profile.
  • allowRestart: Whether to allow one-click restart.
  • pollIntervalMs: Change detection polling interval.
  • minimumReleaseAgeDays: Release age threshold for supply chain version preview.

The market page can send package names to the download module via events or deep links:

dsh-profile-panel:install-target
#dshpp-install=<target>

Applicable Scenarios and Notes

Suitable for scenarios requiring maintenance of multiple DSH profiles, execution of plugin installation/update/restart, viewing bundle status, or delegating profile operations to Agent tools.

Notes before use:

  • The plugin runs with the permissions of the current dsh process; check the source code and MIT license before installing.
  • Change-related interfaces only accept same-origin POST requests and reject proxy forwarding headers.
  • Installation targets only accept registry package names/versions specs and strict forms github:owner/repo[#path:/sub], rejecting local paths, git URLs, http sources, and command injection.
  • GitHub direct install follows the repository HEAD and has no version number semantics.
  • Multi-profile installation does not automatically rollback by default; rollback can be checked. undo requires pnpm install after restoring the manifest.
  • Hot reload degrades to a restart prompt when the host does not support it.
  • updates / install-preview depend on registry availability; they degrade to warnings when offline.
  • Desktop detection is heuristic; when the dual target is missing on the other end, it degrades to single-end + warning.
  • When the online directory for market search is unreachable, it falls back to the local dshmarket snapshot, which may lag behind the online directory.
  • Audit logs are local JSONL, excluding conversation content; zero telemetry.

Links

  • GitHub: https://github.com/lingxin-maz/dsh-profilespanel
  • Directory page: https://www.skillhub.cn/plugins/lingxin-maz/dsh-profilespanel