# deepseek-harness-desktop

> 为 DSH Web 界面换上 QQ2008 水晶蓝外观，加入深蓝玻璃标题栏、浅蓝状态栏和戴围巾企鹅，不参与模型请求。

## 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/qq98
```

## Wiki

## 一句话定位
QQ2008 怀旧版是 dsh Web GUI 的一款主题皮肤，把官方界面换装为 QQ2008 水晶蓝年代的外观，加入深蓝玻璃质感标题栏、浅蓝状态栏和圆角高光控件。它只修改浏览器里的视觉元素，不参与模型请求，适合只想换界面观感的普通用户。

## 核心能力
- 在页面顶部加入 QQ2008 风格的深蓝玻璃标题栏，左侧显示戴围巾的企鹅图标与文字 `QQ2008 · DeepSeek 在线`，并提供 `–`、`□`、`×` 三个桌面控件装饰
- 在页面底部加入浅蓝色状态栏，分隔左右两组并显示 `QQ 2008`、`就绪`、`已连接`、`在线`、`QQ2008 正式版` 五个文字单元
- 通过 CSS Modules 调整浅色与深色主题色板、桌面渐变背景、标题栏玻璃质感、圆角高光按钮等外观元素
- 设置页面标题为 `QQ2008 · DeepSeek 在线`，并在浏览器标签页加入内嵌的戴围巾企鹅 SVG favicon
- 在皮肤停用时移除 body 属性 `data-dsh-retro`、标题栏、状态栏、favicon；如果标题未被外部改动则恢复原页面标题

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

## 适用场景
喜欢水晶蓝怀旧桌面和戴围巾企鹅图标的普通用户，可以在 dsh Web 界面里切换一套 QQ2008 风格外观。适合不想改变模型交互、只希望调整页面观感的场景；皮肤不组装也不发送任何模型请求，对提示词、上下文、KV Cache 等都不产生影响。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | 包内未声明 DSH 版本或 `dsh.compatibility`；通过 bundle patch 接入 web 端 |
| 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/qq98
```

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

## 常见问题

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

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

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

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

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

A: 支持。CSS 专门为 `body[data-dsh-retro][data-ds-dark-theme]` 定义了深色色板、桌面背景和文字颜色，是同款水晶蓝外观的"深夜"变体；无需改模型配置。

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

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

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

A: 皮肤在插件 bundle 加载后生效，因此最早的加载界面仍保持官方样式。属性一旦设置，启动页也能获得窗口边框，但内部卡片仍是现代样式。

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

A: 它只做视觉演绎，并不逐像素复刻专有 QQ 屏幕或行为。实际效果集中在水晶蓝桌面、玻璃深蓝标题栏、浅蓝状态栏、圆角高光控件和戴围巾企鹅标记。

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

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

**Q: 主题切换只能在怀旧外观之间来回吗？**

A: 是的。皮肤在 `data-ds-dark-theme` 两种状态下都钉住自己的调色板；在 Appearance 切换主题得到的是浅色与深色两套怀旧配色，而不是非怀旧外观。

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

## 已知问题与限制
- 加载页保持原样。外壳的启动页先于插件 bundle 渲染，皮肤从定型后的 UI 开始生效；属性一旦设置，启动页也能获得窗口边框，但内部卡片仍是现代样式。
- 主题切换在皮肤内部。皮肤在 `data-ds-dark-theme` 两种状态下都钉住自己的调色板；在 Appearance 切换主题得到的是浅色与深色两套怀旧配色，而不是非怀旧外观。
- 这是对 QQ2008 界面的视觉演绎，并不逐像素复刻专有 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/qq98)
Wiki generated by AI (model: `MiniMax-M3`)
