deepseek-harness-desktop/packages/dsh-skins

156Star5Fork6Issue0Watching

一个 npm 包内置 11 款 DSH Web 主题皮肤与皮肤中心卡片,支持一键试穿与切换,全程无需重启服务。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 ningbainb/deepseek-harness-desktop 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
BSD-3-Clause
分支
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

安装

$ dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-skins

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 ningbainb/deepseek-harness-desktop/packages/dsh-skins:先查看仓库 https://github.com/ningbainb/deepseek-harness-desktop.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

DSH Web 聊天客户端的皮肤全家桶聚合包:装上它就能在插件配置页里看到一张「皮肤中心」卡片,列出 11 款内置主题皮肤(QQ 怀旧、同花顺、Windows XP、龙的传人、Minecraft、初音未来、鲸吟、交易终端、夕港等),支持在线试穿和一键切换。

核心能力

  • 在「插件配置 → Web UI 插件」里插入一张皮肤中心卡片,列出官方默认与所有已装皮肤
  • 在线试穿任意一款皮肤(不持久化):即时看效果、亮/暗主题切换、退出完整还原
  • 一键应用皮肤:写 ~/.dsh/profiles/<profile>/cordis.patch.yml,由宿主配置监听器在数秒内热加载,无需重启
  • 皮肤之间互相排斥:同一时刻只激活一款(由 patch 的 managed 区段强制)
  • 背景遮挡透明度滑块(仅对带背景图的皮肤生效)
  • 一个 npm 包内置全部皮肤资产,无需为每款皮肤单独占用 npm 包名

技术实现

  • 语言: TypeScript + Node.js(聚合包为 ESM,构建脚本为 Node 脚本)
  • 关键依赖: @deepseek-ai/dsh-host-webserver(host 端路由服务)、@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-theme(client 端运行时与主题)、schemastery(背景配置 schema)、react(皮肤中心卡片 UI)
  • 架构模式: Cordis 插件(host + client 双半区)+ 进程内 dsh-skin use ESM 端口(src/skin-switch.ts,避免依赖外部 CLI),通过原生 HTTP 路由 /api/skin-center/* 与浏览器半区通信
  • 入口文件: 聚合入口 packages/dsh-skins/build.mjs;皮肤中心 host 入口 packages/skins/skin-center/src/index.ts;client 入口 packages/skins/skin-center/src/client/index.ts

适用场景

希望给 DSH Web 聊天界面换个风格、又不想折腾命令行的普通用户:装一个包就拿到 11 款主题,从 QQ 2008 怀旧、Windows XP Luna 到当下流行的初音未来、交易终端风格都有。 不喜欢皮肤中心附带的卡片、只想手动 dsh-skin use 切换的开发者和重度自定义用户也能用:聚合包把每款皮肤的 skin.json + lib/client.js 完整内置,dsh-skin CLI 能直接识别。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.7+由皮肤中心 devDependencies 中 @deepseek-ai/* 包均为 ^0.1.0-rc.7 推断
Node>=22.19.0来自仓库根 package.json 的 engines 字段(^22.19.0 || >=24.0.0
平台Webbundle 仅声明 platform: "web",作用域限定 DSH Web GUI
原生模块Windows 符号链接失败时回退到目录联结(junctions),不依赖原生模块

安装方式

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-skins

配置项

配置类型说明默认值
backgroundOpacity数字(0-100,步长 5)主界面背景遮挡透明度,数值越大背景图被遮得越深;仅对内置背景图的皮肤(如 blue-fantasy / whale-song)可见效果0

常见问题

Q: 切换皮肤后需要重启 dsh web 服务吗?

A: 不需要。点击「应用」后皮肤中心会把变更写入 ~/.dsh/profiles/<profile>/cordis.patch.yml,宿主配置监听器在几秒内热加载,浏览器刷新即可看到新皮肤。

Q: 能不能同时启用两款皮肤?

A: 不能。皮肤中心通过 patch 文件的 dsh-skin managed 区段强制只有一个激活,其它皮肤被写为 disabled: true

Q: 切换皮肤会不会影响模型请求或对话内容?

A: 不会。皮肤只改浏览器 DOM(CSS、标题栏、状态栏、背景图),不拦截、不修改任何发送给模型的请求。

Q: 装完之后皮肤列表是空的,或者少了几款怎么办?

A: 检查当前 profile 下的皮肤目录:皮肤中心扫描 packages/skins/<id>node_modules/@linxin666/dsh-skins/skins/<id>,每个皮肤目录里必须同时有 skin.jsonlib/client.js,缺一会被构建脚本跳过。

Q: Windows 上切换时报符号链接权限不足怎么办?

A: 切换逻辑在 symlink 失败时会自动回退到目录联结(junction),不需要开发者模式;如果仍失败请以管理员身份运行 dsh,或把皮肤包手动放到 profile 的 node_modules 下。

Q: 怎么加一款自己的皮肤?

A: 在 packages/skins/<your-id>/ 下放 skin.json(含 id、name、tagline、bodyAttr、wiring.id 等字段)和构建后的 lib/client.js / lib/index.js,跑 pnpm --filter @linxin666/dsh-skins build,重装聚合包即可在皮肤中心看到。

Q: 怎么卸掉某款皮肤换回官方默认?

A: 皮肤中心卡片里有「官方默认」入口,点击即可一键应用;想完全卸载插件则用 dsh plugin --profile web remove @linxin666/dsh-skins

Q: 背景遮挡滑块对所有皮肤都有效吗?

A: 仅对带背景图的皮肤生效(目前是 blue-fantasy 和 whale-song),官方默认和其它纯色调皮肤的背景透明度滑块不会改变外观。

上手难度

入门 — 装上即可在 Web 端插件配置里直接看到皮肤中心卡片,无需任何额外配置;想新增或调整皮肤时才需要看 build.mjsskin.json 字段。

已知问题与限制

  • 浏览器 bundle 仅面向 DSH Web GUI,作用域限定在 web 端(packages/dsh-skins/README.md:33 / packages/skins/skin-center/package.jsondsh.client.platform
  • 皮肤只改 DOM(CSS、标题、状态栏、背景图等),不触及任何模型请求(packages/dsh-skins/README.md:33
  • 旧版 Desktop 2.2/2.3 写在全局 ~/.dsh/cordis.patch.yml 的 managed 区段会在首次切换时被自动迁移到当前 profile,并从全局文件中删除(一次性行为,packages/skins/skin-center/src/skin-switch.ts:963-972

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/dsh-skins)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录