# deepseek-harness-desktop-app

> Built-in theme pack for DeepSeek Harness Desktop App: provides default "Professional Blue" and optional "Anime Blue" safe color palettes, registering them as official themes under the current Profile.

## Metadata

- Author: [@vibeinging](https://github.com/vibeinging)
- Repo: <https://github.com/vibeinging/deepseek-harness-desktop-app.git>
- GitHub: [vibeinging/deepseek-harness-desktop-app](https://github.com/vibeinging/deepseek-harness-desktop-app)
- Stars: 606
- Language: JavaScript
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Topics: `agentic-workflows`, `ai-agent`, `ai-workbench`, `data-analysis`, `deepseek-harness`, `desktop-app`, `dsh`, `dsh-plugin`, `electron`, `local-first`, `mcp`, `model-context-protocol`, `office-automation`, `react`, `typescript`
- Forks: 32
- Open Issues: 6
- Last push: 2026-08-15T08:56:28.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:vibeinging/deepseek-harness-desktop-app/packages/dsh-theme-pack
```

## Wiki

## 一句话定位
DeepSeek Harness Desktop App 自带的主题 Profile Bundle，把 `professional-blue`（专业蓝，默认）与 `anime-blue`（二次元蓝，可选）两套主题的安全色板登记到当前 DSH Web Profile 的主题目录里，并占用 Cordis 插件树中的一行让 Profile 统一管理生命周期。

## 核心能力
- 暴露 `professional-blue` 默认主题：墨蓝背景 `#edf2fa`、钴蓝强调色 `#405fd2`、克制的 Mantine 十阶色板与暗色变体
- 暴露 `anime-blue` 可选主题：通透的蓝色调 `#5b8def` 主色、亮/暗两套背景与色板，开启后会激活看板娘首页
- 通过 `cordis.patch.yml` 在 Cordis 插件树里插入 `dsh-theme-pack` 行，让 Profile 拥有该主题包的生命周期管理权
- 把所有主题颜色与外观信息放在 `themes.json` 中，由 DSH Renderer 直接渲染，源码里不再维护第二套主题注册表
- 严格遵守 renderer-safe 边界：仅暴露 CSS 变量、Mantine 色板、背景色、面板透明度，禁止注入原始 CSS、远程图片或修改应用名
- 与同仓库的 `dsh-work-shell` 与 `dsh-product-bridge` 协同，三件齐全即可呈现桌面应用完整外观与能力

## 技术实现
- **语言**: JavaScript（ES Module）+ JSON（主题数据）+ YAML（cordis patch）
- **关键依赖**: `@deepseek-ai/cordis` ^4.0.1（Cordis 插件树管理，列入 `peerDependencies` 与 `devDependencies`）
- **架构模式**: 通过 `package.json#dsh.bundle.patch` 指向 `cordis.patch.yml` 声明 Bundle 补丁，通过 `package.json#dshWork.themes` 指向 `themes.json` 声明主题描述符；`src/index.js` 仅导出 `name` 与一个空的 `apply()`（文件头注释说明 Profile-owned 插件不需要宿主服务，主题数据从 `themes.json` 投影）
- **入口文件**: `packages/dsh-theme-pack/src/index.js`、`packages/dsh-theme-pack/themes.json`、`packages/dsh-theme-pack/cordis.patch.yml`

## 适用场景
适合已经或即将安装 DeepSeek Harness Desktop App 的用户，把它作为桌面应用自带主题数据的标准来源引入 Profile，避免主题漂移或第三方主题混入。如果只想自定义外观而不要官方主题，可以选择本地主题新建/导入而不装这个包；如果是给第三方 DSH 客户端做主题，需要走本地主题机制。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 0.1.0-rc.6 | 与父仓库使用的 DSH 版本一致；`peerDependencies` 仅声明 `@deepseek-ai/cordis` ^4.0.1 |
| Node.js | ^22.19.0 \|\| >=24.0.0 | `package.json#engines` 放宽到 22.19 及以上或 24，根 `package.json` 与 `electron/package.json` 要求 `>=24` |
| 平台 | 跨平台 | 主题包只承载 JSON/YAML/JS 数据，无原生模块、无系统调用 |
| 原生模块 | 无 | — |

## 安装方式
```bash
dsh plugin --profile web add github:vibeinging/deepseek-harness-desktop-app/packages/dsh-theme-pack
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 主题选择 | `professional-blue` \| `anime-blue` | 在主题设置页切换；缺失或未选时回落 `professional-blue` | `professional-blue` |
| 主色强调 | CSS 变量 `--el-color-primary` | 亮/暗各 1 个，覆盖 Element Plus 主色 | 跟随所选主题 |
| Mantine 色板 | 10 阶 hex 数组 | 提供 Mantine 组件库的色阶 | 跟随所选主题 |
| 背景颜色 | hex | 桌面背景色，亮/暗两套 | 跟随所选主题 |
| 面板透明度 | 百分比（0-100） | 工作台面板的不透明度 | 跟随所选主题 |
| 明暗模式 | `light` \| `dark` \| `system` | 由 DSH Settings API 持久化为 `ui-theme.preference`，仅在无用户偏好时写入默认值 | `system` |

主题字段完整定义在 `packages/dsh-theme-pack/themes.json`；每个主题都包含 `id`、`name`、`description`、`base: "lighting"`、`vars`、`mantineColors`、`dark.vars`、`dark.mantineColors`、`appearance.bgColor`、`appearance.panelOpacity`、`appearance.dark.bgColor`、`appearance.dark.panelOpacity`，并使用 `schema_version: 1` 作为描述符版本。

## 常见问题

**Q: 装上这个包之后会出现什么变化？**

A: `cordis.patch.yml` 会把 `dsh-theme-pack` 行插入 Cordis 插件树，让 Profile 接管主题包的生命周期；同时 `themes.json` 中 `professional-blue` 与 `anime-blue` 两条主题会出现在 Web Profile 的主题目录里，可在主题设置页切换。

**Q: 这两套主题分别适合什么场景？**

A: `professional-blue` 是默认主题，墨蓝背景配克制的钴蓝强调色，提供独立亮/暗两套色板，适合日常项目和正式演示；`anime-blue` 是可选主题，色调更通透，启用后看板娘会出现在新对话首页。

**Q: 主题能不能夹带原始 CSS、远程图片或改应用名？**

A: 不能。`themes.json` 只暴露 renderer-safe 的颜色与外观 token（CSS 变量、Mantine 色板、背景色、面板透明度），不含 rawCss、远程背景图或 appName 字段；过度宽松的字段会在加载时被丢弃。

**Q: 主题色板包含哪些具体内容？**

A: `professional-blue` 主色 `#405fd2`（亮）/ `#7b9cff`（暗），背景 `#edf2fa` / `#1b2d49`，面板透明度 98 / 96；`anime-blue` 主色 `#5b8def` / `#86b2ff`，背景 `#f8fbff` / `#2c3440`，面板透明度 100 / 100。每套都附带完整的 10 阶 Mantine 色板。

**Q: 这个包是私有包吗？跟 npm 上的同名包是什么关系？**

A: 是私有包，`package.json` 标 `private: true`，无法通过 `npm publish` 发到公共 registry。包名 `@deepseek-ai/dsh-theme-pack` 仅供随桌面应用一起发布并由应用自有 Profile 加载；普通用户通过 GitHub 安装命令即可。

**Q: 这个包能被普通用户卸载吗？**

A: 它属于应用自有 Bundle，由父应用统一随 Profile 加载和升级，不在普通用户的可卸载列表中。日常主题切换、背景与明暗模式调整直接在主题设置页操作。

**Q: 安装命令是什么？需要先装好桌面应用吗？**

A: `dsh plugin --profile web add github:vibeinging/deepseek-harness-desktop-app/packages/dsh-theme-pack`。命令把仓库的 `packages/dsh-theme-pack` 子目录作为 Bundle 源写入当前 Web Profile。

**Q: 这个包跟同仓库的 dsh-product-bridge、dsh-work-shell 是什么关系？**

A: 三者同属 DeepSeek Harness Desktop App 的私有 Profile Bundle 三件套：`dsh-theme-pack` 负责主题数据，`dsh-work-shell` 替换默认壳，`dsh-product-bridge` 注入 10 个产品工具桥接；三件齐全，桌面应用才会呈现完整外观与能力。

## 上手难度
入门 — 安装一条命令即生效，不需要写代码；想要自定义外观时直接进主题设置页切换，不需要修改 `themes.json`。

## 已知问题与限制
- `package.json` 标 `"private": true`，无法通过 `npm publish` 发到公共 registry；安装只能走 GitHub 精确 commit 或本地 `file:` 路径（`packages/dsh-theme-pack/package.json:5`）
- `src/index.js` 导出的 `apply()` 函数为空函数体（注释说明：Profile-owned 插件不需要宿主服务），仅靠 `cordis.patch.yml` 注册自身条目，没有运行时逻辑可观测（`packages/dsh-theme-pack/src/index.js:4-5`）
- 主题字段受 renderer-safe 约束：超出的字段在加载时被丢弃，自定义主题只能调颜色与外观，不能注入原始 CSS、远程图片或修改应用名（`packages/dsh-theme-pack/README.md:8`、`packages/dsh-theme-pack/themes.json` 字段范围）
- `peerDependencies` 固定 `@deepseek-ai/cordis` ^4.0.1，未声明更宽范围；与 DSH `0.1.0-rc.6` SDK 强绑定，跨 RC 升级需要父应用同步调整
- 没有独立 README：除自身 10 行 README 外，所能参考的只有父项目 README 的"主题与外观"与"插件中心"章节（`packages/dsh-theme-pack/README.md` 全文）

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [deepseek-harness-desktop-app](https://deepseek-plugin.org/plugins/vibeinging/deepseek-harness-desktop-app/packages/dsh-theme-pack)
Wiki generated by AI (model: `MiniMax-M3`)
