DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Background Swapper — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
B

dsh-background-swapper

Background Swapper

DeepSeek Harness 插件:将照片设为 Harness 的背景,为照片库命名并分页浏览,还可对上层界面进行着色、模糊或淡化处理。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:DevTarlow/dsh-background-swapper#819ee767d55d2e4eeae8a6bb4208910155f62555
README兼容性版本
The DeepSeek Harness with an ocean photo behind the interfaceThe DeepSeek Harness with a blurred space photo behind the interfaceThe Background panel: the current photo, the upload area, the Appearance sliders, and the Recent library

兼容性与来源证明

Background Swapper 以 dsh-background-swapper 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/28

版本

0.2.0stable
2026/9/28

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/28
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Ab Chartdsh-ab-chart带有绘制其调用的浏览器卡片的图表渲染工具,封装在一个可发布的插件包中Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义

README

Background Swapper

Put your own photo behind the DeepSeek Harness.

The DeepSeek Harness with an ocean photo behind the interface The DeepSeek Harness with a blurred space photo behind the interface

Two different backgrounds. The space photo on the right has Blur turned up.

Swap Background sits just above Settings in the left sidebar. Click it and a small panel opens where you add a photo, give it a name, and keep a set of favorites. Three presets set the balance between the interface and the photo in one click, five sliders fine-tune how the photo looks and how much of it shows through, and any balance you like can be saved under its own name.

What you can do

  • Add a photo. Drop one on the panel or pick a file, name it, and it becomes your background.
  • Keep a library. Every saved photo is listed in Recent, newest first, six to a page. Click one to switch to it.
  • Rename or delete. A pencil renames an entry, a bin deletes it, and Remove all photos empties the library.
  • Presets. Wallpaper, Glass and Solid set all three opacity sliders at once, and the one you are on stays lit. Tint and Blur are left alone, so trying a preset never undoes a photo you tuned.
  • Save your own look. Save current in the same row keeps the three opacities under a name you choose, so you can try Glass and get your own balance back in one click. Your looks sit in the row beside the shipped ones, each with a small × to remove it, and up to six are kept.
  • Background opacity. How solid the page behind everything is. Lower it and the photo fills the open space; at 0% the photo is bare. It starts at 20%.
  • Element opacity. How solid the cards, inputs and menus over that page are. Raise it to keep text readable while the photo stays bright behind them. It starts at 85%.
  • Sidebar opacity. How solid the left column is. It moves on its own, so the navigation can stay readable while the panels go glassy, or the other way round. It starts at 85%.
  • Tint. One slider from Darken 100% to Lighten 100%, for when text is hard to read over a bright photo.
  • Blur. Softens the photo, from 0 to 24 pixels.
  • Turn off. Hides the photo and puts the interface back the way it was. Nothing is deleted.

Install

You need the DeepSeek Harness, running either in a browser or in the desktop app.

  1. In the Harness, open Plugins in the left sidebar.

  2. Press Install.

  3. Paste this repository's address:

    https://github.com/DevTarlow/dsh-background-swapper
    
  4. Install it, then refresh the page.

If you would rather work from a local copy, clone the repository and paste the folder's full path instead. The install dialog accepts a GitHub address, a package name, or a local folder.

The plugin is added to your Harness, so it stays available in every session until you remove it.

Using it

The Background panel: the current photo, the upload area, the Appearance sliders, and the Recent library

  1. Click Swap Background above Settings.
  2. Under Add a photo, drop an image on the dashed box or press Choose file. A photo longer than 2560 pixels on a side is scaled down first, and the panel tells you when that happened.
  3. Type a name and press Save. The photo is stored and becomes your background straight away.
  4. Start from a preset in Appearance — Wallpaper, Glass or Solid — then adjust the sliders above the library. Everything applies as you drag and is saved a moment after you let go, so there is no Save button for any of it. Once you like what you see, press Save current, type a name and press Save to keep that balance for later.
  5. Click any thumbnail in Recent to switch photos. Turn off clears the current one without deleting it.

Press Escape or click anywhere outside the panel to close it.

Your photos

Your photos live with the Harness, not inside the plugin:

~/.dsh/storages/background-swapper/
├── index.json      your names, the current photo, the slider settings, and your saved looks
└── images/         one file per photo

The Harness keeps its data in ~/.dsh unless you have moved it. On Windows the folder is %USERPROFILE%\.dsh\storages\background-swapper.

Because the photos are stored there, the same library and the same look appear in every browser you open and in the desktop app, as long as they are pointed at the same Harness.

To back your library up, copy that folder somewhere safe. To start over, delete it: the plugin recreates it the next time it loads.

Optional settings

These four values are read from cordis.patch.yml when the plugin loads. Change one and restart the Harness.

SettingDefaultWhat it does
pageSize6How many photos show per page in Recent.
maxImageBytes16777216 (16 MB)The largest photo that can be uploaded.
maxDimension2560The longest side a photo is scaled down to before it is saved.
dataDiremptyWhere the photos go. Empty means the folder shown above.

