Skip to content
dsh-market Browse plugins GitHub 中文

wsxwj123/dsh-plugins#skin-gallery

Nine complete dsh-web-ui skin replicas with custom skin-pack import, preview, apply, delete, restore-default, and readability fixes for bubbles and code blocks.

Stars ★ 7 Category Themes & Appearance Listed 2026-08-15

Install

Inside DeepSeek Harness, with dsh-market

dsh plugin --profile web add dshmarket

Or from the command line

dsh plugin --profile web add github:wsxwj123/dsh-plugins#path:/packages/skin-gallery

Installing runs third-party code with your own permissions — it can read your files, use your credentials and reach the network. Review the source first, and pin a commit (github:owner/repo#sha) when you can.

README

A plugin collection for DeepSeek Harness. Monorepo layout — each plugin lives in its own directory under packages/ and is installed independently.

中文说明:README.md

Plugins

Plugin What it does
dsh-appearance-gallery Appearance gallery: 15 theme families + 9 full dsh-web-ui skin replicas, merged into one plugin with a single settings entry. Supports custom theme JSON and custom skin package import.
dsh-turn-scrubber A turn cluster pinned to the right edge of the conversation — hover to ripple, click to jump to that user turn.
dsh-pet-bridge Pushes live dsh session state (thinking / reading files / running commands / done) to the cc-pet desktop pet.
dsh-session-manager Session deletion (5s undo + recycle bin) and an archive view (inspect / unarchive).
dsh-composer-tools Input enhancements: arrow-key input history, an instructions panel (global + project AGENTS.md/CLAUDE.md), and a 780-entry prompt library.

All plugins run on both macOS and Windows.

Upgrading from the old theme / skin plugins

dsh-theme-gallery, dsh-skin-gallery and dsh-skin-runtime have been merged into dsh-appearance-gallery; their directories no longer exist. If you have the old plugins installed, uninstall them first — otherwise dsh web fails to load a plugin whose directory is gone.

macOS / Linux:

dsh plugin --profile web remove dsh-theme-gallery dsh-skin-gallery dsh-skin-runtime
dsh plugin --profile web add "link:$PWD/packages/dsh-appearance-gallery"

Windows (PowerShell):

dsh plugin --profile web remove dsh-theme-gallery dsh-skin-gallery dsh-skin-runtime
dsh plugin --profile web add "link:$PWD\packages\dsh-appearance-gallery"

Restart dsh web and reload the page afterwards. Your appearance settings survive the upgrade: the merged plugin reuses the exact same storage keys, so the applied theme/skin and any imported custom themes or skins are preserved.

Installing

git clone https://github.com/wsxwj123/dsh-plugins
cd dsh-plugins
dsh plugin --profile web add "link:$PWD/packages/<plugin-dir>"

On Windows (PowerShell), use backslashes: "link:$PWD\packages\<plugin-dir>".

dsh-pet-bridge requires cc-pet to be installed first (it listens on 127.0.0.1:7779; no changes needed on the pet side). dsh-composer-tools needs pnpm install && pnpm build inside its package directory (lib/ is not committed).

Restart the running dsh web process after installing, and reload open pages. Do not start a second web server.

After installing, check whether ~/.dsh/profiles/web/node_modules/@deepseek-ai exists as a real directory. It should not. A real directory there means a second copy of the framework was installed into the profile, which splits Cordis / Tool Symbols and breaks tool calls (Cannot read properties of undefined). See deepseek-harness discussion #783. Every plugin here declares framework packages as peerDependencies: "*" precisely so the package manager never auto-installs a second copy.

Building

pnpm build
pnpm check

DSH runtime packages are declared as optional peer dependencies so a second copy of DSH/Cordis is never bundled into a plugin.

dsh-appearance-gallery/lib/client.js is generated by build.mjs and must not be hand-edited: DSH requires the bundle to register itself via window.__ModuleLoader__.load(...), and that registration wrapper exists only in the built artifact. node build.mjs --check is a read-only verification of the wrapper, the size ceiling and skin asset integrity — safe for CI.

Appearance gallery

15 theme families; light / dark / follow-system stays under DSH's own appearance setting. 9 built-in skin replicas (QQ2008, Windows XP, Minecraft, Hatsune Miku, Blue Fantasy, Dragon Heir, THS, Trading Terminal, Whale Song), each with try-on and apply.

Custom themes are CSS-variable injection only, no JS execution. Custom skins use a three-file controlled import (skin.json / client.js / optional a11y.css) with a hard rejection list for dangerous capabilities (eval, fetch, localStorage, document.cookie, …), a 256KB per-package ceiling, at most 8 custom skins, and a11y.css restricted to data: and relative url(). Themes and skins are softly mutually exclusive through the shared dsh-appearance-track-v1 key — at most one track drives the appearance at a time.

Full contract, state machine and the error-code table: see README.md.

License

MIT

Content from the project README on GitHub ↗