DeepSeek Harness Desktop App 自带的主题包:提供默认「专业蓝」与可选「二次元蓝」两套主题的安全色板,并把它们登记为当前 Profile 下的官方主题。
- 语言
- JavaScript
- License
- MIT
- 分支
- dev
安装
$ dsh plugin --profile web add github:vibeinging/deepseek-harness-desktop-app/packages/dsh-theme-pack在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
一句话定位
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 数据,无原生模块、无系统调用 |
| 原生模块 | 无 | — |
安装方式
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,未声明更宽范围;与 DSH0.1.0-rc.6SDK 强绑定,跨 RC 升级需要父应用同步调整- 没有独立 README:除自身 10 行 README 外,所能参考的只有父项目 README 的"主题与外观"与"插件中心"章节(
packages/dsh-theme-pack/README.md全文)
中文 | English
DeepSeek Harness Desktop App 是建立在 DeepSeek Harness(DSH)之上的本地 AI 工作桌面。它把 DSH 的 Session、Agent、Tool、Skill、MCP 和 Profile Bundle 与项目、文件、网页、Git Worktree、Canvas、Site 和 Office 产物组织在同一个桌面应用中。
| 专业蓝亮色 | 专业蓝暗色 |
|---|---|
![]() | ![]() |
快速开始
本地开发要求 Node.js 24 或更高版本。当前项目使用 DSH 0.1.0-rc.6。
npm install
npm run doctor
npm run dev
切换 Node.js 大版本、CPU 架构或操作系统后,运行 npm run setup 重新准备依赖。
主要功能
| 功能 | 用户可以做什么 |
|---|---|
| DSH 对话 | 流式回答、思考过程、工具调用、停止、继续、重试、消息分支和重启恢复 |
| 模型与权限 | 选择 Provider、模型和推理强度,管理凭据引用、Session 权限、工具审批和模型提问 |
| Tool、Skill、MCP 与多 Agent | 使用当前 Profile 中的工具、技能、MCP、Hook、子 Agent 和 Workflow |
| 项目与对话 | 创建项目、全局或临时对话,置顶、排序、重命名、归档、恢复和删除 |
| 桌面外壳与设置 | 使用三列工作台、左右栏折叠、全局搜索、缩放快捷键和更新检查,调整语言、网络、通知、终端与隐私选项 |
| 项目上下文与记忆 | 设置应用指令、项目指令、授权源码目录、写入目标以及全局或项目记忆 |
| 输入与引用 | 使用 @ 引用文件、使用 # 引用对话,粘贴图片和大段文本附件 |
| 编码工作区 | 查看 Diff、逐行评论和编辑、在外部编辑器打开、发起 AI Review,并安全撤销模型产生的文件修改 |
| Git Worktree | 创建、启用、停用和删除隔离工作目录,让新对话在指定 Worktree 中运行 |
| 文件与搜索 | 浏览项目文件、任务和产物,预览文本、代码、图片和 Office 内容,按文件名或正文搜索 |
| Browser Workspace | 多标签浏览、历史、页内查找、缩放、下载、打印、开发者工具、站点权限、网页快照和“使用此页” |
| 结果与证据 | 直接查看当前 DSH Session 的完整轨迹、工具输入输出、耗时、Token 和最终回答 |
| Canvas 与本地 Site | 创建和编辑 Canvas、处理行内建议与版本冲突,生成并响应式预览单文件 Site |
| Office 产物 | 创建、查看和定点编辑 Markdown、DOCX、XLSX、PPTX 和 PDF,并保留版本 |
| 主题与外观 | 切换 Profile 主题,新建、导入、预览、编辑、导出和删除本地主题,调整明暗模式、背景和透明度 |
| 插件中心 | 检查兼容性,把 DSH Profile Bundle 安装到当前 Web Profile,并查看来源、版本和加载顺序 |
DSH 轨迹就是结果与证据
右侧“结果与证据”直接读取当前绑定 DSH Session 的 session.history。用户消息、请求上下文、模型输出、工具调用、工具结果、权限变化和最终回答都在同一条可回放轨迹中,不维护第二套运行中心。

对话和工作台
一个项目对话对应一个 DSH Session。右侧工作台可以添加结果与证据、浏览器、文件、产物和 Site 标签;项目文件树、Agent 工作目录、当前 Diff 和行编辑都跟随当前项目权限与活动 Worktree。


Canvas 保存不可变版本,支持正文编辑、版本比较、精确行内建议和冲突处理。Site 使用同一套版本能力,并在隔离沙箱中提供桌面、平板和手机预览。


Git Worktree 隔离开发
项目设置提供完整的 Worktree 工作流:
- 为项目创建一个或多个独立分支和工作目录,同一时间启用一个。
- 启用后,新建对话的 Agent、DSH Session、Diff 和行编辑使用该 Worktree,主检出保持不变。
- 切换工作目录不会迁移已有对话;应先启用目标 Worktree,再新建对话。
- 删除前必须切回主检出。删除工作目录后保留 Git 分支,避免误删提交。
- 非 Git 目录、重复分支、越界路径和异常符号链接会被拒绝;磁盘上丢失的 Worktree 会标记为不可用。

主题与外观
@deepseek-ai/dsh-theme-pack Profile Bundle 提供默认的 professional-blue 和可选的 anime-blue。正式产品也支持本地自定义主题的新建、导入、预览、编辑、导出和删除。
本地主题只能使用安全的颜色与外观设置,不能注入原始 CSS、远程图片或修改应用名称。个人背景、明暗模式和透明度可以独立调整。

插件中心
普通用户从左侧“插件”页面安装 DSH Profile Bundle:
- 输入带精确版本的 npm 包,或带完整 commit 的
dsh-external仓库地址。 - 先运行兼容性检查;只有结果为“可以安装”时才能写入当前 Profile。
- 安装后查看 Bundle 的来源、版本、加载顺序和能力,用户安装的 Bundle 可以卸载。
Tool、Skill、MCP、Hook 等 Host Bundle 可以进入 DSH 运行时。包含第三方 Client UI 的 Bundle 目前不会进入拥有 Electron 权限的主窗口;随应用提供并经过审核的 Client Bundle 不受此限制。

与 DSH 官方 Web 的关系
DeepSeek Harness Desktop App 不是 DSH Web 的 iframe,也没有复制一套 Agent 运行时。Electron 启动 DSH Web Profile,并继续使用同一套 Session、Agent、Tool、Skill、MCP、Settings、Profile Bundle 和 Client Loader。DeepSeek Harness Desktop App 在同一运行链上提供自己的桌面外壳,并增加项目管理、文件授权、Browser Workspace、Git Worktree、Canvas、Site 和 Office 产物。
需要模型使用的产品能力通过绑定 Session 和 DSH Tool 接入;项目数据、文件权限、网页、Worktree 和产物版本仍由 DeepSeek Harness Desktop App 管理。
当前边界
- 当前没有五列任务看板、独立定时任务页面、Git 图谱、stage/unstage 面板或独立终端页。
- 本地 Site 只提供预览和单文件导出,没有部署服务;公开分享目前只有只读查看。
- 当前没有移动端远程控制、二维码配对、公网隧道、SSH、SFTP 或端口转发。
- 子 Agent 可以执行并出现在对话与轨迹中,但还没有完整的独立管理页。
数据与安全
Profile、Session、项目、运行记录和产物数据默认保存在本机 ~/.dsh。项目源码目录默认只读,Agent 写入需要用户明确授权。
完整规则见 PRIVACY.md、SECURITY.md 和 THIRD_PARTY_NOTICES.md。
平台状态
| 平台 | 当前状态 |
|---|---|
| macOS Apple Silicon | 开发与目录包已验证 |
| macOS Intel | Rosetta 检查通过,仍需 Intel 实机验收 |
| Windows x64 | 已接入构建流程,仍需安装包实机验收 |
| Windows arm64 | 暂不支持 |
| Linux | 暂无桌面打包配置 |
许可证
项目代码使用 MIT License。第三方依赖与二进制文件的来源、许可证和分发限制见 THIRD_PARTY_NOTICES.md。

