Preface¶
DeepSeek Harness (dsh) treats models, tools, sessions, and UI as plugins, with the core philosophy of everything is a plugin. After launching the web interface, you’ll spend most of your time looking at the conversation area, trace area, sidebar, and settings page. While you can change the interface skin, the background colors of each workspace often remain the same set.
If you have used VS Code’s shalldie.background extension, you will know that the editor, sidebar, and panel can each have their own custom background images. dsh-plugin-background does something similar: it draws backgrounds for different areas of DeepSeek Harness’s Web GUI, supports image carousel, and muted looping videos. It is maintained by gameswu, licensed under MIT, and listed in the community directory under “Themes & Appearance”. As of August 18, 2026, the GitHub repository has approximately 10 stars, and the current version is 0.2.1.
First, it needs to be clarified: DeepSeek Harness itself is an open-source agent runtime developed by DeepSeek AI, and it is still in developer preview at this time, so the interface may change without backward compatibility. The installation commands used below come from the community site DeepSeek Harness Plugin Directory, which is an independent index and has no official affiliation with DeepSeek / Magic Square. Do not treat it as an official app store.
What is this¶
One-sentence positioning: dsh-plugin-background is a background plugin that runs on the Web interface, allowing you to set independent wallpapers for the conversation area, trace area, sidebar, and settings page, and hosts a configuration card in Settings → Plugins.
The repository address is gameswu/dsh-plugin-background. The package.json declares dsh.bundle (patch file cordis.patch.yml) and dsh.client.platform: web, which means it is a composite package with a built-in patch layer, only targeting the web client, and will not draw wallpapers for headless or pure terminal sessions.
The problem it solves is very specific: the default Web UI has no entry to change wallpapers per area; after installing it, you don’t need to manually modify CSS or change the Harness source code. The configuration is stored in the browser (the localStorage key dsh.background, local files are stored in IndexedDB), and is not written into the profile’s YAML.
Core Features¶
The capabilities that match between the repository README and the source code (src/constants.ts, src/types.ts, src/locales.ts) are as follows.
- Four built-in areas each have their own independent background: conversation area, trace area, sidebar, and settings page. Each area can be toggled on/off, and can have its own image group or video group. All are disabled by default, and you need to add your own media files to enable the background.
- Only one type of media is allowed per group. Image groups are rotated at set intervals like a slideshow; video groups play muted
<video>loops. Images and videos cannot be mixed in the same group, and mixed entries will be skipped. GIFs are treated as images, and the browser will play their animations natively. Video extensions recognized aremp4,webm,mov,m4v,ogv. - Three sources for media assets: paste URLs (separated by commas, semicolons, or newlines), select local images/videos, or select an entire folder. Local files are stored in IndexedDB as Blobs, not converted to base64, and will remain after page refresh.
- Each image can have its display mode adjusted individually: Fill (cover), Fit (contain), Stretch, Tile, Center, Custom. In custom mode, you can also modify position, scale, width/height, repeat mode, rotation, and border radius. Opacity and blur are also set per image, with a default opacity of 0.9. Videos cannot be tiled.
- The carousel interval defaults to 15 seconds, setting the interval to 0 is equivalent to pausing. You can play in order or randomly, and manually switch to the next image. Preloading is done before switching, with cross-fade transitions to avoid blank flashes.
- When you select multiple areas in the surface list and add media, the same batch of images can be applied to multiple areas at once. Dragging one row onto another will merge the two areas into a single cross-area wallpaper (like multi-monitor wallpaper); dragging it out or clicking split will restore them to separate independent areas.
- Compatible with the author’s dsh-plugin-vscode-sidebar. After installing that sidebar plugin, the entire right panel, entire bottom panel, and each individual tab inside them will become surfaces that can have independent background images applied.
Installation and Activation¶
The installation commands provided on the community directory page are as follows, run them in the DeepSeek Harness terminal:
dsh plugin add github:gameswu/dsh-plugin-background
This is the original text from the directory page, do not construct the command manually using the repository name. The plugin runs with the permissions of the current dsh process, and may execute code during installation. Please review the source code repository and license before installing; if you need reproducible installations, pin the commit hash.
The README has more complete instructions: this package forwards parameters to pnpm for the corresponding profile, and automatically registers itself in dsh.profile.bundles, so you don’t need to manually edit the configuration. For web interfaces, it is recommended to explicitly specify the web profile and pin the commit. As verified on the main branch on August 17, 2026, the latest commit is 8660d41a4fb5cb320088b36b4109d055f598e077 (version 0.2.1, adapted for dsh 0.1.0-rc.7 plugin card registration in the settings namespace), you can install it like this:
dsh plugin --profile web add github:gameswu/dsh-plugin-background#8660d41a4fb5cb320088b36b4109d055f598e077
When installing from a local repository, replace the path with your cloned directory:
dsh plugin --profile web add <path>
When installing from GitHub, pnpm will run the package’s prepare script after installation to build lib/client.js. pnpm 10 and above reject execution of build scripts by default, so the first add will often fail, prompting you to add the package name to the profile’s pnpm-workspace.yaml before trying again:
allowBuilds:
dsh-plugin-background: true
Authorizing the build means allowing the package’s build script to execute on your machine during installation, only do this for sources you trust. The official CLI documentation has the same instructions for Git-hosted plugins.
After installation, restart the web interface:
dsh web
When installing from a local path and you already have build artifacts, you can hard-refresh the browser (Ctrl+Shift+R) after re-running pnpm build, without restarting the service every time.
Typical Usage¶
Open Settings → Plugins → Background, the card name is exactly “Background”. Follow the order of operations from the README:
- Click the area you want to configure in the surface list. You can check multiple rows to add media to multiple areas at once.
- Paste image or video links into the input box, or click “Select Image”, “Select Video”, or “Select Folder”.
- Click the thumbnail to enter the editor, adjust the display mode, opacity, blur, and for custom mode, adjust position, scale, and other parameters. You can set the carousel interval, order/random mode for the area, and click “Next” to switch images manually.
- Drag one area row onto another to merge it into a cross-area wallpaper; drag it out or click split to cancel the merge.
The configuration is saved in the current browser. If you switch browsers, clear site data, or use a different machine, the wallpapers will not follow your profile. When the browser storage is full, the interface will prompt that the changes have been applied but not saved, and you will need to delete some assets before trying again.
Applicable Scenarios and Notes¶
Who this is for: People who mainly work in dsh web, want separate backgrounds for the conversation area and trace area, or want to apply wallpapers to workspaces like in VS Code. Existing users of dsh-plugin-vscode-sidebar can also set separate wallpapers for the right/bottom panels and each individual tab. This plugin is useless for those only running headless instances or not opening the web interface.
There are several boundary conditions worth noting in this article to avoid users being unable to see the effect after installation:
- Only applies to the Web GUI. The
dsh.client.platformfield inpackage.jsonisweb. - Background groups cannot mix images and videos; videos default to muted and will not produce sound.
- DeepSeek Harness is still in developer preview. The commit message for this plugin’s
0.2.1version states: plugin cards are distributed under the settings namespace for rc.7, and the server must register an empty schema namedbackgroundfor the card to appear. If you cannot see the “Background” option in the settings page after upgradingdsh, first check if the repository has been updated to match the new version. - The plugin runs with the permissions of the current dsh process, and installing from GitHub will also run the
preparebuild script. Check the source code and MIT license before installing, and pin the commit hash if possible.
Summary¶
dsh-plugin-background brings the VS Code per-area wallpaper functionality to the DeepSeek Harness web interface: four built-in areas can have independent wallpapers or muted videos, local files are stored in IndexedDB, edited directly in the settings page, and two areas can be merged into a single cross-area wallpaper. It is a community MIT project maintained by gameswu, and is not an official DeepSeek skin.
Directory page: https://deepseek-harness-plugin.com/en-US/plugins/dsh-plugin-background/
GitHub: https://github.com/gameswu/dsh-plugin-background