# deepseek-harness-desktop

> 为 DSH Web 界面换上 QQ2006 风格的蓝色窗口栏、状态栏与控件，不参与模型请求。

## Metadata

- Author: [@ningbainb](https://github.com/ningbainb)
- Repo: <https://github.com/ningbainb/deepseek-harness-desktop.git>
- GitHub: [ningbainb/deepseek-harness-desktop](https://github.com/ningbainb/deepseek-harness-desktop)
- Stars: 156
- Language: TypeScript
- License: [BSD-3-Clause](https://spdx.org/licenses/BSD-3-Clause.html)
- Homepage: <https://ningbainb.github.io/deepseek-harness-desktop/>
- Topics: `ai-agent`, `ai-coding-assistant`, `codex`, `deepseek`, `deepseek-harness`, `desktop-app`, `dsh`, `dsh-plugin`, `electron`, `electron-app`, `gui`, `open-source`, `plugin-system`, `plugins`, `remote-access`, `skills`, `ssh-client`, `windows`, `windows-desktop`
- Forks: 5
- Open Issues: 6
- Last push: 2026-08-20T05:29:52.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

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

## Wiki

## 一句话定位
QQ2006 经典版是一款面向 DSH Web GUI 的主题皮肤，为页面加入蓝色桌面窗口栏、状态栏和控件。它只修改浏览器里的外观元素，不参与模型请求，适合只想调整界面观感的普通用户。

## 核心能力
- 在页面顶部加入蓝色 QQ2006 风格标题栏，标题为 `QQ2006 · DeepSeek Online`，并显示 `_`、`□`、`×` 三个桌面控件
- 在页面底部加入浅蓝色状态栏，显示在线状态和 `QQ2006 · Ready`
- 通过 CSS Modules 调整浅色与深色主题色板、背景、按钮、输入框、对话框和滚动条等外观
- 设置页面标题，并在浏览器标签页加入内嵌企鹅 SVG 图标
- 在皮肤停用时移除 body 属性、标题栏、状态栏和 favicon；如果标题未被外部改动则恢复原页面标题

## 技术实现
- **语言**: TypeScript + CSS Modules
- **关键依赖**: `@deepseek-ai/cordis`（类型与 `ctx.effect` 生命周期契约）、`lightningcss`（编译 CSS）、`tsdown`（生成 bundle）、`vitest`（验证挂载与清理）
- **架构模式**: 通过 DSH bundle patch 将 `ui-skin-qq2006` 插入插件清单，客户端在 Web GUI 挂载皮肤；host 侧 `apply` 为空，浏览器侧 `apply(ctx)` 写入 DOM/CSS 并注册 disposer
- **入口文件**: `packages/skins/qq2006/src/index.ts`（host 空入口）；`packages/skins/qq2006/src/client/index.ts`（客户端核心入口）；`packages/skins/qq2006/src/client/qq2006.module.css`（样式）

## 适用场景
喜欢蓝色桌面窗口和怀旧状态栏的普通用户，可以在 dsh Web 界面中切换一套 QQ2006 风格外观。适合不想改变模型交互、只希望调整页面观感的场景；皮肤不会组装或发送模型请求。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | 包内未声明 DSH 版本或 `dsh.compatibility`；通过 bundle patch 接入客户端机制 |
| Node.js | `^22.19.0 || >=24.0.0` | 仓库根 `package.json` 的 `engines` 声明；皮肤包自身未单独声明 `engines` |
| 平台 | 跨平台 | `package.json` 将客户端标记为 `web`，未声明 `os` 或 `cpu` 限制 |
| 原生模块 | 无 | 无运行时原生模块依赖；样式和界面变更在浏览器侧完成 |

## 安装方式

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

## 配置项
本插件无需额外配置。源码中未发现配置读取逻辑或用户设置项，皮肤的启用由皮肤管理流程负责。

## 常见问题

**Q: 这个皮肤影响模型请求或对话吗？**

A: 不会。包内说明它只改变浏览器 DOM 与 CSS，不组装或发送任何模型请求；它也不提供模型调用逻辑。

**Q: 安装后为什么界面没有变化？**

A: 安装皮肤包不等于已经选中该皮肤。需要使用 `dsh-skin use qq2006` 切换；皮肤启用由 `dsh-skin use` 管理，同一时刻只启用一个皮肤。

**Q: 支持深色模式吗？**

A: 支持。CSS 专门为 `body[data-dsh-qq2006][data-ds-dark-theme]` 定义了深色色板、背景和文字颜色，无需改模型配置。

**Q: 关闭或切换皮肤后会留下页面痕迹吗？**

A: 不会。客户端注册的生命周期清理器会移除 body 属性、标题栏、状态栏和 favicon，并在标题未改变时恢复原标题。测试覆盖了挂载与清理场景。

**Q: 为什么刚打开 DSH 时有一小段官方外观？**

A: 皮肤在插件 bundle 加载后生效，因此最早的加载界面仍保持官方样式。完成加载后，QQ2006 标题栏和状态栏才会出现。

**Q: 它是 QQ2006 的完整复刻吗？**

A: 它只做视觉演绎，并不逐像素复刻专有 QQ 屏幕或行为。实际效果集中在蓝色窗口栏、状态栏、控件和水晶蓝配色。

**Q: 需要联网下载图片、字体或音频吗？**

A: 不需要。小企鹅标记由代码内 SVG 拼接，包内不含腾讯图片、音频、字体或其他二进制素材。

## 上手难度
入门 — 安装和启用只需使用皮肤管理命令，无需配置文件或用户参数；激活后由客户端自动管理清理。

## 已知问题与限制
- 皮肤在插件 bundle 加载后才生效，最早的加载界面仍保持官方外观。
- 这是对 QQ2006 界面的视觉演绎，并不逐像素复刻专有 QQ 屏幕或行为。
- 同一时刻只启用一个皮肤，切换时由 `dsh-skin use` 管理。

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [deepseek-harness-desktop](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/skins/qq2006)
Wiki generated by AI (model: `MiniMax-M3`)
