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/pet-bridge
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-aiexists 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 aspeerDependencies: "*"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