DSH Web Suite: one-click installer for over a dozen UI extensions including task-board, git-graph, pet, and remote access, plus all skins, with built-in compatibility shims.
- Language
- TypeScript
- License
- Apache-2.0
- Branch
- main
Install
$ dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-web-ui-allRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
One-Line Description
DSH Web Suite Bundle: One installation automatically pulls in over ten UI extensions including task-board, git-graph, pet, remote access, skin center, and all skin resources. It has no business functionality itself, serving only as a distribution carrier and legacy DOM hook compatibility shim.
Core Capabilities
- Aggregates 13 sub-packages into a single installation: One declaration automatically introduces task-board / git-graph / pet / ssh / remote-web-ui / live-stats / aionui-panel / tool-describe-image / liangshen / web-ui-settings / community-plugins / skins / skin-center, avoiding individual selection and repeated installations.
- Compatibility shim: When the dsh web host shell only renders css-module class names (e.g.,
*_sidebarCol/*_centerCol/*_detailsCol) without legacydata-pane/data-dsh-frameattributes, the browser side writes these attributes to the three-column containers and root container via selectors, allowing child plugins and skins mounted via legacy selectors to continue working. - React re-render automatically reapplies attributes: Monitors DOM changes via MutationObserver, merges into a single scan next frame (
requestAnimationFrame+ done flag), automatically reapplies attributes when React rebuilds column containers; idempotent check confirms all attributes are in place before short-circuiting exit, avoiding repeated zone refreshing. - Coexists with independently installed plugins of the same name: Aggregated entry IDs are uniformly namespaced with
web-ui-(e.g.,web-ui-task-board), while independent installations still use the original ID; loader no longer reports duplicate IDs, host side registers only once. - Does not break React reconciliation: Shim only writes existing attribute values, does not delete nodes or modify structure, and does not interfere with the host shell's React rendering.
Technical Implementation
- Language: TypeScript
- Key Dependencies: @linxin666/dsh-client-ui-task-board / @linxin666/dsh-skins / @linxin666/dsh-client-ui-skin-center / @linxin666/dsh-client-ui-web-ui-settings / @linxin666/dsh-remote-web-ui
- Architecture Pattern: cordis bundle aggregate;
aggregate.ymlis the only hand-written manifest (patchFromcontributes sub-packagecordis.patch.ymlinsert lines and addsweb-ui-namespace,depsparses sub-package names and writes topackage.json#dependencies), generated byscripts/aggregate.mjsintocordis.patch.yml; host side has no business logic, browser side is the DOM compatibility shim - Entry Files: src/index.ts (host, empty apply) / src/client/index.ts (compat shim)
Use Cases
Users who are new to DSH Web and want to immediately get the full enhanced experience (task panel, Git view, pet, remote access, custom skins) without selecting plugins one by one. Also serves as a fallback shim when older plugins become invalid after official dsh web host updates, ensuring child plugins can still mount via legacy selectors.
Prerequisites & Compatibility
| Dependency | Minimum Version | Description |
|---|---|---|
| DSH | Not declared | This package's package.json does not declare dsh engines; runtime is implicitly locked via @deepseek-ai/* SDK |
| Node | ^22.19 || >=24 | Per packages/AGENTS.md:9; this package's package.json does not declare engines |
| Platform | Cross-platform | Primarily browser-side patch, works as long as host dsh web runs cross-platform |
| Native Modules | None | All via cordis bundle + Web DOM API, no native binding |
Installation
dsh plugin --profile web add github:zhu1090093659/dsh-web-ui/packages/dsh-web-ui-all
Configuration
This plugin requires no additional configuration (the aggregate bundle itself has no independent configuration surface; see respective sub-plugin READMEs and settings page's Web UI plugin group for sub-plugin configurations).
FAQ
Q: Is there anything else needed after installation for the plugin to take effect?
A: Restart dsh web. If using source code development mode, besides dsh plugin add, you also need to first run pnpm install && pnpm -r build && node scripts/link-profile.mjs, then restart dsh web for it to take effect.
Q: I only want to install one or two plugins, not the whole bundle. What should I do?
A: Simply install the corresponding independent sub-package (e.g., dsh plugin add @linxin666/dsh-client-ui-task-board); no need to go through this bundle. Installing this package activates all sub-plugins, and you cannot select only a subset.
Q: Will there be conflicts if installed simultaneously with a same-named independent plugin package?
A: No. This package's aggregated entry IDs uniformly carry the web-ui- prefix (e.g., web-ui-task-board), while independent installations still use the original ID (task-board), and loader no longer rejects duplicate IDs. It's recommended to keep only one source; having both provides no additional benefit.
Q: How should configuration lines written by plugin ID in profile be mapped?
A: When plugins come from this bundle, use the web-ui- prefix (e.g., for remote-web-ui's autoTunnel config line, write web-ui-remote-web-ui), and use the plugin's original ID when independently installed.
Q: After upgrading to a new version, the new version doesn't take effect. How to troubleshoot?
A: After modifying the profile's package.json version number, execute pnpm install. Top-level node_modules/@linxin666/* entries may still link to the old store directory. Need to confirm these links point to the new version (Windows: cmd /c rmdir <link> then cmd /c mklink /J <link> <target>), then restart dsh web.
Q: What custom logic is actually installed in this package's code?
A: Host side has no business logic at all (apply is an empty function); browser side has only one compat shim that adds legacy data-pane / data-dsh-frame attributes to the dsh web host shell's sidebar/center/detail three-column containers, allowing child plugins mounted via legacy selectors to continue working.
Q: After the official dsh web host upgrades, will this package still work?
A: Yes. The compat shim uses MutationObserver to monitor DOM changes and reapplies attributes in the next frame. After React re-rendering rebuilds column containers, attributes are automatically reapplied, and idempotent checks prevent repeated triggers.
Difficulty Level
Beginner — One installation command takes effect immediately, no configuration required; understanding underlying behavior requires reading README and source code, but daily use requires no intervention.
Known Issues & Limitations
- Activating the bundle loads all sub-plugins together; partial selection is not possible; for partial installation, use the corresponding independent sub-packages (README.md:38).
- Aggregated entry IDs are uniformly namespaced with
web-ui-, allowing this package to coexist with same-named independent plugin packages: loader no longer rejects duplicate IDs, host side registers only once (second source is a no-op), browser side deduplicates by package name; having both sources provides no additional benefit, recommended to keep only one (README.md:39). - The
@deepseek-ai/*SDK version is locked; compatibility follows this repository's release节奏; cross-major version upgrades require confirming SDK compatibility (README.md:40).
中文 | English
DeepSeek Harness(DSH)Web GUI 的插件与皮肤全家桶
梁神模式 · 任务看板 · Git 图谱 · 右侧面板 · 移动端远程 · SSH 运维 · 图像理解 · 鲸鱼娘宠物 · 实时吞吐 · 皮肤中心
是什么
dsh-web-ui 是给 DeepSeek Harness(DSH)Web GUI 用的插件和皮肤集合:面向 DeepSeek V4 Pro 的「梁神模式」agent 预设,以及任务看板、Git 图谱、右侧面板、移动端远程、SSH 运维、图像理解、鲸鱼娘宠物、实时吞吐和皮肤中心。所有插件都走官方 profile 机制挂载到 dsh web,不改 DSH 源码;可以逐个安装,也可以用聚合包一次装齐(聚合包额外引入外部右侧栏插件 dsh-better-sidebar 并默认接管右侧面板,详见 dsh-web-ui-all README)。

| 能力 | 原生 dsh web | dsh-web-ui 全家桶 |
|---|---|---|
| Agent 预设 | 官方预设(Standard / Minimal 等) | 梁神模式:面向 V4 Pro 的两阶段锚定预设 |
| 任务看板 | 无 | 多列看板 + cron 定时真实执行 |
| Git 可视化 | 无 | 分支泳道 + 提交历史图谱 |
| 文件预览与变更 | 无 | 右侧面板:better-sidebar(资源管理器 / 编辑器 / 终端 / Git / 浏览器);旧 aionui 面板已停止支持(默认关闭,设置卡可临时切回) |
| 移动端远程 | 无 | 扫码配对,SSE 实时同步 |
| 远程服务器运维 | 无 | SSH 面板:终端 / 传输 / 隧道 / 集群 |
| 图像理解 | 无 | describe_image 视觉工具 |
| 主题皮肤 | 默认主题 | 皮肤中心 11 款,先试穿再应用 |
功能插件
梁神模式
DeepSeek V4 Pro 对首轮工具目录很敏感。社区评测里,官方 Standard / PTC 预设只有 91 / 92 分,Minimal 能到 99 / 96,但 Minimal 只有两个工具。梁神模式把这两步拼起来:新建会话时在预设选择器里选「梁神模式」,首轮按 Minimal 开局(只暴露持久 bash 与 str_replace_editor,只放行你自己的消息),轨迹锚定后自动切到 PTC Mode,完整工具注册表、workspace 指令和 skill 目录随后恢复。Windows 原生环境实测(DeepSeek V4 Pro)98 / 99,均值 98.5,不是抽卡,也不需要牺牲完整工具能力。

原理、稳定化控制与限制详见 dsh-liangshen README。
任务看板
侧边栏点「任务看板」进入。任务按五列摆开:待规划、待办、进行中、已完成、已失败。点卡片上的「执行」,任务交给真实的 DSH 智能体会话去跑,跑完状态自动回写;想复盘就跳回执行会话看完整过程。
任务也支持 Host 定时跑:详情里配 cron 表达式(比如每天 23:00 自动升级 DSH、每周一 09:00 生成周报),关闭浏览器后仍会到点执行和结算。可选的空闲睡眠保护支持 Windows、macOS 和带 systemd-logind 的 Linux,允许屏幕熄灭,同时阻止整机因空闲睡眠;该设置默认关闭。
| 多列看板 | 定时执行 |
|---|---|
![]() | ![]() |
Git 图谱
输入框上方有分支选择器,可以切分支、翻提交历史;Git 图谱把分支泳道和提交历史画出来,仓库再大也能顺着时间线找到变更。

右侧面板
右侧面板由外部插件 dsh-better-sidebar 提供(聚合包已集成并默认启用),支持其内置功能与第三方插件注册,详见其 README。

此前的 aionui-panel 右侧面板已停止支持:默认关闭,不再维护、测试或接受修复,后续版本将从全家桶移除;设置 → Web UI 插件 → 右侧面板 可临时切回(自行承担风险)。
鲸鱼娘宠物
一只常驻界面的鲸鱼娘,跟着智能体状态换动画:思考、等待、工作、庆祝。可以点她互动(摸头),喂小鱼干加亲密度,从幼鲸一路养到「深海羁绊」。名字能改,位置能拖,不想看就藏起来。
| 陪伴工作 | 互动面板 |
|---|---|
![]() | ![]() |
实时吞吐统计
会话状态行本来就有 token 用量,本插件补的是实时吞吐:响应边流边更新输入 / 输出 token 估算(~ 表示启发式估算),TPS 跟在步骤计数后面;provider 用量一到,估算自动换成真实值。

移动端远程
侧边栏底部的手机图标打开配对面板。扫码(或复制链接)配对后,手机进独立移动端界面,远程操作当前的 dsh web 工作区:看会话、开新会话、收发消息、切模型和思考强度、调权限预设,都和桌面端同步。配对令牌一次性、限时,「停止」随时吊销所有设备;二维码默认走局域网,开 cloudflared 公网隧道后手机在任何网络都能配对。
实时消息与隧道:移动端靠 SSE(Server-Sent Events)收实时消息。Cloudflare quick tunnel(trycloudflare.com)和 Tailscale Serve 不透传 SSE,普通 HTTP 正常、实时推送到不了;这种网络下插件自动降级轮询,收发消息正常,只是新消息可能晚几秒。要即时推送就用支持 SSE 的隧道(Cloudflare named tunnel、自定义 TCP 端口转发等)。
| 工作区列表 | 会话列表与新建会话 |
|---|---|
![]() | ![]() |
| 聊天(折叠的深度思考与工具调用) | 模型与思考强度选择 |
![]() | ![]() |
远程连接
侧边栏「SSH」入口打开远程运维面板。主机支持密钥 / 密码认证,可从 ~/.ssh/config 一键导入;配置都在 ~/.dsh/dsh-ssh.json。对已配置主机可执行真实操作:
- Web 终端:xterm.js 远程终端,实时输出,窗口大小自适应;
- 文件传输:SFTP 上传 / 下载,有进度条,能浏览远程目录;
- 端口转发:本地隧道直连远程内网服务(数据库、API、管理后台),只监听 127.0.0.1;
- 集群执行:一条命令并发跑多台主机,按别名 / 环境 / 标签过滤;
- Agent 直连:Agent 和面板共用同一份主机配置,对话里说一句「连一下 xxx 看看状态」,智能体就去执行远程命令。
图像理解
给纯文本模型补上视觉:对话里提到图片(本地路径、http(s) URL、会话附件)时,describe_image 把图片发给配置好的 OpenAI 兼容视觉端点(Qwen-VL、GLM-4V、GPT-4o、本地 Ollama 都行)回答,进会话的只有返回的文本,图片本身不进会话记录。纯文本模型输入框没有图片入口,插件在输入框加了个图片按钮:选图后生成附件引用插进草稿,模型就能用 describe_image 分析;工具还支持 prompt 参数传自定义指令(OCR、UI 诊断、翻译),比默认描述准。端点、模型、密钥、默认指令在「设置 > 插件配置 > Image understanding」里配,即时生效。
设置中心
全部插件的开关和参数都在「设置」里,改了即时生效。设置侧边栏的一级菜单:通用设置、模式、插件、Agent 预设,加上 Web UI 插件组(归组 task-board / live-stats / remote-web-ui / describe-image)、皮肤中心、社区插件与宠物,打开即直接展开内容、无需再点折叠;插件配置页保留三个内置插件(Shell / Agent loop / Web search),各自独立开关与配置。

皮肤
皮肤中心有 11 款皮肤,都支持先试穿再应用:试穿即时生效、退出完全还原,满意再一键应用。

现有 10 款皮肤一览(龙的传人 / 初音未来 · 电子歌姬两款截图待补充);Maid Atelier 预览见下方:

Windows XP(Luna)
还原 Luna 经典界面:蓝色渐变窗口条、绿色「开始」按钮、Bliss 蓝天桌面,全局直角风格。

Blue Fantasy 蓝色幻想
鲸鱼插画垫在半透明面板下面,靛蓝色调贯穿全局,暗色主题下更明显。

鲸吟(Whale Song)
深海鲸语女神主题:无文字纯氛围背景画(蓝发女神与鲸群居左、冰蓝星座网格与金色细线点缀、右侧大量留白)垫在半透明面板下面,冰蓝 / 浅青 / 深海军蓝 / 钴蓝冷色体系贯穿全局,暗色变体是深海夜航调。
· 
夕港(Harbor)
黄昏港口主题:动漫少女港口背景(暮光蓝天空渐入日落橙)垫在半透明面板下面,深暮蓝底与日落橙主色贯穿全局,亮色是薄暮纱、暗色是深海夜航纱。
· 
深海女仆工坊(Maid Atelier)
深海蓝工坊主题,包含双角色图层与响应式侧边栏装饰。本皮肤单独采用 CC BY-NC-SA 4.0,仅限非商业使用。
· 
快速开始
系统要求
- 已安装 DeepSeek Harness,
dsh web可正常启动。 - npm 安装方式无额外要求;从仓库安装需要 Node.js >= 22 与 pnpm。
三步上手
- 安装聚合包:
dsh plugin --profile web add @linxin666/dsh-web-ui-all - 重启
dsh web,侧边栏出现全部插件入口 - 打开「设置 > 插件配置」按需开关插件,或在皮肤中心试穿皮肤
从 npm 安装(推荐)
插件已发布到 npm(@linxin666 scope),一条命令装齐:
dsh plugin --profile web add @linxin666/dsh-web-ui-all
装完重启 dsh web,侧边栏就有全部插件入口。只要皮肤就装 @linxin666/dsh-skins。
装到了旧版本? pnpm 11+ 的发布年龄门禁(
minimumReleaseAge)会把新发布(约 10 天内)的版本静默隔离,导致按上面命令实际装到旧版(如0.1.6而非0.1.10)。旧版皮肤中心缺少 "carrier 内建皮肤可解析入口" 的修复,应用皮肤后重启会以ERR_MODULE_NOT_FOUND .../dsh-client-ui-skin-<id>/index.js崩溃。解决办法:在 profile 的pnpm-workspace.yaml设置minimumReleaseAge: 0(或把@linxin666/*加进minimumReleaseAgeExclude),再执行dsh plugin --profile web update @linxin666/dsh-web-ui-all升级到最新版。详见 issue #71。
从 GitHub 仓库安装(开发调试)
插件包已在 npm 发布,仓库安装仅供开发调试(需要 Node.js >= 22 与 pnpm):
# 1. 克隆仓库
git clone https://github.com/zhu1090093659/dsh-web-ui.git
cd dsh-web-ui
# 2. 安装依赖并构建
pnpm install
pnpm -r build
# 3. 把全家桶链接进 web profile(推荐,先链接全部子包再注册聚合包)
node scripts/link-profile.mjs
dsh plugin --profile web add link:$(pwd)/packages/dsh-web-ui-all
# 4. 重启 dsh web,侧边栏即可看到全部插件入口
dsh web
只想用皮肤:第 3 步只执行 link-profile 后安装
packages/dsh-skins即可。注意:profile 目录不是 pnpm workspace,聚合包里的
workspace:*依赖会回退拉取 npm 已发布版本; 若 npm 版本滞后或损坏会出现「宿主已挂载但 UI 不显示」,此时先用node scripts/link-profile.mjs让全部子包走仓库构建产物。
单独安装某个插件
不想装全家桶时,可单独安装任意插件(npm 已发布,直接用包名):
dsh plugin --profile web add @linxin666/dsh-liangshen # 梁神模式
dsh plugin --profile web add @linxin666/dsh-client-ui-task-board # 任务看板
dsh plugin --profile web add @linxin666/dsh-ssh # 远程连接(SSH)
dsh plugin --profile web add @linxin666/dsh-tool-describe-image # 图像理解工具
dsh plugin --profile web add @linxin666/dsh-pet # 鲸鱼娘宠物
dsh plugin --profile web add dsh-better-sidebar # 右侧面板(推荐;资源管理器/编辑器/终端/Git/浏览器)
dsh plugin --profile web add @linxin666/dsh-client-ui-aionui-panel # 旧右侧面板(aionui-panel,已停止支持,仅过渡保留)
验证与卸载
装好重启 dsh web,侧边栏出现对应入口就是生效了;也可以用 dsh --profile web --dump-config 确认插件配置层已挂载。侧边栏没新入口,多半是装完没重启 dsh web。
卸载:dsh plugin --profile web remove @linxin666/dsh-web-ui-all,然后重启 dsh web。
技术细节见 docs/plugins.md。
安装排障
展开查看 pnpm 常见问题
pnpm 的严格(isolated)布局只把聚合包放在 profile 顶层,patch 行引用的 11 个子包(共 12 行 insert)会被收进嵌套目录,
dsh web会报Cannot find package '@linxin666/dsh-...'。本包的子包已声明为 dependencies;使用严格布局时,在 profile 的pnpm-workspace.yaml加nodeLinker: hoisted(或旧式public-hoist-pattern: ['@linxin666/*']),再重新安装即可。
首次安装若提示
ERR_PNPM_IGNORED_BUILDS(pnpm 拒绝依赖的构建脚本),按提示把cloudflared/cpu-features/ssh2加入 profile 的pnpm-workspace.yamlallowBuilds后重新执行即可。
pnpm 11 release-age 门禁:新版本发布后约 10 天内,pnpm 11 的
minimumReleaseAge门禁可能静默装回更旧的@linxin666/*版本(如dsh-web-ui-all@0.1.5配旧版皮肤中心)。旧版皮肤中心 Apply 皮肤时会写入独立皮肤包引用,导致dsh web启动崩溃(ERR_MODULE_NOT_FOUND ... dsh-client-ui-skin-*)。在 profile 的pnpm-workspace.yaml中排除全部@linxin666/*包后再安装或更新:minimumReleaseAgeExclude: - '@linxin666/*'
常见问题
装完重启了,侧边栏还是没有入口?
A: 先确认插件装进了 web profile(命令里的 --profile web),再用 dsh --profile web --dump-config 确认插件配置层已挂载;还不行就看上文「安装排障」。注意页面刷新不够,要重启 dsh web 进程。
定时任务为什么没有到点执行?
A: 定时调度由 dsh web Host 完成,不要求浏览器标签页保持打开。Host 停止、系统睡眠或长暂停期间错过的触发点按「错过即跳过」处理,不排队补跑;同一任务正在运行时到点也会顺延到下一个匹配点。若需要允许息屏但阻止整机因空闲睡眠,可显式开启任务看板的电源保护设置。
手机配对后收不到实时消息?
A: Cloudflare quick tunnel 和 Tailscale Serve 不透传 SSE,这种网络下插件自动降级轮询,消息正常收发,只是新消息可能晚几秒。要即时推送就用支持 SSE 的隧道(Cloudflare named tunnel、自定义 TCP 端口转发等)。
皮肤试了不满意怎么办?
A: 皮肤支持先试穿再应用:试穿即时生效、退出完全还原,没点「应用」就不落盘,随便试。
只想用皮肤,或者只装某一个插件?
A: 只要皮肤就装 @linxin666/dsh-skins;只装某一个插件就用「单独安装某个插件」里的包名,两者都走 npm 安装。
装了全家桶还能再单独装同一个插件吗?
A: 可以。聚合包的行 id 统一带 web-ui- 前缀(如 web-ui-describe-image),与独立包自己的 id(如 describe-image)不冲突,dsh web 不会再报 duplicate loader entry id;同一插件双源加载时 host 半区只注册一次,浏览器半区按包名去重。两个来源并存没有额外收益,建议只保留一个。注意:profile 里按 id 写的配置行,若插件来自聚合包要用 web-ui- 前缀的 id(如 remote-web-ui 的 autoTunnel 配置行写成 web-ui-remote-web-ui);独立安装时仍用插件原 id。
已知限制
- 任务看板由 Host 调度,关闭浏览器后仍可运行;Host 停止或整机睡眠期间错过的触发点跳过、不补跑。可选电源保护默认关闭,只阻止空闲系统睡眠,不拦截合盖、手动睡眠、休眠或关机,详见 dsh-task-board README。
- SSH 密码与 passphrase 口令以明文保存在
~/.dsh/dsh-ssh.json(权限 0600);断线重连可能重放非幂等命令,远程输出原样返回、不脱敏,安全模型见 dsh-ssh README。 - 移动端靠 SSE 实时推送:Cloudflare quick tunnel 和 Tailscale Serve 不透传 SSE,插件自动降级轮询,新消息可能晚几秒。
- 仓库安装需要 Node.js >= 22 与 pnpm,仅供开发调试;npm 安装不受影响。
社区
社区交流群在这里,和开发者、其他用户一起聊用法、报问题、提想法。QQ 扫码加入「DSH Web UI 交流群」:

也可以加 Discord 社区,或直接到 GitHub Issues 报 Bug / 提需求。
友情链接
- DeepSeek Harness Desktop —— 为 DeepSeek Harness (DSH) 生态打造的现代化桌面端体验。
- LINUX DO —— 有理想的新社区。
- dshfind —— 面向 DeepSeek Harness 的学习与分享社区,聚合论文精读、插件超市与用户排名。
- deepseek-plugin-store —— DeepSeek Harness 独立社区插件商店,发现、安装并提交经过验证的插件、工具与扩展。
- dsh-data-agent —— 为 DSH 定义专用 Data Agent 预设,让 AI 帮你查询、更新、分析数据。
- dsh-TUI —— Claude Code 风格全屏交互终端插件,补位官方缺失的终端 TUI:像素鲸鱼顶栏、实时工作状态行、思考流式展开、双击 Esc 回滚、上下文进度条与 TPS 仪表。
- dsh-tianshu-tui —— 基于官方 DeepSeek Harness 的交互式终端 UI 插件,在官方基础上增加 TDD 与证据门等工作流。
- dsh-genui —— 助手回复内联渲染生成式 UI(dsh-ui fence):布局、图表、表单、Mermaid、3D 与面板停靠,组件交互回传模型。
- dsh-annotation —— DSH Web 选中批注插件:选文字、写批注、随消息发送,模型按 Annotation N 逐条对照回复。
参与贡献
- 先读 CONTRIBUTING.md 再开 PR;用户可见变更请附截图或验证证据。
- 提交信息遵循 Conventional Commits(如
fix(task-board): 修复 xxx),代码、文档与提交信息全程禁止 emoji。 - 新插件与皮肤用脚手架生成:
node scripts/dsh-plugin-new <name>、node scripts/dsh-skin-new。 - 提交前过门禁
pnpm typecheck && pnpm test && pnpm docs:check;完整开发流程见 docs/development.md。
许可证
本仓库以 Apache-2.0 授权。迁入第三方代码必须保留 LICENSE 与署名;活跃且有上游的第三方优先 fork 或依赖引用,不搬代码。
来源与版权
| 包 | 来源 | 版权 |
|---|---|---|
| dsh-task-board / dsh-git-graph / dsh-aionui-panel / dsh-pet / dsh-remote-web-ui / dsh-live-stats / dsh-web-ui-settings / dsh-liangshen / dsh-skins / dsh-web-ui-all / skins | 作者 zhu1090093659 个人开发 | Apache-2.0(zhu1090093659) |
| dsh-client-ui-skin-matrix | 贡献者原创(Matrix 深夜护眼暗色皮肤) | Apache-2.0(贡献者 seanchen 声明) |
| dsh-tool-describe-image | 移植自 whitelonng/dsh-plugin-describe-image(deepseek-harness packages/vision/tool-describe-image) | Apache-2.0(zhu1090093659) |
| dsh-better-sidebar | 外部集成插件 omdsh-dev/DSH-better-sidebar(右侧面板,npm 依赖引用) | MIT(omdsh-dev) |
贡献者
喜欢这个项目?点个 Star。
报告 Bug · 请求功能 · 查看 Releases







