deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
leavestring/awesome-dsh-background-plugin
DSH Web 背景个性化插件:上传自己的图片(JPG / PNG / WEBP / GIF,浏览器端自动压缩到 1600px 以内)或一键切换极光、余烬、宣纸三种预设氛围;实时预览所见即所得,支持细调图像存在感、暗色遮罩、柔焦、适配方式与焦点位置;上传即自动保存到 DSH 设置,重启后原样恢复,浅色 / 深色主题均正常;侧栏、消息气泡、输入框保持原样不遮挡,浮层菜单不受影响;全程本地处理不上传任何服务器,关闭开关或一键恢复默认即可完全移除;内置中英文双语界面。
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:leavestring/awesome-dsh-background-plugin
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
为 DSH Web 提供可上传图片 / 预设氛围的背景设置插件,设置持久化,重启不丢失。
简体中文 | English
DSH Web 默认只有一套主题色背景。如果你和我一样,希望自己的工作空间不再千篇一律,可能已经试过:
这个插件通过 DSH 官方的 Cordis 插件机制,把「背景」变成设置页里的一个正式设置项,并解决了实现过程中最棘手的三个坑:
expose-namespace.mjs 一键脚本,把 ui-background 加入白名单;暗色模式 + 自定义图片背景:

浅色模式 + 自定义图片背景:

