deepseek-harness-desktop/packages/skins/harbor

156Star5Fork6Issue0Watching

为 dsh web GUI 提供「夕港」黄昏港口主题:动漫港口画背景、深暮蓝底日落橙主色、半透明面板,不影响模型请求与对话数据。

机审证据安装命令仓库已核验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/skins/harbor

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

对话式安装

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

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

一句话定位

「夕港(Harbor)」是 dsh web GUI 的主题皮肤插件,把原版 dsh-skins 夕港皮肤移植过来,给整套界面换上动漫风格的黄昏港口画背景,并把主题色板换成深暮蓝底 + 日落橙主色。它只改变 DOM 外观,不影响模型请求和对话数据。

核心能力

  • 在浏览器全视口挂载港口黄昏画背景(base64 内嵌的 WebP,无需联网下载)
  • 把 dsh 主题色板重映射为深暮蓝 #141a2e 系底色 + 日落橙 #ff9d5c / #ffb46b 主色(CSS alias token 全量重写)
  • 让主面板、侧边栏、菜单等大面积表面变为半透明,让背景画透出来
  • 注入自定义 favicon(内联 SVG:深蓝圆角底、日落橙日轮、深色水面)
  • 跟随宿主基础主题实时切换亮/暗遮罩,由 MutationObserver 监听 data-ds-dark-theme 变化自动重绘
  • 关闭(dispose)时完整撤回:移除 body 属性、按原值还原背景图、移除注入的 favicon

技术实现

  • 语言: TypeScript + CSS Modules
  • 关键依赖: @deepseek-ai/cordis(仅类型导入,effect 生命周期)、lightningcss(CSS 编译)、tsdown(构建)
  • 架构模式: DSH 客户端半区插件;apply(ctx) 通过 ctx.effect(...) 注册 disposer,关闭时按 ThemePresenter 规范撤回所有写入;不注入任何 cordis 服务、不发事件
  • 入口文件: src/index.ts(host 侧空壳)+ src/client/index.ts(核心逻辑,102 行)

适用场景

喜欢黄昏港口动漫插画和暮光暖色配色的普通用户,把 dsh web GUI 换成更具情绪氛围的视觉风格。安装并激活后,整个界面背景变成港口暮色画,面板变成带磨砂感的半透明,深暮蓝底搭配日落橙强调色,不影响任何对话和模型行为。适合日常长时间使用、希望界面更有故事感的人群。

前置依赖与兼容性

依赖最低版本说明
DSH未声明包内未声明具体 DSH 版本;作为官方 bundle 形态插件,需 DSH 启用客户端插件机制
Node.js^22.19.0 || >=24.0.0来自仓库根 package.json#engines
平台跨平台DSH web GUI 客户端;macOS / Windows / Linux 均可运行宿主
原生模块纯浏览器端实现,无 Node 原生模块依赖

安装方式

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

安装完成后还需要激活:

dsh-skin use harbor

配置项

本插件无需额外配置。apply() 内部通过 ctx.effect(...) 自动注册 disposer,无需用户手动维护生命周期。

常见问题

Q: 这个皮肤影响我的对话记录和模型请求吗?

A: 不影响。它只修改浏览器 DOM(背景图、面板颜色、favicon),不注入任何 cordis 服务、不发请求、不触碰模型 API,也不会修改 KV Cache 行为。

Q: 一次能同时启用多个皮肤吗?

A: 不能。同一时刻只激活一个皮肤,切换时新皮肤接管、旧皮肤完整卸载;切换用 dsh-skin use harbor

Q: 关闭后会留下痕迹吗?

A: 不会。effect disposer 会撤回它写入的所有内容:移除 body 属性、按 CSSOM 规范读取并按原值还原背景图、移除注入的 favicon,原页面样式完整恢复。这点由 tests/apply.spec.ts 的"retracts everything on dispose"用例守护。

Q: 装了之后为什么界面没变?

A: 仅安装到 profile 不等于已激活。还需要执行 dsh-skin use harbor 才会套用该皮肤。

Q: 支持深色模式吗?

A: 支持。皮肤会跟随宿主基础主题切换:深色模式下遮罩换成深海夜航纱(rgba(11,14,26,...) 系),亮色模式下是薄暮纱(rgba(20,26,46,...) 系),由 MutationObserver 监听 body[data-ds-dark-theme] 实时重绘背景,无需重新挂载。

Q: 港口背景图是哪来的,为什么安装包不大却能离线显示?

A: 图片以 base64 data URL 内嵌在 src/client/art.ts 里(约 83KB 的 1600×900 WebP),皮肤完全不依赖任何外部静态资源,离线也能正常显示。需要换画时可按文件头注释的 node scripts/embed-skin-art harbor HARBOR_ART <imagePath> 1600 重新生成。

Q: 第一次安装需要先本地构建吗?

A: 不需要。通过 git 链接安装时 prepare 脚本会自动构建 lib/;但 pnpm ≥10 首次安装 git 依赖可能需要把打印的包键加入 pnpm-workspace.yamlallowBuilds 列表再重试。

Q: 跟其它皮肤比有什么不一样?

A: 这个皮肤的核心卖点就是黄昏港口动漫插画背景和深暮蓝底日落橙配色;同仓库还有 blue-fantasy、miku、minecraft 等其它皮肤可选,每个都有不同的背景画作与配色。

上手难度

入门 — 一条命令安装、一条命令激活,没有任何配置项,普通用户即可上手。

已知问题与限制

  • 同一时刻只能激活一个皮肤;切换会完全卸载当前皮肤
  • 故意不使用 backdrop-filter 模糊祖先元素:会破坏 fixed 定位覆盖层(如设置面板)的包含块,使其被锁在父容器内
  • 港口背景图为内嵌 base64(约 83KB),会增加少量 bundle 体积
  • 当前源码内未发现 TODO / FIXME / HACK 等显式已知问题

收录徽章

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/skins/harbor)

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

返回插件目录