Introduction¶
The philosophy of DeepSeek Harness (hereinafter referred to as DSH) is “everything is a plugin,” but the visual details of the Web UI are not part of its default capabilities. To add a background image to the interface, a common approach is to directly modify the static files in website/public or apps/web/public. These kinds of changes exist outside the plugin system and are difficult to manage.
Below is an introduction to dsh-webui-background. It is a standalone plugin installed via Harness’s composite packages and the client plugin extension point. It does not modify or replace the aforementioned files; both the background image settings and the image itself are saved by the plugin.
What is this¶
dsh-webui-background is maintained by lx963, licensed under MIT, and is currently at version 0.1.0-rc.3. Its positioning can be summarized in one sentence: providing a configurable background image for the DeepSeek Harness Web UI. Once installed, a “Web UI Background” tab appears in the settings page. Select an image, adjust the mask, save, and it takes effect immediately.
Core Features¶
- Embeds a “Web UI Background” tab in the settings page, supporting image upload, drag-and-drop, and preview.
- Supports PNG, JPEG, GIF, and WebP. Formats are identified based on file content, with a maximum size of 20 MiB per image.
- Supports separate mask adjustments for light and dark modes, taking effect immediately after saving.
- Allows temporarily disabling the background while keeping the image, or deleting the image and restoring the default interface with a single click.
- Settings and images are saved independently per Harness profile, with multiple profiles not affecting each other.
- Remote pages can view settings, but only pages on the loopback address can modify them, preventing remote web pages from overwriting settings on trusted hosts.
Installation and Enablement¶
Requires DeepSeek Harness 0.1.0-rc.5 or higher. The plugin relies on two extension points: external composite packages and browser client plugins, so older versions are not supported.
Execute the following in the root directory of the DeepSeek Harness source code repository:
pnpm dsh plugin --profile web add dsh-webui-background@next
pnpm dsh web
The first command installs the plugin with the @next tag into the web profile, and the second starts the Web UI. If the Web UI is already running, please restart it, then open “Settings → Plugins → Web UI Background” to select an image and save.
Two command-line details:
- If
dshis installed globally and added to the systemPATH, you can omitpnpmat the beginning of the command; if PowerShell indicates thatdshis not recognized, usepnpm dsh. Note thatnpm dshis not a valid npm command. - The uninstall command is as follows. Uninstalling does not actively delete profile data; to clear the image, you must first click “Restore Defaults” on the plugin page:
pnpm dsh plugin --profile web remove dsh-webui-background
Install from Source¶
git clone https://github.com/lx963/dsh-webui-background.git
cd dsh-webui-background
pnpm install
pnpm test
pnpm build
# Switch to the DeepSeek Harness source code repository root directory and pass the absolute path of the plugin source code
cd /path/to/deepseek-harness
pnpm dsh plugin --profile web add /path/to/dsh-webui-background
The first three steps are installing dependencies, running tests, and building. Finally, the local plugin is installed into the web profile in the DSH repository root using an absolute path. The build environment requires Node.js ^22.19.0 || >=24 and pnpm 10; the published packages are generated in the prepack phase, including Host ESM, browser CJS, and type declarations.
Where is the Data Stored¶
Data for each profile is located in data/webui-background/ under the profile’s directory:
state.jsonsaves the toggle, mask, and revision number;- Images are saved as
background-<sha256>, using the content hash as the internal filename without an extension.
You can use standard extensions like .webp or .png for the source file. The plugin reads the content to automatically identify the format. Not having an extension after saving is normal behavior—the browser obtains the correct Content-Type via the plugin’s /webui-background route and does not rely on disk extensions. Each profile retains only one current image.
Security and Limitations¶
- SVG is not supported because it can contain active content.
- Images must pass magic number validation; file extensions and MIME types passed by the browser are not trusted bases.
- Image responses use
no-storeandnosniff; the revision number in the URL is only used to refresh the current image on the page. - Each profile retains only one current image. An optimistic revision number is used to prevent multiple pages from silently overwriting each other’s settings.
Suitable Scenarios and Precautions¶
Suitable for developers who use the DSH Web UI long-term and want to adjust the interface appearance. If work and personal environments are distinguished by profile, two profiles can use different background images without interference.
A few reminders before getting started:
- The plugin runs with the permissions of the current DSH process. Before installing any third-party plugin, it is recommended to read the source code and confirm the license (this plugin is MIT) before deciding whether to install it.
- SVG is not supported; you need to convert the image to PNG, JPEG, GIF, or WebP first.
- A single image has a maximum size of 20 MiB.
- Uninstalling does not delete profile data; to clear the image, click “Restore Defaults” on the plugin page first.
Conclusion¶
dsh-webui-background turns the trivial task of “changing the background” into a standard plugin: it does not modify source files, isolates by profile, is remote-read-only, and validates based on file content. For DSH users who want to fine-tune the Web UI appearance, this is a very low-cost option.
- Community Plugin Directory Page: https://www.skillhub.cn/plugins/lx963/dsh-webui-background
- GitHub Repository: https://github.com/lx963/dsh-webui-background
SkillHub is an independent community directory site with no official affiliation to DeepSeek or Fangfang, serving only for search and indexing.