dsh-skin-rotation: DeepSeek Harness Intelligent Skin Rotation Plugin

The philosophy of DeepSeek Harness is “everything is a plugin.” If you have installed multiple skins, manually switching them on every launch wastes time. The dsh-skin-rotation plugin solves this problem by providing a complete set of skin rotation strategies and ensuring safe configuration writes.

Core Features

This plugin provides the following capabilities:

  • Multiple rotation strategies: Supports four modes: random, sequential, weighted, and fixed.
  • Skin pool management: You can set a status for each skin (compatible, excluded, incompatible, unavailable).
  • History: Records rotation timestamps, trigger methods, and results.
  • Fail-safe writes: Uses logging and temporary-file mechanisms to prevent interrupted writes from damaging the configuration.
  • Versioned state migration: Automatically migrates configuration during upgrades to avoid losing preferences.
  • Local-first: No additional API is required; it runs entirely locally and is recoverable.

Installation and Enablement

Install this plugin in a DeepSeek Harness environment.

1. Installation command

dsh plugin --profile web add github:luoyuejun9/dsh-skin-rotation

2. Environment requirements

  • DeepSeek Harness version must be >=0.2.0-rc.2.
  • Install at least two skins for rotation to be meaningful.

3. Enable

After installation, restart DSH. Open Settings -> Skins, and you will see the plugin’s control card at the bottom of the page.

If you use the desktop application, change the command to dsh plugin --profile desktop add github:luoyuejun9/dsh-skin-rotation.

Usage

Use the skin rotation card at the bottom of the Settings -> Skins page:

1. Enable automatic rotation

Click the “Rotate on launch” toggle. When disabled, the current skin remains unchanged on launch, but you can still trigger rotation manually.

2. Select a rotation mode

Choose a strategy from the mode dropdown:
* random: Randomly selects a skin each time, with an option to avoid recently used skins.
* sequential: Rotates in order and continues from the last position after restart.
* weighted: Selects based on weighted probabilities; higher weight means higher probability of being selected.
* fixed: Uses one fixed skin and does not switch automatically.

3. Manual actions

  • Shuffle now: Immediately switches to a new skin.
  • Restore previous: Restores the skin from the last successful rotation.
  • Avoid recent: In random mode, skips the skins from the last 2–3 successful rotations.
  • Adjust weights: In weighted mode, enter numeric values to adjust each skin’s weight (0 removes it from the rotation pool).

4. Exclude skins

Manage the skin pool using checkboxes. Unchecking a skin sets it to “excluded” status (it will not participate in rotation), but this does not uninstall the skin files. For skins marked “incompatible,” once excluded, they cannot be re-enabled through the plugin.

How It Works

  • Host-level decision: The rotation logic runs once when the DSH process starts. Hot-reloading the plugin does not trigger rotation; only a full restart recalculates the rotation.
  • Editing the patch layer: The plugin does not modify the skin files themselves; instead, it rewrites the content of the # --- dsh-skin managed --- code block in the configuration files. It updates both cordis.patch.yml under profile and cordis.patch.yml under DSH_HOME (the latter has higher priority).
  • Compatibility validation: The plugin checks whether a skin satisfies the @deepseek-ai/dsh* version range and the requirements in compatibility.json, ensuring that skins that could cause crashes are not loaded.

Notes

  • HTTP restrictions: The plugin’s HTTP endpoint (/api/dsh/skin-rotation) is limited to same-origin requests.
  • Incompatible skins: Skins marked incompatible and already excluded cannot be re-enabled in the plugin unless the configuration file is edited manually.
  • Patch-only editing: The plugin only modifies the patch layer and does not touch the skin.json file or the skin manager’s own state files.
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye