Back to home

huntdier

dsh-open-plugins

No description

Stars
1
Language
JavaScript
Created
Aug 17, 2026
Updated
Aug 17, 2026

Introduction

dsh-open-plugins

DSH(DeepSeek Harness)独立开源插件集:两个插件,零全家桶依赖,开箱即用。 适用于 DSH Desktop(桌面应用)与 DSH Web。

  • 🖼️ @huntdier/dsh-client-ui-skin-fairy-kingdom —— 妖精国皮肤:黑白二次元壁纸 + 暖调灰阶主题,亮/暗双主题,壁纸内联零静态资源,安装即用。
  • 📂 @huntdier/dsh-client-ui-aionui-panel —— 右侧面板框架 + 代码 IDE 编辑器: Explorer 文件树 / Preview 多格式预览 / SCM 变更,代码、Markdown、HTML 的源码编辑 与只读查看全部使用内置 IDE 编辑器(行号、语法高亮、括号/引号自动补全)。

这两个包原本是 dsh-web-ui 全家桶(@linxin666/dsh-web-ui-all)中对应组件的本地 定制版。本仓库把它们拆成独立的开源包:不依赖全家桶聚合包,只依赖 DSH 官方 运行时(@deepseek-ai/*,由 DSH 自身提供),桌面端 compatibility 壳与 Web 端 均原生兼容。


1. 整体介绍

插件包名功能
妖精国皮肤@huntdier/dsh-client-ui-skin-fairy-kingdom162 个 --dsw-* 设计 token 亮/暗双套完整重映射;壁纸背景随主题实时切换遮罩(--dsw-skin-scrim 可调);行内代码、Git 图谱等组件级配色适配;独立于皮肤中心,插件行激活即生效
右侧面板 + IDE@huntdier/dsh-client-ui-aionui-panelExplorer 文件树(文件名搜索、宽度拖拽、按项目持久化);Preview 多 tab 预览(markdown/html/code/diff/csv/pdf/office/图片/文本);SCM 真实 git stage/unstage/discard;内置 IDE 编辑器(行号 + 高亮 + 自动补全,按扩展名识别语言);Host 侧 workspace 门禁保障文件安全

设计要点

  • 独立:两个包各自携带 cordis.patch.yml 注册插件行,不依赖全家桶聚合包; 皮肤包行激活即应用,无需皮肤中心(皮肤中心仅用于多皮肤切换管理)。
  • 安全:面板所有 /aionui-panel/* 路由经 Host 侧 workspace 门禁,浏览器只能 读写已注册工作区内的文件。
  • 开源:MIT 许可 + 保留上游 @linxin666/dsh-web-ui(BSD-3-Clause)署名声明; 面板包附带 IDE 编辑器源码(src/ide-editor.tsx)与补丁流水线(scripts/build.mjs)。

2. 结构目录

dsh-open-plugins/
├── README.md                      本文件
├── LICENSE                        项目许可证(MIT + 上游 BSD-3-Clause 声明)
├── display.png                    效果展示截图
├── install-plugins.ps1            一键安装脚本(自动定位应用路径 + 安装两个插件)
└── packages/
    ├── dsh-client-ui-skin-fairy-kingdom/    皮肤包
    │   ├── lib/client.js          浏览器插件(token 注入 + 壁纸背景 + 主题遮罩)
    │   ├── lib/index.js           Host 空入口
    │   ├── skin.json              皮肤元数据(皮肤中心可识别)
    │   ├── cordis.patch.yml       插件行注册(ui-skin-fairy-kingdom)
    │   └── scripts/               皮肤生成脚本(参考)
    └── dsh-client-ui-aionui-panel/          右侧面板包
        ├── lib/                   Host 半边 + 浏览器半边 + 类型声明
        │   ├── index.js           Host 插件(workspace 门禁 + fs/git 路由)
        │   └── client.js          浏览器插件(含内置 IDE 编辑器)
        ├── src/                   IDE 编辑器源码(ide-editor.tsx)与构建产物
        ├── scripts/               补丁流水线(build.mjs / verify.mjs)
        └── cordis.patch.yml       插件行注册(ui-dsh-aionui-panel)

3. 如何安装

前提:两个包已发布到 npm(npm publish --access public);目标机器 PowerShell 的 PATH 上有 pnpm(或使用桌面应用内置终端,内置终端自带 pnpm 与 dsh)。

方式一:一键脚本(推荐)

把整个 dsh-open-plugins 文件夹拷贝到目标机器,在 PowerShell 中执行:

powershell -ExecutionPolicy Bypass -File install-plugins.ps1

脚本会自动完成:

  1. 定位应用-AppDir <路径> 手动指定 → 应用运行时取进程路径 → 常见安装位置自动搜索(%LOCALAPPDATA%\Programs / Program Files / D:\ 等);
  2. 推导 CLI 引导路径<应用目录>\resources\app.asar.unpacked\lib\desktop-cli.js (固定相对位置,无需单独配置);
  3. 清理残留:移除历史安装可能留下的无 scope 坏依赖;
  4. 按包名安装两个插件并提示重启。

应用不在常见位置时手动指定:

powershell -ExecutionPolicy Bypass -File install-plugins.ps1 -AppDir "D:\Programs\DSH Desktop"

方式二:应用内置终端(免装 pnpm)

打开 DSH 桌面应用 → 内置终端,直接执行:

dsh plugin --profile desktop add @huntdier/dsh-client-ui-aionui-panel
dsh plugin --profile desktop add @huntdier/dsh-client-ui-skin-fairy-kingdom

方式三:普通终端手动安装

$env:ELECTRON_RUN_AS_NODE = "1"
& "D:\...\DSH Desktop.exe" --expose-internals "D:\...\resources\app.asar.unpacked\lib\desktop-cli.js" plugin --profile desktop add @huntdier/dsh-client-ui-aionui-panel
& "D:\...\DSH Desktop.exe" --expose-internals "D:\...\resources\app.asar.unpacked\lib\desktop-cli.js" plugin --profile desktop add @huntdier/dsh-client-ui-skin-fairy-kingdom

... 换成目标机器的实际安装路径;ELECTRON_RUN_AS_NODE=1 让应用 exe 以纯 Node 模式运行,不弹窗口。)

安装后

重启 DSH 桌面应用(或刷新 Web 页面),右侧面板与皮肤即生效。

注意:若与全家桶 @linxin666/dsh-web-ui-all 同时安装,两边会注册相同的 插件行(ui-dsh-aionui-panel / ui-skin-fairy-kingdom)。使用本仓库插件时请 不要同时安装全家桶;如必须共存,需让本仓库的包处于更晚的 patch 层。


4. 图片展示

妖精国皮肤 + 右侧面板整体效果

fairy-kingdom skin + aionui panel

  • 暖调灰阶主题:明亮插画垫在半透明暖纸面板之下,遮罩随亮/暗主题实时切换;
  • 深色变体是"灾后炉边"的暖炭夜调,金色余烬只落在链接、按钮与选中态上;
  • 右侧面板:Explorer 文件树 + Preview 多格式预览 + SCM 变更面板。

许可证

本仓库(含两个包)以 MIT 发布。两个包均派生自 @linxin666/dsh-web-ui (linxin666 / zhu1090093659,BSD-3-Clause),上游版权与许可声明已随各包 LICENSE 保留。