Foreword

The default interface of DSH Web leans towards being utility-oriented. When wanting to switch themes or skins, the common practice is to manually search GitHub repositories, verify dsh.client declarations and row IDs, then use dsh plugin add to install; having multiple skin plugins installed simultaneously can easily lead to conflicts. dsh-skin-market consolidates browsing, installing, enabling, disabling, updating, and uninstalling into the DSH settings page, and also provides an accompanying online catalog page maintained by community PRs with fixed commit installation targets. Below, we introduce its positioning, capabilities, and installation usage.

What Is This

dsh-skin-market is a skin marketplace embedded within the DSH settings page, maintained by kingOfSoySauce. The project has about 82 stars and 7 forks on GitHub, and is categorized as “Fun Customization” on SkillHub.

The marketplace has collected over a hundred DSH Web skins; the catalog is validated by schema and includes manual review and community submission entries. Besides the “Settings → Skin Market” within the plugin, there is also an independent online page at kingofsoysauce.github.io/dsh-skin-market for browsing and previewing. The npm package name is dsh-skin-market, the current repository version is 0.1.45, and the license is MIT.

Core Features

Skin Lifecycle

Within the DSH Web profile, the marketplace invokes DSH’s profile plugin manager to complete:

  • Browsing community skins in the catalog (preview images, descriptions, compatibility notes)
  • One-click install, enable, disable, update, and uninstall
  • For pure frontend skins that only contain dsh.client, after installation, it idempotently writes the audited rowId and package registration; upon uninstallation, these are removed together

It supports both complete plugins with dsh.bundle and skin packages that only have dsh.client.

Online Catalog and Cache

Installed marketplace plugins do not need to be upgraded to see newly added skins:

  • When opening the marketplace, the Host pulls the latest catalog.json from GitHub Pages
  • After the page opens, it silently checks every 5 minutes; it checks immediately when the window regains focus
  • The browser caches the latest valid catalog in IndexedDB; when there is no cache, it first displays the cache or built-in catalog, then verifies the remote data in the background
  • The list initially renders 20 items, and appends 20 more each time when nearing the bottom; search and sorting cover the entire catalog

Remote catalogs must pass schema, unique ID, package, rowId, repository address, and fixed commit installation target verification before entering the installable process. If verification fails, it falls back to the cache or the plugin’s built-in catalog.

Submission and Review

The single source of truth for community skins is one YAML per skin under the registry/skins/ directory in the repository; data/catalog.json is generated by CI, and no manual changes are needed in PRs. To submit a skin, you can use the “Submit Skin” option within the marketplace or the Agent prompt in the README to create a new entry per registry/skin.schema.json and open a PR.

Submission requirements include: a publicly installable DSH Web skin repository, installation targets fixed to the full 40-character commit SHA, clear package, row ID, license, and compatibility range, and real interface screenshots within the repository. The marketplace also displays “repository health” check results such as README screenshots, DSH version declarations, and one-click install metadata for improvement suggestions, which do not represent official security certification.

Plugin Self-Update

When a higher version is available on npm, an update entry appears to the right of the “Settings → Skin Market” title; you can also update by executing the same dsh plugin add command as installation. After updating, you need to restart DSH Web.

Installation and Activation

Before installation, please close other skin/theme plugins to avoid conflicts with appearance bundles other than @deepseek-ai/dsh-base and @deepseek-ai/dsh-web-app.

The official command installs to the web profile:

dsh plugin --profile web add "dsh-skin-market@latest"

After installation, restart DSH Web and enter from “Settings → Skin Market”. The installation depends on pnpm in the profile; if errors like pnpm is not recognized, package manifest missing, or allowBuilds related issues occur, you can follow the “When installation fails, you can let DSH troubleshoot itself” section in the README, providing the complete error to the DSH Agent to check pnpm, workspace, and build approval items step by step.

The README also provides an Agent prompt for pre-installation conflict checks: it first read-only checks the package.json, cordis.patch.yml, and enabled bundles in the web profile; if other skin plugins are found, it pauses and prompts to disable them; if there are no conflicts, it then executes the above command.

Typical Usage

Installing a Skin from the Marketplace

  1. Open DSH Web “Settings → Skin Market”, or first visit the Online Skin Market to preview.
  2. Search or sort in the list, click into the details to view preview images, compatibility, and repository health hints.
  3. Click install; the marketplace will invoke plugin add with the fixed commit SHA from the catalog as the installation target.
  4. Enable the skin in the marketplace; if you need to switch back to the default or another skin, disable or switch in the same interface.
  5. When a skin has an update, perform the update in the details or list; to uninstall, remove the skin dependency and registration items from the profile.

Submitting a Custom Skin to the Marketplace

After preparing a public GitHub repository, provide the submission prompt from the README to the DSH Agent, replacing <你的皮肤仓库地址> with the real address. The Agent should read-only check the skin package, parse the 40-character commit SHA, add a new YAML under registry/skins/ according to the schema, run npm run registry:check and tests, and then submit a PR to kingOfSoySauce/dsh-skin-market. Submission does not equal endorsement by DSH officials or the security team.

Fixing the Built-in Catalog for Local Skin Development

After writing entries locally to registry/skins, by default it will still request the remote catalog on GitHub Pages. For debugging, you can set this before starting DSH Web:

DSH_SKIN_MARKET_LOCAL_CATALOG=1 dsh web

The marketplace will use the data/catalog.json from the current build package and will not initiate remote requests; installation and lifecycle logic still follow the complete process. After verification, remove this variable to confirm that the online catalog behavior is unaffected.

Use Cases and Notes

Who Is It For

  • Developers who want to quickly try community themes in DSH Web without manually assembling github:owner/repo#commit installation strings
  • Authors maintaining DSH skin repositories who hope to enter the marketplace catalog through standard registry PRs
  • Users who need to manage multiple skins within the same profile (note that only one appearance plugin should be enabled at a time)

Compatibility

The README states it currently targets DSH Web 0.1.0-rc.6. As of 2026-08-17, the maintainer has verified the marketplace 0.1.15 and example skins together with smoke tests; the compatibility and security of each third-party skin in the catalog need to be assessed by yourself. When a DSH version declaration is missing, the page will prompt a risk but will not individually block marketplace installation.

Security and Permissions

The plugin runs with the current DSH process permissions; installation and updates will modify the dependencies and bundles of the web profile. Before installation, you should read the source code and license of the target skin repository; the marketplace displays stars, topics, etc., only for discovery and sorting, not indicating audited security. Submission and “repository health” checks also do not replace your own security judgment.

Other Notes

  • On Windows, installation strings containing & like github:…#commit&path:/… should not be directly passed to dsh plugin add under cmd.exe; prefer using the marketplace one-click install, or follow the README to use PowerShell pnpm add to the profile directory.
  • The skin marketplace is part of the community ecosystem; the SkillHub directory and DeepSeek /幻方 have no official affiliation and it is not an official app store.

Links