deepseek-harness-desktop/packages/skins/minecraft

156Star5Fork6Issue0Watching

按 Minecraft 主菜单风格给 DSH Web GUI 换一套像素方块外观:身后缓慢旋转的程序化全景天空盒、灰石板按钮、带角钉木牌输入框,完全离线不触模型请求。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科

此插件是大仓库 ningbainb/deepseek-harness-desktop 的子包,星数与活跃度统计的是整个仓库。

语言
TypeScript
License
BSD-3-Clause
分支
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

安装

$ dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/minecraft

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 ningbainb/deepseek-harness-desktop/packages/skins/minecraft:先查看仓库 https://github.com/ningbainb/deepseek-harness-desktop.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

这是一套给 DSH Web GUI 用的 Minecraft 主菜单风格皮肤:把按钮换成灰石板方块、输入框换成带角钉的木告示牌,再在界面背后画一个缓缓旋转的程序化全景天空盒。

核心能力

  • 渲染程序化全景天空盒:六面 CSS 3D 立方体(四个侧面生物群落 + 顶面天空 + 底面草方块田),所有像素图都由代码当场绘制,不依赖任何外部贴图
  • 复刻 Minecraft 标题画面的"绕 Y 轴缓慢滚动"动作,让地平线在背景中飘过
  • 把界面按钮换成经典 MC 风格组件(灰色石板、黑色描边、悬停变黄、按下下沉)
  • 把输入框换成带角钉的木质告示牌 UI
  • 把面板改成半透明石板,配色映射到青金石蓝、草绿、石灰、金沙
  • 切换皮肤时把所有写入(body 属性、注入的 div、文档标题)一次性收回,不留痕迹

技术实现

  • 语言: TypeScript(含 CSS Modules)
  • 关键依赖: @deepseek-ai/cordis(仅类型)、lightningcss(CSS 编译)、tsdown(打包)、vitest(测试)
  • 架构模式: 官方独立 cordis bundle 形态——src/index.ts(host 半区)为空 stub,src/client/index.ts(client 半区)通过 apply(ctx) 渲染皮肤;副作用全部走 ctx.effect 注册清理器,dispose 时由 cordis 自动回收
  • 入口文件: packages/skins/minecraft/src/client/index.ts(host 入口 src/index.ts 不做任何事)

适用场景

想换换 DSH Web GUI 视觉风格、喜欢 Minecraft 美学的用户。同一个浏览器 profile 下"用腻了现在的皮肤想试试像素风"时,装上并执行 dsh-skin use minecraft 即可一键切换;不想用了再用 dsh-skin use 切回其他皮肤或默认状态。它不影响任何聊天、文件、模型调用行为,只是把"长相"换掉。

前置依赖与兼容性

依赖最低版本说明
Node^22.19.0 || >=24.0.0包级 package.json 未单独声明 engines,沿用 monorepo 根 package.json 的 engines 字段与 packages/AGENTS.md 约定
DSH未声明走官方 cordis bundle 形态(dsh.bundle.patch + cordis.patch.yml),未在 package.json 中指定具体 DSH 版本号
平台跨平台包内只有 DOM 操作 + CSS Modules,不引入原生模块;运行在 DSH web profile 的浏览器侧
原生模块peerDependencies 为空;未引入 node-pty、sqlite、ffi 等原生绑定

安装方式

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/skins/minecraft

注:仅"安装"包还不会让皮肤生效,还需要 dsh-skin use minecraft(仓库内 scripts/dsh-skin 辅助脚本)把它标记为当前激活的皮肤;同 profile 下同一时刻只激活一个皮肤。

配置项

本插件无需额外配置。

皮肤的视觉效果(按钮、面板、调色板)全部由 CSS Modules 与代码常量固定下来,没有运行时配置项、Schema 字段、环境变量或开关。

常见问题

Q: 这个皮肤需要联网吗?会调用模型吗?

A: 不需要,也不调用。整张全景天空盒是 JavaScript 在本地把方块、云、山、树、房屋一行一行画成 SVG 的,没有任何外部贴图或网络请求,README 与源码注释都明确"不触任何模型请求"。

Q: 装上之后皮肤没生效怎么办?

A: 安装只把皮肤包放进 profile,还需要执行 dsh-skin use minecraft(仓库里的辅助脚本)把它标记为"当前激活的皮肤"。同一时刻只能激活一个皮肤,未被激活的皮肤不会被启用。

Q: 会保存我的聊天记录或个人信息吗?

A: 不会。皮肤包只读写 DOM(body 属性、几个注入的 div、document.title),没有任何本地存储、网络上报或后端调用,卸载时由 effect 清理器逐条撤回。

Q: 怎么切回默认外观?

A: 用 dsh-skin use <其它皮肤名> 切到其它皮肤,或 dsh-skin use none 回到无皮肤状态;皮肤包卸载时也会自动把写入的 body 属性、注入的 div、文档标题全部还原。

Q: 安装这个包会跟其他皮肤冲突吗?

A: dsh-skin 工具负责互斥——profile 的 cordis.patch.yml 中同一时刻只有一行皮肤是 enabled,其他皮肤会带上 disabled: true。所以不能同时叠加多个皮肤。

Q: 和官方功能有什么区别?

A: 这只是外观皮肤,不注入服务、不发 cordis 事件、不拦截模型请求。所有官方功能(聊天、文件、设置、插件市场等)原样可用,只是按钮、输入框、面板变成方块/石板/木牌风格。

Q: 卸载时会留垃圾吗?

A: 不会。cordis 卸载流程会执行 effect 清理器:移除 data-dsh-minecraft body 属性、移除注入的 stage/scrim、还原原文档标题,单元测试 tests/apply.spec.ts 明确覆盖了这些收回路径。

上手难度

入门 — 安装一行命令 + 一次 dsh-skin use minecraft 即生效;没有配置项、没有副作用、没有需要阅读文档的开关,普通用户 1 分钟内可完成全部部署。

已知问题与限制

  • 同一时刻只能激活一个皮肤:dsh-skin 工具通过 profile 的 cordis.patch.yml 把其它皮肤标 disabled: true,不能两个皮肤同时叠加(这是设计限制,非 bug)
  • 包级 package.json 未声明 engines 字段:构建/运行依赖 Node 版本沿用 monorepo 根 package.json^22.19.0 || >=24.0.0 约定
  • 文档标题只在本皮肤自己的标题仍生效时还原:若 shell 后续又覆盖过 document.title,皮肤 dispose 时不会覆盖回原值(注释 src/client/index.ts:407-410 明确说明)

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/skins/minecraft)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录