One-click skin switching for DSH Web settings: auto-detects installed themes, keeps exactly one active at a time, and falls back to the official look when all are off. Changes apply instantly and survive restarts.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:kinmat-A/dsh-theme-switch
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
DSH theme switch: auto-detects installed skin/theme plugins and offers one-click, official-style switching under Settings → Plugins → Skins.
Install
dsh plugin --profile web add github:kinmat-A/dsh-theme-switch
Restart dsh web afterwards (or install it from the dsh-market plugin, which hot-activates it), then open Settings → Plugins → Skins.
Usage
Switch skins from Settings → Plugins → Skins; after switching, refresh the browser page (Ctrl+F5) for the new skin to appear.
Screenshots
The skins tab (Settings → Plugins → Skins), dark theme:
Note: the themes shown in the screenshot are for display only.
Features
- Auto-detection: scans the profile's
dependenciesandbundles, recognizing skins by package name /skin.json/ bundle-patch rows. Missed skins can be added viaconfig.themes. - Mutually exclusive switching: clicking a skin's button enables it and disables all the others; clicking it again disables it.
- Official fallback: when every skin is off, the official DSH look applies automatically (the panel's "Official DSH skin" row has a matching button).
- Instant and restart-proof: switches are written to the home-layer patch
~/.dsh/cordis.patch.yml, which the dsh boot flow watches live and replays on every startup — no restart needed.
Development
pnpm install # first time (needs network)
pnpm run build:client # build the client (tsdown)
Structure
lib/index.js— host entry (plain ESM, zero dependencies): skin detection, home-patch read/write, HTTP API.src/client/index.tsx→lib/client.js— official-style settings tab (--dsw-alias-*tokens + primitives).- API:
GET /@dsh-external/dsh-theme-switch/api/themes,POST …/api/toggle {id}(id: "__official__"disables every skin).
License: BSD-3-Clause
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-plugin-manager★ 8178
Plugin manager tab in DSH Settings → Plugins: install from npm or git with progress, enable/disable switches effective at next startup, conflict reconciliation with undo, and one-click hand-off to a fix session.
dsh-market/dsh-market★ 5004
Browse, search and install community plugins from inside DeepSeek Harness settings, with category filters, one-click updates, enable/disable, theme switching and configuration backup.
bradeGithub/DSH-Plugins-Marketplace★ 169
GitHub-topic-driven plugin & skill marketplace: a Settings page that browses the auto-collected registry (the whole dsh-plugin topic plus the skills index, CI-refreshed every 2 hours) with one-click install, type detection, install-script and host-shadow-dependency safety confirmations, env-key management, and the STANDARD.md recognition spec.
kingOfSoySauce/dsh-skin-market★ 169
Native skin marketplace and lifecycle manager that discovers community skins, displays previews and compatibility status, and provides verified one-click or manual installation paths.
awesome-dsh-plugin/dsh-find-plugin★ 156
Find plugins without leaving the agent: search this curated registry by keyword or category, with ready-to-run install commands.
Sanqi-normal/dsh-webui-market-plugin★ 104
In-harness plugin market for the dsh web GUI: browse the awesome-dsh-plugin.com catalog and install/uninstall plugins into a profile from Settings → Plugins → Plugin Market.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.