README_EN.md

August 21, 2026 · View on GitHub

DSHcraft — Play Your Agent Workspace

npm Video Demo Afdian Buy Me a Coffee GitHub Stars License

CI npm downloads DSH Three.js React Node.js

简体中文 English 日本語 Français Deutsch

Turn DeepSeek Harness into a playable, Minecraft-inspired Agent workspace.
Explore a voxel world · Equip models · Enchant reasoning effort · Adventure alongside active Agents

Installation

DSHcraft is a formal combo package declaring both dsh.bundle and dsh.client. Once installed, it contributes the stable Cordis row minecraft-ui; its browser module identity is dsh-minecraft-ui.

Do not enable a candidate build directly in your primary Web profile. Install it in an isolated canary profile first, inspect the composition layer, and then promote it through the Guardian stage / canary / promote workflow.

Install the prebuilt package:

dsh plugin --profile <canary> add dsh-minecraft-ui
dsh --profile <canary> --dump-config

Local tarball

pnpm install
pnpm run verify
pnpm pack
dsh plugin --profile <canary> add ./dsh-minecraft-ui-0.3.0.tgz
dsh --profile <canary> --dump-config

Pin a Git commit

dsh plugin --profile <canary> add github:TFboy1/dsh-minecraft-ui#<commit-sha>

Git installation runs the package's prepare build. pnpm 10+ requires users to explicitly allow this install script. Only authorize trusted source code and configure allowBuilds: dsh-minecraft-ui using the exact package key shown by DSH. Use the prebuilt npm package or a tarball if you do not want to grant install-time build permission.

Uninstall:

dsh plugin --profile <canary> remove dsh-minecraft-ui

Overview

DSHcraft does not reimplement the chat interface. As a Cordis Client Plugin, it mounts into the official shell.overlay and preserves DSH-native Workspace, Session, Conversation, Trajectory, Composer, permissions, model selection, and context statistics. It only transforms how you enter and experience them into a block-world metaphor.

Screenshots

▶ Watch the complete DSHcraft video demo on Bilibili

Playable voxel world
DSHcraft voxel world and game HUD
Inventory and crafting
DSHcraft inventory, hotbar, and crafting interface
Agent plugin chest
DSHcraft Agent plugin chest and tool details
Model repository
DSHcraft model repository and equipped model
Reasoning enchantments
DSHcraft reasoning-effort selection
Semantic facilities
DSHcraft enchanting table and interaction hint

Core Metaphors

DSH conceptDSHcraft representation
Running workA working dog indoors
Latest Agent progressA status sign above the dog
ModelEquipment
Reasoning effortEnchantment
Tool / Plugin capabilityItems stored in chests
Chat / ComposerCrafting table
Context / TokenExperience bar and inventory pressure
MemoryEnder-chest-like long-term storage metaphor (reserved)
MCPRedstone system (reserved)
Workspace / ProjectMap and cartography table
Community PluginStatic community loot chests in the wild

Features

Block world

  • First-person voxel world powered by Three.js.
  • Move, jump, sprint, sneak, mine, place blocks, and switch hotbar slots.
  • Persist world differences, player position, inventory, chests, and selection state.
  • Broken blocks become physical world drops with pop-out, falling, rotation, pickup delay, and proximity pickup.
  • When the inventory is full, uncollected quantities remain in the world.

Native DSH workbench

Press G or use the indoor crafting table to enter a Minecraft-inspired native DSH interface:

  • Expand, collapse, and sort Workspace / Project folders.
  • Create, open, rename, fork, and archive Sessions.
  • Use native Conversation / Trajectory views and history pagination.
  • Keep native Composer, Queue, Steer, Stop, Slash Command, and attachment logic.
  • Keep native permission modes, approvals, models, reasoning effort, Context, and Token statistics.
  • Use an additional 3×3 crafting panel without replacing native conversation features.

Working dogs

  • Dogs are created only for work that is currently running; idle Sessions do not spawn creatures.
  • One dog represents one active Session job.
  • Status signs cover thoughts, response streams, Tool Calls, commands, queues, approval waits, errors, and context compaction.
  • Tool Calls guide the dog to a semantic facility and play quadruped movement:
    • Read → reference bookshelf
    • Command → Agent terminal
    • Web Search → cartography table
    • Write / Edit → crafting table
  • Right-click a dog to switch to its Session and open the native workbench directly.

Semantic facilities

FacilityFunctionShortcut
Crafting tableNative DSH conversation and 3×3 craftingG
Model chestBrowse and equip modelsM
Plugin chestManage tools available to the current AgentP
Enchanting tableAdjust reasoning effortR
Cartography tableBrowse Workspace / Project mapsN
Community plugin chestExplore the community plugin catalogL
Reference bookshelfActivity location for Read tools
Agent terminalActivity location for Command tools
Notice boardControls tutorial

Workbench, chest, enchanting table, bookshelf, terminal, and cartography facilities drop themselves when broken, can enter the inventory, and can be placed again. Core indoor facilities lost because of early incorrect drop rules are restored once in older saves.

Controls

