# deepseek-harness-desktop

> 为 DSH Web 界面换上同花顺风格外观：品牌红标题栏、行情状态栏、自选股侧栏与终端设置面板。

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

## Wiki

## 一句话定位
同花顺风格皮肤为 DSH Web GUI 换上品牌红标题栏、行情状态栏、自选股风格侧栏和交易终端面板，营造盯盘氛围。它只修改浏览器里的外观元素，不参与模型请求，适合想调整页面观感的普通用户。

## 核心能力
- 在页面顶部加入品牌红标题栏，标题为「同花顺 · DeepSeek 在线」，附带白色蜡烛 SVG 图标和 –/□/× 三个桌面控件
- 在标题栏中嵌入「上证指数」实时行情签（含指数、点位、▲/▼ 涨跌），配色按红涨绿跌
- 在页面底部加入行情状态栏，依次显示「同花顺、上证指数、深证成指、创业板指、就绪、已连接、在线」七个单元格，红涨绿跌配色
- 在状态栏末尾追加「代码指数」格，30 秒聚合一次所有 workspace 的当日代码净增减行（红涨绿跌）
- 通过 CSS Modules 调整浅色与深色主题色板、自选股风格侧栏（红色行情线、行情行）、会话/详情面板和设置面板表面
- 固定文档标题为「同花顺 · DeepSeek 在线」，并在浏览器标签页注入内嵌「同」字红色 favicon

## 技术实现
- **语言**: TypeScript + CSS Modules
- **关键依赖**: `@deepseek-ai/cordis`（ctx.effect 生命周期）、`@deepseek-ai/dsh-client-connection`（连接句柄上的 `workspace.list` / `codeKline.list` RPC）、`lightningcss`（编译 CSS）、`tsdown`（生成 bundle）、`vitest`（验证挂载与清理）
- **架构模式**: 通过 DSH bundle patch（`cordis.patch.yml`）将 `ui-skin-ths` 插入 Web 插件清单，host 侧 `apply()` 为空占位，浏览器侧 `apply(ctx)` 在 cordis fiber 生命周期内写入 DOM/CSS 并注册 disposer；样式表随 bundle 的 CSS Modules 自动注入，由 loader 随条目移除
- **入口文件**: `packages/skins/ths/src/index.ts`（host 空入口）；`packages/skins/ths/src/client/index.ts`（浏览器侧核心入口，210 行）；`packages/skins/ths/src/client/ths.module.css`（1417 行主题样式）；`packages/skins/ths/src/client/code-index.ts`（代码指数聚合缓存）

## 适用场景
喜欢炒股氛围、需要长时间盯代码的普通用户，可以在 DSH Web 界面切到「同花顺」皮肤：标题栏带「上证指数」行情签，状态栏显示三大指数红绿涨跌，侧栏像自选股列表一样展示会话。皮肤对模型请求零侵入，适合只想换外观、不改交互方式的场景。

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

## 安装方式

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

## 配置项
本插件无需额外配置。源码中未发现配置读取逻辑或用户设置项；皮肤启用由皮肤管理流程负责，启用后由客户端生命周期自动管理清理。

## 常见问题

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

A: 不会。包内明确说明它只改变浏览器 DOM 与 CSS，不组装或发送任何 provider 请求，也不订阅任何模型事件；皮肤对模型调用链零侵入。

**Q: 状态栏里的指数数值是实时行情吗？**

A: 不是。状态栏里的「上证指数 / 深证成指 / 创业板指」是固定文案（3,342.17 / 10,846.59 / 2,201.33），仅用于视觉演绎；唯一会真实变化的是末尾的「代码指数」格，它每 30 秒聚合一次所有 workspace 的当日代码净增减行，红涨绿跌配色。

**Q: 安装后界面没有变化怎么办？**

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

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

A: 支持。CSS 专门为 `body[data-dsh-ths][data-ds-dark-theme]` 定义了夜间交易色板；不过切换的是这套皮肤内部的浅色/深色两套终端配色，并不是切换回非皮肤外观。

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

A: 不会。客户端注册的生命周期清理器会移除 body 属性、标题栏、状态栏和 favicon；如果页面标题仍等于皮肤写入的字符串则恢复原标题，被会话标题覆盖时不会被一并回滚。测试覆盖了挂载、清理与「不清掉会话标题」三类场景。

**Q: 侧栏的红色行情线/会话行效果依赖什么？**

A: 依赖 `ui-layout` 模块在 AppFrame 列上挂的 `data-pane` 属性。没有这些属性时皮肤依然生效（窗口栏和状态栏正常），只是少了每个面板的表面样式。

**Q: 加载 DSH 的瞬间为什么还有一段官方外观？**

A: 皮肤要等插件 bundle 加载完毕后才能设置 `data-dsh-ths` 属性并注入 DOM，所以最开始的加载界面保留官方样式；属性一旦设置，启动页也会获得窗口边框，只是内部卡片仍是现代样式。

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

## 已知问题与限制
- 皮肤在插件 bundle 加载后才生效，最早的加载界面保留官方外观；启动页可获得窗口边框，但内部卡片仍是现代样式。
- 主题切换只在皮肤内部两套配色间切换（浅色/深色终端色板），并不会切回非皮肤外观。
- 状态栏里的指数数值是静态文案，不跟踪真实行情；只有「代码指数」格会每 30 秒基于所有 workspace 的当日代码净增减行动态刷新。
- 同一时刻只启用一个皮肤，切换由 `dsh-skin use` 脚本管理；面板级 surface 依赖 `ui-layout` 在 AppFrame 列上挂 `data-pane` 属性。

---

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/ths)
Wiki generated by AI (model: `MiniMax-M3`)