准备好 Node.js(≥ 18)、pnpm 和 DSH 后,运行一个安装脚本即可自动完成「打包 → 安装 → 白名单」:
# 1. 拿到代码:GitHub 页面点 Code → Download ZIP 解压,或执行:
git clone https://github.com/leavestring/awesome-dsh-background-plugin.git
cd awesome-dsh-background-plugin
# 2. 一键安装(默认装到 web profile):
node scripts/install.mjs
# 3. 完全停止原来的 DSH 进程,再重新启动:
dsh web
然后打开 http://127.0.0.1:3080(Ctrl+F5 强刷,清掉旧缓存),进入 设置 → 通用设置 → 背景 即可使用。
装到其他 profile:
node scripts/install.mjs --profile 你的profile名如果提示
dsh命令找不到(你是用 npx 启动 DSH 的):
- Windows PowerShell:
$env:DSH_CMD = "npx @deepseek-ai/dsh"后重新运行;安装后用npx @deepseek-ai/dsh web启动- macOS / Linux:
export DSH_CMD='npx @deepseek-ai/dsh'后重新运行;安装后用npx @deepseek-ai/dsh web启动安装脚本目前自动识别常见的 npm/npx DSH 安装位置。若白名单步骤提示找不到目标,请参考下方“手动安装”的第 3 步显式传入文件路径。
如果你现在正通过 DSH Web 与 Agent 对话,可以把下面这段提示词直接发送给 Agent:
请帮我安装 DSH Background 插件。
仓库地址:
https://github.com/leavestring/awesome-dsh-background-plugin.git请按以下要求操作:
- 检查 Node.js、pnpm、DSH 版本,以及当前实际使用的 DSH 安装位置;
- 克隆仓库并进入
awesome-dsh-background-plugin目录;- 将插件打包并安装到
webprofile;- 检查插件是否已加入 Web profile 的 dependencies 和 bundles;
- 检查当前实际使用的
dsh-host-apiproxy是否已暴露ui-background;- 如果尚未暴露,只修改当前 DSH 实际使用的安装副本,不要随意修改其他 npx 缓存;
- 安装过程中不要启动第二个 DSH Web 服务;
- 完成安装并验证结果后,提醒我需要手动重启 DSH;
- 如果关闭当前 DSH 会中断你的会话,请不要替我关闭或重启,而是把正确的重启命令告诉我;
- 如果任何步骤失败,请停止操作并报告具体错误,不要反复执行或尝试破坏性修改。
[!IMPORTANT] 如果执行安装的 Agent 就运行在当前 DSH 中,关闭 DSH 会立即中断 Agent 会话。因此,Agent 安装完成后通常不会替你关闭或重启当前 DSH。 看到 Agent 报告安装成功后,请你回到启动 DSH 的终端,手动停止原来的 DSH,然后重新启动。
如果你平时直接使用 dsh:
dsh web
如果你平时通过 npx 使用 DSH:
npx @deepseek-ai/dsh web
重启完成后,打开 http://127.0.0.1:3080,按 Ctrl+F5 强制刷新,然后进入:
设置 → 通用设置 → 背景
Agent 安装本质上仍然执行本页的安装流程,只是由 Agent 自动检查环境、执行命令并验证结果。请仅在可信的 Agent 环境中安装可信仓库。
第 1 步:打包插件 —— 把源码打包成可安装的 .tgz:
pnpm pack --pack-destination .
第 2 步:安装到 DSH profile —— 装进你的 DSH 配置:
dsh plugin --profile web add ./awesome-dsh-background-plugin-0.1.9.tgz
第 3 步:暴露命名空间(重要,当前 DSH 安装副本通常只需一次)
DSH 的 dsh-host-apiproxy 只允许白名单内的 settings 命名空间被浏览器读写。命名空间不在白名单时,保存会被拒绝(settings-not-exposed),表现就是:点「启用」后一保存又变回「未启用」。DSH 升级、清理 npx 缓存或更换安装方式后,可能需要重新执行这一步。
运行仓库内辅助脚本,把 ui-background 加入白名单(幂等,可重复运行):
node scripts/expose-namespace.mjs
如果脚本找不到 dsh 安装位置,手动传入文件路径:
node scripts/expose-namespace.mjs <path-to>/@deepseek-ai/dsh-host-apiproxy/lib/index.js
手动改法:在上面的文件里,往
WEB_SETTINGS_NAMESPACES数组("ui-theme"之后)加入"ui-background"。
第 4 步:重启并刷新
dsh web
打开 http://127.0.0.1:3080(必要时 Ctrl+F5 强刷),进入 设置 → 通用设置 → 背景。
| 现象 | 解决 |
|---|---|
提示 pnpm not found |
安装 pnpm:npm install -g pnpm(或用 Corepack:corepack enable) |
提示 dsh 命令找不到 |
设置 DSH_CMD 环境变量后重跑(见上方一键安装说明) |
| 点「启用」保存后又变回「未启用」 | 白名单未生效:重跑 node scripts/expose-namespace.mjs,或按手动安装第 3 步手动添加 |
| 页面还是旧样子 / 背景不显示 | Ctrl+F5 强刷(浏览器缓存了旧版本),或重启 dsh web |
| 上传的图片重启后消失 | 确认插件是 0.1.6 及以上(上传即自动保存);旧版本需点「保存背景」 |
lib/index.js)通过 @deepseek-ai/dsh-settings 注册 ui-background 命名空间与 Schemastery schema,让背景设置成为 DSH 设置体系的一部分。lib/client.js)在 settings.general.item 插槽注册「背景」设置行,并通过 DSH settingsScope 读写设置,与官方设置项使用同一套持久化机制。position: fixed; z-index: 0 的图层(#dsh-background-layer),始终位于页面最底层。背景激活时:--dsw-alias-bg-base 覆盖为 transparent,让对话主区、详情面板、布局框架透出背景;createPortal 渲染到 <body> 的下拉菜单(如消息「更多」菜单)保持原有定位与层级,点击不受影响。~/.dsh/settings.yaml),不会发送给第三方图片服务。awesome-dsh-background-plugin/
├── lib/
│ ├── index.js # Host 插件:注册 ui-background 设置命名空间与 schema
│ └── client.js # 浏览器端:背景图层、设置行、上传压缩、持久化
├── scripts/
│ ├── install.mjs # 一键安装脚本(打包 + 安装 + 白名单)
│ └── expose-namespace.mjs # 辅助脚本:把 ui-background 加入 Host 暴露白名单
├── screenshots/ # 仓库展示截图
├── cordis.patch.yml # DSH bundle 补丁:注册插件条目
├── package.json # 插件元数据(dsh.client 注入信息)
├── CHANGELOG.md
└── LICENSE # MIT
node --check lib/client.js && node --check lib/index.js # 语法检查
pnpm pack --pack-destination . # 打包
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。