🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

小蓝鲸换肤 swordordead/dsh-Veneer

DeepSeek Harness
swordordead44 天前有提交已提供中文文档扫描:含敏感能力

可视化调整界面背景字体与配色并保存主题

31.4/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add swordordead/dsh-Veneer
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/31·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 44 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(unknown · 2026/10/31) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-veneer(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 08:09:59

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 12 处,展示前 12 条)
  • 读取本地文件
    lib/index.js:105
    names = await readdir(ASSETS_DIR);
  • 写入本地文件
    lib/index.js:109
    await mkdir(imageDir, { recursive: true });
  • 写入本地文件
    lib/index.js:112
    await copyFile(join(ASSETS_DIR, name), join(imageDir, name), constants.COPYFILE_EXCL);
  • 写入本地文件
    lib/index.js:169
    await mkdir(imageDir, { recursive: true });
  • 写入本地文件
    lib/index.js:170
    await writeFile(join(imageDir, filename), body);
  • 读取本地文件
    lib/index.js:201
    const buf = await readFile(join(imageDir, filename));
  • 发起网络请求
    lib/index.js:402
    upstream = await fetch(baseUrl + "/chat/completions", {
  • 写入剪贴板
    lib/client.js:974
    navigator.clipboard.writeText(css).then(() => showNote("✅ CSS 已复制到剪贴板"), copyFallback);
  • 写入剪贴板
    lib/client.js:1222
    navigator.clipboard.writeText(text).then(
  • 发起网络请求
    lib/client.js:1697
    aiCatalogPromise = fetch("/api/dsh-veneer/ai/models")
  • 发起网络请求
    lib/client.js:2241
    const resp = await fetch("/api/dsh-veneer/ai/generate", {
  • 发起网络请求
    lib/client.js:2582
    fetch("/api/dsh-veneer/upload?ext=." + ext, { method: "POST", body: file })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 可视化调整界面配色
  • 自定义背景与字体
  • 保存主题

DIY你的小蓝鲸吧

README

由 DeepSeek 最新模型翻译生成
✨ Veneer:给 DeepSeek Harness 换一套你喜欢的界面 Veneer 是 DeepSeek Harness(DSH)的可视化换肤插件。无需修改 CSS 或配置文件:在侧栏打开「编辑」,就能调整背景、图片、字体、颜色和细节样式;保存后,下次打开仍会保留。 Veneer 换肤后的 DSH 界面 🎨 用法一眼看懂 1. 在 DSH 左下角点击 「编辑」。 2. 选择背景、字体、AI 主题或样式,边改边预览。 3. 点击 「保存主题」,设置会自动保留。 Veneer 可视化编辑面板 🚀 安装 dsh plugin --profile web add github:swordordead/dsh-Veneer 安装完成后重启一次 dsh web,刷新网页,即可在侧栏底部找到 「编辑」。 也可以使用 npm 包安装(发布后): dsh plugin --profile web add dsh-veneer 💡 这是一个 DSH 社区插件。 欢迎在 GitHub Issues 提交问题与建议。
展开完整文档(README 剩余 1 节)
✨ Veneer:给 DeepSeek Harness 换一套你喜欢的界面

Veneer 是 DeepSeek Harness(DSH)的可视化换肤插件。无需修改 CSS 或配置文件:在侧栏打开「编辑」,就能调整背景、图片、字体、颜色和细节样式;保存后,下次打开仍会保留。

Veneer 换肤后的 DSH 界面

🎨 用法一眼看懂

1. 在 DSH 左下角点击 「编辑」。
2. 选择背景、字体、AI 主题或样式,边改边预览。
3. 点击 「保存主题」,设置会自动保留。

Veneer 可视化编辑面板

🚀 安装

dsh plugin --profile web add github:swordordead/dsh-Veneer

安装完成后重启一次 dsh web,刷新网页,即可在侧栏底部找到 「编辑」。

也可以使用 npm 包安装(发布后):

dsh plugin --profile web add dsh-veneer

💡 这是一个 DSH 社区插件。 欢迎在 GitHub Issues 提交问题与建议。

🪄 能做什么

| 能力 | 说明 |
| 🎨 背景换肤 | 12 个背景面:侧边栏背景 / 主背景(消息气泡、输入框、各浮层) / Veneer 面板自身 |
| 🖼 背景图 | 每个背景可上传或拖放图片(自动识别真实格式)、设「变淡」透明度;可在预览中拖拽裁切焦点、用横纵滑块精调,或一键居中;轻点预览可收缩/展开 |
| 💾 保存/复制/重置 | 持久化到 DSH Host Settings(浏览器 localStorage 兼容快照兜底,Harness 更新不丢);可复制 CSS;每张字体卡片可单独「重置」,底部「重置全部设置」恢复背景、字体和文字颜色 |
| 🔤 字体与文字颜色 | 分别调整全局、侧边栏、主内容、输入区和 Veneer 面板的字体与文字颜色;每个位置都支持「✎ 自定义字体名」直接输入本机字体 |
| 📦 导出/导入主题 | 一键导出全部设置(含背景图 URL)为 JSON,可复制或下载;导入可完整恢复(同机),跨机器时图片引用可能失效 |
| 🤖 AI 生成主题 | 「AI 主题」标签页选模型(与对话共用 Harness 模型目录与凭据,零配置)+ 一句话描述(或选风格),复用对话同一模型运行时生成整套背景+字体主题,预览确认后再应用/放弃 |
| ✨ 样式精调 | 「样式」标签页微调圆角 / 边框 / 阴影 / 强调色(真实存在的 CSS 变量才开放),改完自动保存,支持单组恢复默认 |
| 🗂 模板库 | 「样式」标签页顶部内置 8 套主题模板(莫兰迪/赛博/暖棕/极简/深空/森林/海洋/复古纸),点选即预览,应用一键切换整套主题 |

🧩 架构

- host 半区(lib/index.js):图片上传 API + 图片静态服务(嗅探真实图片格式,不信任扩展名) + AI 生成代理(POST /api/dsh-veneer/ai/generate,优先走 Harness 的 ctx.llm 统一运行时复用对话模型目录与凭据;仅当请求方显式携带 apiKey 时才直连 DeepSeek,且只允许 api.deepseek.com 上游) + 模型目录接口(GET /api/dsh-veneer/ai/models)
- client 半区(lib/client.js):侧栏按钮 + 浮动面板 + 背景/字体/样式编辑逻辑
- 主题存储(lib/theme-storage.js):Host Settings 命名空间 dsh-veneer(唯一字段 theme)+ localStorage 兼容快照的双写协调、读取优先级与迁移决策(Host 合法 → Host 优先并刷新快照;Host 空 → boot 时迁移旧本地主题一次;Host 不可用/非法 → 本地兜底且不覆盖 Host)
- 设置契约:host 端用设置命名空间 dsh-veneer 注册 Schema(直接传字符串——@deepseek-ai/dsh-settings 自 0.1.5 起移除了 settingsNamespace() 导出;旧版里该函数也只是校验格式后原样返回的恒等函数,故裸字符串在两个版本上行为一致);settings 服务未挂载时 client 退回 localStorage,但 Harness 仍须提供静态模块 @deepseek-ai/dsh-settings / @deepseek-ai/schemastery(zip 安装器会预检);client 端经动态可选 settingsScope 读写订阅,重置使用 unset 清空字段而非写 null
- 入口:package.json 的 dsh.client 声明 + ctx.slots.inject("sidebar.footer.action", …) 把按钮挂进侧栏底栏

📁 项目结构

dsh-veneer/
├── lib/
│ ├── index.js # host 半区:图片上传/静态服务 + AI 生成代理 │ ├── client.js # client 半区:侧栏按钮 + 换肤面板 + 默认皮肤预设 │ ├── theme-storage.js # 主题解析/规范化/读写协调/Host 迁移决策(纯逻辑,可单测) │ ├── llm-errors.js # AI 错误码 → 友好中文文案映射 │ └── assets/ # 内置默认皮肤底图(随 npm 包分发,host 启动时复制到用户存储) ├── cordis.patch.yml # bundle 注册层(随包发布,dsh plugin add 自动应用) ├── package.json # 插件声明(dsh.client / dsh.bundle)+ npm 发布清单 ├── install.bat # zip 离线安装入口(双击运行) ├── install.ps1 # zip 离线安装脚本(幂等 + SHA256 校验 + 与 dsh plugin 互斥) ├── sync.ps1 # 开发期同步到本地 DSH profile ├── tools/ │ ├── pack-release.ps1 # 打 zip 离线发布包 │ └── validate_templates.cjs # 模板 / AI 契约校验 ├── test/ # Playwright(Python)回归脚本 └── docs/ # 架构 / 变更记录 / 计划

🌟 默认皮肤预设(装上即用)

首次安装打开 DSH 即为作者常用皮肤:白底 + 三张底图(侧栏 / 主背景 / 输入框)+ 深蓝文字,无需任何配置。实现方式:

- 底图随 npm 包分发(lib/assets/),host 启动时把缺失的图复制到用户 DSH 存储目录(~/.dsh/storages/dsh-veneer/images/),幂等且绝不覆盖用户自己上传的同名图片;
- client 端在浏览器 localStorage 无已保存主题时自动套用预设;用户一旦保存自己的主题,即以用户数据为准,预设不再干扰;「重置全部设置」后回到预设。
- 底图来源为作者自用皮肤图片,随包分发仅供个人换肤使用(MIT)。

🤖 AI 生成主题(模型与凭据说明)

- 在面板「AI 主题」标签页选择模型(提供方 + 模型两级下拉),与对话共用 Harness 模型目录与凭据,零 API Key 配置,也不会把 Key 存到 localStorage。
- 生成请求走 Harness 的 ctx.llm 统一运行时(不带 sessionId 的一次性 completion),不进对话历史、不阻塞主对话。
- 模型服务不可用、凭据缺失/无效、限流(429)、无额度(402)或网络失败时,面板内显示友好中文错误,不影响已保存的主题。
- 生成结果先进入「预览」态,确认「应用」才会持久化;「放弃」恢复生成前状态。

🚀 安装部署

方式一:官方插件命令(推荐)

DSH 的插件机制支持「bundle」:只要包的 package.json 声明了
"dsh": { "bundle": { "patch": "./cordis.patch.yml" } },dsh plugin add
就会自动装包并注册,接收者零手动配置:

从 npm 安装
dsh plugin --profile web add dsh-veneer

或直接从 GitHub 仓库安装(会自动跑构建脚本,首次可能提示允许 build)
dsh plugin --profile web add github:swordordead/dsh-Veneer

或从本地目录/zip 解压目录安装
dsh plugin --profile web add /path/to/dsh-veneer

首次安装或含 Host 端改动的升级完成后重启一次 dsh web,再刷新浏览器;无需手动改配置文件。仅前端 client 更新时强制刷新即可。卸载同样一条命令:
dsh plugin --profile web remove dsh-veneer。

前置条件:dsh CLI 与 pnpm 都在 PATH 中(dsh plugin 底层转发给 pnpm)。

方式二:zip + 双击安装(离线 / 无 node / pnpm 环境)

针对无法使用命令行或没有 Node 环境的接收者,提供了 zip 包 + 一键安装脚本:

1. 打包(发布前先按版本号策略递增 package.json 的 version):

powershell -NoProfile -ExecutionPolicy Bypass -File .\tools\pack-release.ps1

生成 release\dsh-veneer-vX.Y.Z.zip(只含运行期必需文件:package.json、 cordis.patch.yml、lib/、install.bat、install.ps1、使用说明.txt),可上传 GitHub Releases 或直接发文件。

2. 接收者:解压 → 双击 install.bat。脚本自动完成复制 + 注册,幂等(重复执行不会重复注册)、带 SHA256 校验,无需 node/pnpm。首次安装或版本包含 Host 端改动时,需重启一次 dsh web;仅 lib/client.js 变化时强制刷新浏览器即可。
与方式一互斥:若接收者已用 dsh plugin --profile web add dsh-veneer 安装过, install.ps1 会在复制前检测到并安全退出,不会覆盖 pnpm 管理的目录;此时应使用
dsh plugin --profile web update dsh-veneer 更新。

3. 接收者升级:重新下载新包再次双击并按上条规则重启/刷新即可。主题存于 Harness Settings(settings.yaml),不随插件目录覆盖,已有设置会保留。

自定义 DSH 数据目录(设置了 DSH_HOME)的接收者:先 set DSH_HOME=... 再运行,或 powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 -DshHome "目录"。

手动方式(了解原理)

$dst = "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-veneer"
New-Item -ItemType Directory -Path "$dst" -Force | Out-Null
Copy-Item -Recurse -Force .\* "$dst"

再在 profiles/web/cordis.patch.yml 注册 dsh-veneer,重启 dsh web。
(zip 里的 install.bat 就是把这两步自动化的脚本。)

日常同步(改完代码后)

powershell -ExecutionPolicy Bypass -File .\sync.ps1 -AllowManagedOverwrite

sync.ps1 默认拒绝覆盖由 dsh plugin 管理的目录;上述开关只用于维护者明确进行本地开发部署。
脚本会先对 lib/client.js、lib/index.js、lib/theme-storage.js、lib/llm-errors.js 做 node --check,仅复制运行期白名单(package.json、cordis.patch.yml、lib/)到 $env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-veneer,最后比对 SHA256。
仅前端 client 改动时刷新浏览器即可;lib/index.js、依赖或插件注册变化后需重启 dsh web。

发布到 npm(维护者)

npm login # 首次需登录 npm 账号
npm publish # 发布 dsh-veneer,接收者即可 dsh plugin --profile web add dsh-veneer

package.json 的 files 白名单只发布 lib/ + cordis.patch.yml(npm 会自动附带 package.json / README / LICENSE),docs、test、install 脚本不会进 npm 包。

✅ 测试

Node 单元测试(无需 DSH / 浏览器,随时可跑):

npm test
等价于: node --experimental-test-module-mocks --test #(Node 24 起 module mocking 需要该 flag;host-settings.test.mjs 依赖 mock.module)

- test/ai-colors.test.mjs AI 颜色容错单测(22 用例,mock canvas)
- test/ai-colors.browser.test.mjs 真实浏览器引擎验证 CSS Color 4(oklch/hwb/lab/color()),依赖 playwright(devDependency,缺失时自动跳过)
- test/llm-errors.test.mjs LLM 错误码映射单测
- test/theme-storage.test.mjs 主题解析/规范化/Host 迁移决策单测
- test/client-storage-integration.test.mjs client 工厂有/无 settingsScope 双写集成单测
- test/host-settings.test.mjs Host 设置命名空间 + Schema 注册(可选依赖)单测
- test/install-script-check.ps1 zip 安装器 BOM/依赖/官方管理互斥/离线复制校验

Playwright 回归脚本(需 DSH 跑在 127.0.0.1:3080):

python test\veneer-skin-check.py # 面板结构 / 导出导入 / 字体选择器 / 无 pageerror
python test\system-fonts-check.py # 系统字体扫描 + 字体/文字颜色精调 + 重置语义
python test\background-image-position-check.py # 背景图位置滑块 / 预览拖拽裁切 / 变淡蒙层 / 移除图
python test\import-security-check.py # 导入安全:CSS 注入 / 非法 token / 恶意 URL / 合法 rgb 色
python test\ai-theme-check.py # AI 生成(mock)/ 预览应用放弃 / 样式维度 / 模板库 / 无 pageerror

模板与 AI 契约校验工具(开发期使用):

node tools\validate_templates.cjs

📄 License

MIT
预览分享卡片长什么样 ↓swordordead/dsh-Veneer
分享 · DeepSeek Harness Hub
swordordead/dsh-Veneer

可视化调整界面背景字体与配色并保存主题

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部