If you would rather keep your own values, put the same override in your Harness profile's patch file instead, so a later reinstall cannot replace it:

- id: background-swapper
  config:
    pageSize: 9
    maxImageBytes: 33554432

A new install starts on the Wallpaper preset — Background opacity 20%, Element opacity and Sidebar opacity 85% — with Tint None and Blur off. The Reset link beside each slider returns it to those values, which is the balance Wallpaper sets. Looks you save start empty and live in index.json with the rest of your settings.

Common questions

The photo is too faint, or too strong. Use Background opacity. Lower shows more photo in the open page, higher makes that page more solid. At 100% the photo only shows through the panels and the sidebar; with Element opacity and Sidebar opacity at 100% as well nothing shows at all, and the panel says so.

The interface is too see-through to read. Raise Element opacity, or Sidebar opacity if it is the left column that is the problem. Either solidifies its own layer without taking the photo off the page, so you no longer have to choose between the two. The sliders fade different layers: Background opacity the page everything sits on, Element opacity the panels over it, Sidebar opacity the left column beside it.

Text is hard to read over the photo. Set Tint to darken it, or Blur to soften it. Both keep the effect; raising an opacity slider only hides more of the photo behind that layer.

What do the presets change? Only the three opacity sliders — the shipped ones and anything you save. Tint and Blur stay exactly where you left them, so trying a preset never undoes a tuned photo. Solid keeps the photo selected but hides it behind a fully opaque interface; Turn off clears the photo instead. Both leave it in Recent, and one click brings it back.

I saved a look. Where did it go? Into the preset row, beside Wallpaper, Glass and Solid, with a small × on its right to remove it. It is stored in index.json with the rest of your settings, so it is there in every browser and in the desktop app. Six is the most that are kept.

Why does the sidebar look darker than the rest? Two see-through surfaces sit behind the sidebar and only one behind the main area, so at the same slider setting it always reads a little more solid. Lower Sidebar opacity to even them up.

Does it work in another browser? Yes. The library and the settings are stored with the Harness, so any browser pointed at it sees the same thing.

Can each session have its own background? No. One background applies to the whole app.

What image types can I use? PNG, JPEG, WebP, GIF and AVIF. Animated GIFs keep animating. SVG files are refused.

My photo looks different after uploading. Anything longer than 2560 pixels on a side is scaled down before it is saved, and a scaled photo is re-encoded, which drops camera metadata such as the date and location. Animated GIFs are never scaled.

Removing it

Open Plugins, find dsh-background-swapper, and uninstall it. The interface goes back to normal immediately. Your photos stay in the folder above, so delete that folder yourself if you also want the disk space back.

For developers

Two files plus a storage helper, and no build step.

FileRuns inOwns
index.jsthe Harnessapply(ctx, config) and the /__background-swapper routes
store.jsthe Harnessindex.json and images/ on disk
client.jsthe browserthe background painter and the sidebar panel

Things to know before changing it:

  • It imports nothing it is not given. The Harness side uses only Node built-ins and the browser side only React, which the Web shell already provides. That is what lets it load on a released dsh with no build.
  • The photo is painted on html::before, a fixed pseudo-element behind everything, so the application's own elements are left alone.
  • The see-through effect redefines the theme's background variables, using color-mix() of the same palette tones they already point to. The aliases are split into the ground the frame and body paint, the panels raised over it, and the sidebar column, and each slider fades one group. No application class name is targeted, so renaming one breaks nothing. A saved look is exactly that group of alphas plus a name, which is why loading one changes nothing else.
  • Everything the plugin adds is React-rendered, so unloading it restores the interface exactly. Nothing writes to document.body or appends a stylesheet by hand.
  • Uploads are validated and ids are looked up in the index, so a request can never name a path on disk. maxImageBytes is enforced on the Harness side and maxDimension in the browser.
  • PATCH /state refuses a field it does not know instead of ignoring it. The two halves ship together but load separately — a browser half a version ahead would otherwise have its write answered 200 and dropped, which the panel shows as a setting that saved and then vanished at the next reload.
  • The slider defaults live in one place, DEFAULT_SETTINGS in store.js, and are served with every GET /list so the panel's Reset links cannot drift away from them. The panel's Wallpaper preset repeats those same numbers, so a fresh library and a Reset both light it up: change one and the other belongs in the same commit.
npm test

Both harnesses run in under a second and need no browser. test/host.test.mjs mounts the routes on a bare node:http server and drives the whole surface over real HTTP. test/client.test.mjs loads the browser bundle against a stub module loader and checks the registrations, the exact CSS the painter emits, and the panel's preset row: loading a shipped look, saving one of your own, and removing it.

Edit client.js and refresh the page. Edit index.js, store.js or cordis.patch.yml and restart the Harness. AGENTS.md has the full loop.

License

MIT.