dsh-plugin-background
Background image plugin for the DeepSeek Harness web UI (
dsh web).
Pick a local image as the background of the whole interface, adjust a theme-aware readability matte, or clear it — anytime, from a button at the bottom of the sidebar. The image is compressed client-side and persisted in IndexedDB, so it survives restarts with zero server-side storage.
⚠️ Third-party community plugin — not an official DeepSeek product. Built for
deepseek-ai/deepseek-harness.
(Add a screenshot under docs/ and reference it here once you have one.)
Features
- 🖼️ Upload any local image (PNG / JPG / WebP) as the full-UI background
- 🌗 High-quality client-side compression (up to 4096 px edge, WebP-first, smooth scaling)
- 🎚️ Theme-aware readability matte (0–80 %, white in light mode / dark in dark mode)
- 🧹 One-click clear, back to the default theme
- 💾 Persisted in IndexedDB — large images, survives restarts, no server involved
- ⚡ Hot-reload friendly (
pnpm run dev:webwatcher), HMR-safe style/theme cleanup
How it works
- Pure browser-side Cordis client plugin registered in the
sidebar.footer.actionslot. - The background is applied by overriding the
--dsw-alias-bg-basetheme token viaThemeRuntime.overrideTokens— the root app frame'sbackgroundvalue. The chat column is transparent, so the image shows through; the sidebar stays opaque for readability. - The readability matte is a
color-mixlayer over the base palette token (white in light mode / dark in dark mode), so text stays readable over any image; no DOM selectors are touched.
Requirements
- A running
dsh webprofile (DeepSeek Harness, ≥ 0.1.0-rc.6) pnpm(ornpm execwith a writable cache dir)- A Chromium/Firefox-class browser
Usage
- Start
dsh weband open the GUI. - Click the Background button at the bottom of the sidebar (next to Settings).
- Choose a local image — it is applied immediately.
- Use the matte slider to balance readability; click Clear background to reset.
Development
git clone <repo-url> && cd dsh-plugin-background
node build.mjs # build once → dist/client.js
node build.mjs --watch # rebuild on src/client.js changes
src/client.jsis the only file you normally edit (plain JS,React.createElement, no JSX/TS).dist/client.jsis committed on purpose so users can install without building.- After changing
src/, rebuild, then restartdsh web(or run thepnpm run dev:webwatcher from the harness checkout for hot reload).
Uninstall
cd ~/.dsh/profiles/web
pnpm remove dsh-plugin-background
# remove the ui-background row from cordis.patch.yml (if manual)
dsh web
No comments yet. Be the first to write one.