InputAction
W A S DMove
SpaceJump
CtrlSprint
ShiftSneak
Mouse movementLook around
Hold left mouse buttonMine blocks
Right mouse buttonUse blocks, facilities, or working dogs
Middle mouse buttonPick the targeted block
Mouse wheel / 19Switch hotbar slot
EInventory
FSwap with offhand
TIn-game chat
TabSession list
EscGame menu
GNative workbench
MModel chest
PPlugin chest
REnchanting table
NWorkspace map
LCommunity plugin chest

The browser requests Pointer Lock after the first click. Opening any facility releases the pointer immediately.

Configuration

The bundle ships with safe defaults. Override the stable minecraft-ui row in a later patch for the selected profile:

- id: minecraft-ui
  config:
    dataDirectory: dshcraft
    catalogUrl: https://awesome-dsh-plugin.com/plugins.json
    catalogCacheTtlMs: 21600000
    catalogLimit: 2000
    confirmationTtlMs: 60000
FieldDefaultDescription
dataDirectorydshcraftSafe relative directory inside $DSH_HOME
catalogUrlCommunity catalog URLHTTP(S) only
catalogCacheTtlMs21600000Community catalog cache duration
catalogLimit2000Maximum catalog entries, range 1–5000
confirmationTtlMs60000Lifetime of a community-plugin confirmation token

Cordis validates the configuration with Schemastery and fills defaults. Invalid paths, protocols, and numeric ranges fail immediately during plugin activation.

Community Plugin Security Model

Community plugins use a Discover → Collect → Inspect → Explicitly Confirm flow:

  1. Read plugin metadata from a curated catalog.
  2. Collect candidate plugins into community chests.
  3. Show the install command, risk markers, and third-party code warning.
  4. Return a Guardian installation plan after user confirmation.

Confirmation is always a dry run. DSHcraft never spawns the CLI or modifies a profile by itself. Candidate plugins must go through Guardian stage, be verified in an isolated canary, and only then be promoted by the user.

Architecture

dsh-minecraft-ui/
├─ src/index.js                    # Host plugin, Config, RPC, persistence
├─ cordis.patch.yml                # Composition layer contributed by dsh.bundle
├─ client/src/index.jsx            # shell.overlay registration and style lifecycle
├─ client/src/game-root.jsx        # DSH state binding and game UI composition
├─ client/src/engine.js            # Three.js world, interaction, drops, working dogs
├─ client/src/world.js             # Terrain, buildings, blocks, save migration
├─ client/src/inventory.js         # Item definitions and stacking rules
├─ client/src/inventory/           # Crafting, containers, player-inventory state machine
├─ client/src/dsh/                 # Session projections, tool routing, community loot
├─ client/src/ui/                  # Workbench, chests, map, and HUD
├─ scripts/build.mjs               # Deterministic Host / Client build
├─ scripts/verify-package.mjs      # Bundle, identity, license, and size contracts
├─ lib/index.js                    # Built Host entry point
├─ lib/client.js                   # lazy-CJS browser bundle
└─ test/                           # Node test runner tests

Why shell.overlay

The official DSH Root and AppFrame continue to own Sidebar, Conversation, Details, and Composer. DSHcraft registers only a reversible world overlay and reveals/restyles the native interface inside the workbench.

This avoids mounting Session / Conversation a second time in another React Root, protecting drafts, attachments, streaming state, and Session lifecycle consistency.

Development

Requirements

  • Node.js 22+
  • pnpm 11+
  • A working DeepSeek Harness Web environment

Commands

pnpm install
pnpm test
pnpm run build
pnpm run package:check
pnpm run verify
pnpm pack --dry-run
  • pnpm test: Host, package, inventory, crafting, movement, Session, model, world, working-dog, and drop tests.
  • pnpm run build: generates lib/index.js and lib/client.js from src/ and client/src/ without rewriting source directories.
  • pnpm run package:check: checks Bundle manifest, Client factory identity, publish allowlist, dual licenses, and bundle size.
  • pnpm run verify: runs syntax checks, build, tests, package contracts, and artifact checks.
  • prepare: supports Git installs pinned to a commit.
  • prepack: enforces full verification before tarball / npm publication.

Re-run pnpm run build after changing Client source. Perform manual frontend verification in an isolated canary profile.

Persistence

Capability and community state is stored by default in:

$DSH_HOME/dshcraft/capabilities.json
$DSH_HOME/dshcraft/community.json
$DSH_HOME/dshcraft/community-cache.json

World, player, and inventory saves are managed by the game persistence service. Do not edit DSH Session logs directly.

Known Limitations

  • Current interaction targets keyboard and mouse; touch game mode is not supported.
  • This is a spatial DSH theme and client, not a complete Minecraft implementation.
  • When the community catalog is unavailable, DSHcraft falls back to cache or built-in candidates.
  • Some facilities are semantic DSH mappings and do not behave exactly like vanilla Minecraft blocks.
  • The Client bundle embeds Three.js and fonts, so it has an explicit size budget below 2 MB.

License

Project code is released under the MIT License.

The pixel font is Monocraft; its license is stored at licenses/Monocraft-LICENSE.txt. Minecraft is a trademark of Mojang Studios. This project is not affiliated with Mojang Studios or Microsoft.