Skip to main content

deepseek-harness-desktop/packages/skins/minecraft

156Stars5Forks6Issues0Watchers

Give DSH Web GUI a Minecraft main menu-style pixel block appearance: a slowly rotating procedural panoramic skybox behind it, gray cobblestone buttons, and wood sign input boxes with corner brackets. Fully offline with no model requests.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the ningbainb/deepseek-harness-desktop monorepo — stars and activity count the whole repository.

Language
TypeScript
License
BSD-3-Clause
Branch
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add --allow-build=@linxin666/dsh-client-ui-skin-minecraft github:ningbainb/deepseek-harness-desktop#path:packages/skins/minecraft

Run 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

Install via your agent

Install the DeepSeek Harness plugin ningbainb/deepseek-harness-desktop/packages/skins/minecraft for me: review the repository at https://github.com/ningbainb/deepseek-harness-desktop first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Positioning

A Minecraft-style skin for DSH Web GUI: buttons replaced with gray stone slabs, input fields换成带角钉的木告示牌, and a slowly rotating procedural panoramic skybox drawn behind the interface.

Core Features

  • Render procedural panoramic skybox: Six-sided CSS 3D cube (four side biomes + sky top + grass block bottom), all pixel art drawn on-the-fly by code with no external textures
  • Recreate the Minecraft title screen's "slow Y-axis scroll" animation, letting the horizon drift across the background
  • Replace interface buttons with classic MC-style components (gray stone slabs, black borders, hover turns yellow, press sinks)
  • Replace input fields with wooden sign UI with corner nails
  • Replace panels with semi-transparent stone slabs, color-mapped to lapis blue, grass green, lime, and gold sand
  • When switching skins, clean up all writes (body attributes, injected divs, document title) in one go, leaving no traces

Technical Implementation

  • Language: TypeScript (with CSS Modules)
  • Key dependencies: @deepseek-ai/cordis (types only), lightningcss (CSS compilation), tsdown (bundling), vitest (testing)
  • Architecture pattern: Official standalone cordis bundle form — src/index.ts (host half) is an empty stub, src/client/index.ts (client half) renders the skin via apply(ctx); all side effects are registered via ctx.effect for cleanup, automatically reclaimed by cordis on dispose
  • Entry file: packages/skins/minecraft/src/client/index.ts (host entry src/index.ts does nothing)

Use Cases

Users who want to change the DSH Web GUI's visual style and love Minecraft aesthetics. When you "get bored with the current skin and want to try pixel art" under the same browser profile, install and run dsh-skin use minecraft to switch with one command; if you don't want to use it anymore, switch back to other skins or default state with dsh-skin use. It doesn't affect any chat, file, or model calling behavior—it only changes the "appearance."

Prerequisites & Compatibility

DependencyMinimum VersionDescription
Node^22.19.0 || >=24.0.0Package-level package.json does not declare engines separately, follows the monorepo root package.json engines field and packages/AGENTS.md agreement
DSHNot declaredUses official cordis bundle form (dsh.bundle.patch + cordis.patch.yml), does not specify specific DSH version in package.json
PlatformCross-platformPackage only contains DOM operations + CSS Modules, no native modules introduced; runs on DSH web profile browser side
Native ModulesNonepeerDependencies is empty; no native bindings like node-pty, sqlite, ffi introduced

Installation

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

Note: Installing only the package won't activate the skin. You also need dsh-skin use minecraft (helper script in repo scripts/dsh-skin) to mark it as the currently active skin; only one skin can be active at a time under the same profile.

Configuration

This plugin requires no additional configuration.

The skin's visual effects (buttons, panels, palette) are all hardcoded via CSS Modules and code constants—there are no runtime configuration items, Schema fields, environment variables, or toggles.

FAQ

Q: Does this skin need internet? Does it call the model?

A: No, and it doesn't call any models. The entire panoramic skybox is drawn locally by JavaScript—blocks, clouds, mountains, trees, houses drawn line by line into SVG—no external textures or network requests. Both README and source code comments explicitly state "does not trigger any model requests."

Q: What if the skin doesn't work after installing?

A: Installing only puts the skin package into the profile. You still need to run dsh-skin use minecraft (helper script in the repo) to mark it as the "currently active skin." Only one skin can be active at a time—unactivated skins won't be enabled.

Q: Does it save my chat history or personal information?

A: No. The skin package only reads/writes DOM (body attributes, a few injected divs, document.title). It has no local storage, network reporting, or backend calls. During uninstall, effect cleanup handlers undo everything.

Q: How do I switch back to the default appearance?

A: Use dsh-skin use <other skin name> to switch to another skin, or dsh-skin use none to return to no-skin state; when the skin package is uninstalled, it also automatically restores all written body attributes, injected divs, and document title.

Q: Will this package conflict with other skins?

A: dsh-skin tool handles mutual exclusion—only one skin line is enabled in the profile's cordis.patch.yml at a time. Other skins get disabled: true. So you can't stack multiple skins simultaneously.

Q: What's the difference from official features?

A: This is purely an appearance skin. It doesn't inject services, send cordis events, or intercept model requests. All official features (chat, files, settings, plugin marketplace, etc.) work unchanged—just buttons, input fields, and panels become block/slabs/wooden sign styled.

Q: Will it leave垃圾 when uninstalling?

A: No. The cordis uninstall process executes effect cleanup handlers: removes data-dsh-minecraft body attribute, removes injected stage/scrim, restores original document title. Unit tests in tests/apply.spec.ts explicitly cover these cleanup paths.

Difficulty Level

Beginner — one install command + one dsh-skin use minecraft to take effect; no configuration, no side effects, no switches to read docs for. Average users can complete full deployment within 1 minute.

Known Issues & Limitations

  • Only one skin can be active at a time: dsh-skin tool marks other skins as disabled: true in the profile's cordis.patch.yml. Two skins cannot be stacked simultaneously (this is a design limitation, not a bug)
  • Package-level package.json does not declare engines field: Build/run relies on Node version from monorepo root package.json with ^22.19.0 || >=24.0.0 agreement
  • Document title is only restored when the skin's own title is still in effect: If the shell later overwrites document.title, skin dispose won't overwrite it back to the original value (documented in comments at src/client/index.ts:407-410)

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

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)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory