dsh-lego-plugin
v0.2.0
Published
Lego-style visualization of dynamic Cordis plugins in the DSH Web GUI — replaces the native Cordis Plugin panel with hot plug/unplug bricks, 4 themes, i18n, pure CSS. 乐高式 DSH 动态插件可视化:将左下角原生 Cordis 插件面板乐高化,支持热插拔启停、4 套主题、中英文,纯 CSS 渲染。
Maintainers
Readme
dsh-lego-plugin
DeepSeek Harness(DSH)Web 界面中动态 Cordis 插件的乐高式可视化。
本插件把左下角原生的 「Cordis 插件」面板替换成乐高积木视图,展示当前会话
正在运行的插件(dyn/*)。每个插件是一块纯 CSS 渲染的乐高砖——无外部库、
无 WebGL——并且每块砖都保留原生面板的完整生命周期操作:运行、停止、删除、
批准、拒绝。热插拔才是本插件的核心用途,而不只是好看的列表。
商标声明。 本项目与乐高集团(LEGO Group)无任何关联、背书或合作关系。 "LEGO" 是乐高集团的商标。积木风格外观仅为视觉隐喻。
范围。 本插件管理的是动态 Cordis 插件(
dyn/*,即通过cordis_define创建的插件)。cordis.yml里的静态 Loader 插件不在列表中 ——因为热插拔只对动态插件存在。
功能
- 替换原生 Cordis 插件面板 — 入口位置和名称不变(「Cordis 插件」), 数据与生命周期操作相同,只是呈现为乐高积木。
- 热插拔 — 点击积木:运行/停止中的插件可 运行 / 停止 / 删除, 等待批准时可 批准 / 批准(含未来版本) / 拒绝。插件启停时状态实时刷新。
- 乐高砖块 — 塑料质感 3D 砖(凸点高光 + 投影);运行中彩色实心 + 绿色 状态点,已停止灰化半透明,等待批准红色描边。
- 4 套主题 — 经典红、海洋蓝、森林绿、琥珀金(面板头部切换)。
- 搜索 — 按插件 id 过滤积木。
- 运行计数 — 侧边栏入口显示当前运行数量。
- 中英文 — 跟随界面语言(中文 / English)。
- 黑白主题 — 颜色取自
--dsw-alias-*主题变量。
样式参考
砖块与凸点的样式遵循经典的纯 CSS 乐高积木配方:
- rembertdesigns/CSS-Lego-Block — 本项目基于其凸点高光 + 投影配方。
- 纯 CSS 创作一块乐高积木 — 同一技法的讲解。
仓库中的积木/凸点视觉为原创代码,参考了上述资源;未逐字复制任何代码。
效果截图
安装
需要已安装带 Web 界面的 DeepSeek Harness。
dsh plugin --profile web add dsh-lego-plugin--profile 是必填参数,表示你的运行配置名。用 dsh web 启动 GUI 就填
web(最常见),CLI 填 headless,也可以是任意其他名字——缺失的 profile
会自动创建。
或直接从 GitHub 安装:
dsh plugin --profile web add github:XIAOke8698/dsh-lego-plugingit 安装会自动从源码构建;pnpm 可能要求你允许该包的构建脚本,然后重新
执行 add 命令。
使用
点击左下角 「Cordis 插件」。面板打开后,每个动态插件对应一块乐高积木。 点击积木查看操作:
| 积木状态 | 可用操作 | |---|---| | 运行中(彩色 + 绿点) | 停止、删除 | | 已停止(灰化) | 运行、删除 | | 等待批准(红描边) | 批准、批准(含未来版本)、拒绝 |
卸载
从 profile 移除该 bundle,即可恢复原生 Cordis 插件面板:
dsh plugin --profile web remove dsh-lego-plugin卸载干净且彻底,不会给别人留麻烦:
- 浏览器半卸载后立即恢复原生 Cordis 插件面板——插件停止后页面不留任何 本插件痕迹。
- 本插件注入的样式表随卸载自动移除,不残留任何全局样式。
cordis.patch.yml层会从 profile 中移除,下次dsh web启动时不再挂载。
也可以不卸载、只停止可视化替换:本插件自身就是动态插件,从乐高面板里找到
对应的 dyn/… 积木点 停止(或执行 cordis_stop),原生面板会立即回来。
开发
src/
index.js host 半(Loader 入口)
client/index.js 浏览器半——全部功能所在
scripts/
build-client.mjs 零依赖构建(仅需 Node)node scripts/build-client.mjs
node --check lib/client.jsLicense
MIT
