DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

minecraft-dev-starter

Minecraft Dev Starter

检测 Minecraft 模组项目、从会话标头启动运行目标、在侧边栏中显示实时日志,并为一次性任务返回通过/失败判定的 DSH 插件

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Chemiofitor4096/minecraft-dev-starter#788104d27725f49921ef3c20496c676532afd9fd
README兼容性版本

兼容性与来源证明

Minecraft Dev Starter 以 minecraft-dev-starter 发布,当前版本为 0.1.11。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/11/4

版本

0.1.11stable
2026/11/4
0.1.10stable
2026/11/3
0.1.9stable
2026/11/2
查看其余 6 个版本收起版本
0.1.8stable
2026/11/1
0.1.7stable
2026/10/31
0.1.6stable
2026/10/31
0.1.5stable
2026/10/31
0.1.4stable
2026/10/31
0.1.3stable
2026/10/31

相关插件

正在加载相关插件…

最新版
0.1.11
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
2,223
最近提交
2026/11/4
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Experimental Inspector@deepseek-ai/dsh-experimental-inspector用于 Host 调试和 Client Runtime 检查的实验性跨 realm CDP hub

README

minecraft-dev-starter

minecraft-dev-starter

Run and verify Minecraft mod builds from the DeepSeek Harness session header.

English | 简体中文

The plugin detects Minecraft mod and plugin projects in the current workspace, offers run-target selection plus start/stop controls in the session header, and streams launch logs into a sidebar tab.

The panel serves people, the tools serve the model, and both share one run state and one lock: a project has at most one instance, whoever started it, and neither side kills the other's process.

Run targets have two lifecycles. runClient / runServer are daemons that keep running until the window is closed; runData / runGameTestServer finish and produce a pass or fail verdict. That is what lets the model close its own "change code → run it → read the verdict" loop instead of asking a human to judge a game window.

Screenshots

Run log in the bottom workbench while a client is running
Mod Dev panel: project profile, targets and declared dependenciesCapsule flyout: pick a project and a run target

Features

  • Project detection: Fabric, Forge, NeoForge, Architectury, Paper and Spigot, from Minecraft 1.7.10 to 26.x. Single-module, multi-module and composite builds are supported, including repositories that declare their loader only in a submodule.
  • Run targets: extracted from the Gradle build, split into daemon and oneshot. Targets inferred by loader convention are marked unverified, and remain selectable and launchable.
  • Managed launches: tasks are started through the Gradle wrapper. Daemons become "running" when their readiness markers appear in the log, not merely when the process is alive; one-shot tasks report success, failure, being stopped, or failing to start as distinct outcomes. Stopping kills Gradle and its whole process tree.
  • JDK selection: the required JDK major is inferred from the Minecraft version and toolchain. The panel lists the JDKs found on this machine and can also register a JDK root directory you type in. Choices stay local (~/.dsh/mc-dev-starter/jdk.json), never in gradle.properties, and are passed to Gradle as -Dorg.gradle.java.home plus JAVA_HOME, so what the panel shows is what actually runs. Automatic selection only takes over when the major version matches exactly and the wrapper's Gradle can run it.
  • Declared dependencies: dependencies { } blocks, gradle/libs.versions.toml and the metadata depends are parsed and shown with configuration, coordinate and file:line, so you can confirm that a dependency was really added. Only declarations are shown — resolved transitive graphs require running Gradle.
  • State persistence: run records are stored per profile (~/.dsh/mc-dev-starter/profiles/<name>/), so profiles do not see each other's instances. After a host restart records are reconciled against the process id; when liveness cannot be confirmed the outcome is reported as unknown instead of being invented.
  • Run logs: a sidebar tab, or a better-sidebar bottom workbench. Launch history per project, follow mode, level colouring (WARN and ERROR highlighted, stack frames and Gradle task lines distinguished, timestamps and loggers de-emphasised) and level filtering (All / INFO+ / WARN+ / ERROR) that is remembered. Abnormal exits come with a probable cause: dependency resolution, JDK mismatch, port in use, authentication failure.
  • Workspace following: the workspace is the current session's working directory; switching sessions rescans automatically. When the workspace has no runnable project the header capsule is not rendered, so it does not take up space in non-Minecraft projects; the panel tab stays available.
  • Model tools (optional): six tools backed by the same service as the panel — mc_projects (projects and targets), mc_project_detail (loader evidence, modules, JDK, declared dependencies, targets with their modes), mc_launch (start; daemons wait for readiness, one-shot targets wait for completion and return a verdict plus failing lines), mc_launch_logs (log tail with structured diagnosis), mc_launch_list (history including verdicts), mc_launch_stop (kill the process tree).
  • Optional integration: with dsh-better-sidebar installed, the panel and the log open as icon tabs in its sidebar.

Installation

Requires DSH Desktop 0.2.1 or newer, or the matching dsh CLI.

# From npm
dsh plugin --profile desktop add minecraft-dev-starter

# Local repository (edits take effect immediately)
dsh plugin --profile desktop add link:C:/Projects/minecraft-dev-starter

# From a packed tarball
dsh plugin --profile desktop add file:./minecraft-dev-starter-0.1.10.tgz

Restart DSH afterwards. To uninstall:

dsh plugin --profile desktop remove minecraft-dev-starter

dsh plugin is a wrapper around pnpm: it adds the plugin to the profile's dependencies and appends packages that declare dsh.bundle to dsh.profile.bundles. Editing the profile's package.json and running pnpm install has the same effect.

Usage

  1. Open a session whose workspace contains a Minecraft project.
  2. The header shows the currently selected run target. Click its name to open the flyout and pick a project and task.
  3. To change the JDK, use the "Build environment" section of the "Mod Dev" panel: pick one of the detected JDKs, or type a JDK root directory and add it.
  4. Press play to build and run. The run log tab opens automatically; this can be disabled by configuration.
  5. While running, the button turns into stop, which terminates Gradle and its children.

Flyout layout follows the number of projects: a single-project workspace skips the project list and lets the header carry the project identity (name, loader and version, path); a multi-project workspace shows a fixed-height list, and switching projects only updates the target area below it, so the page does not jump.

Verifying changes

For targets that finish, the model gets a verdict without anyone watching a window:

  1. mc_project_detail shows which targets are oneshot — runData, runGameTestServer, and any runGametest defined by the project;
  2. mc_launch starts one. These targets wait for completion by default and return a verdict: passed / failed / aborted / error;
  3. on failure, summary is the first failing line and failures holds the matched lines; mc_launch_logs reads the rest.

What a daemon (runClient) can assert automatically is whether it reached the running state and whether the log contains exceptions. Visuals and feel stay a human judgement: the model starts the client, a human looks, then the model goes back to the log.

Configuration

Add a config block to the plugin entry in the profile's cordis.patch.yml:

- id: mcdev-host
  name: minecraft-dev-starter
  config:
    autoOpenLogTab: true
    # logDock: right        # default: bottom workbench with dsh-better-sidebar, native sidebar otherwise
    readyTimeoutMs: 90000
    logRingLines: 2000
KeyTypeDefaultDescription
autoOpenLogTabbooleantrueOpen the run log tab after a launch
logDockright | bottomautomaticWhere the log opens. Unset means the better-sidebar bottom workbench when installed, otherwise the native right sidebar; right forces the native sidebar
readyTimeoutMsnumber90000How long to wait for the running state; a timeout is not a failure
logRingLinesnumber2000Log lines kept in memory; the on-disk log is always complete

logDock only affects automatic opening and the panel's "open log" button. Both tabs exist in the native sidebar and in better-sidebar's tab list regardless of the setting.

Compatibility

PlatformVersionsNotes
Fabric1.14 – 26.xrunClient and friends from loom
Forge1.7.10 / 1.12.2 / 1.16.5 / 1.20.1including legacyforge
NeoForge1.20.1 – 26.xmoddev plugin
Architectury1.16 – 26.xtargets split per submodule
Paper / Spigot1.7.10 – 26.xserver plugin projects

The JDK level is inferred from the Minecraft version: 1.7.10 and 1.12.2 need Java 8, 1.18 to 1.20.4 need Java 17, 1.20.5 and above need Java 21, 26.x needs Java 25. The requirement is compared against installed JDKs and mismatches are surfaced in the panel.

Multi-module builds are supported: each submodule is listed as its own project, its run targets carry the Gradle module prefix (:modules/core:runClient) and they launch from the aggregator root, where the wrapper lives. When IntelliJ's .idea directory is present, its Gradle module list, minecraft facet platform, project JDK and run configurations are read as a fallback source — build scripts stay authoritative and are never overridden.

Verified against dsh 0.2.1-rc.4 (DSH NEXT 2.0.21-next) on Windows 11. Host-side changes are recorded in CHANGELOG; raising the supported range is treated as a breaking change.

Development

npm install
npm run build        # builds the client into lib/client.js; required after editing src/client
npm test             # 135 tests
npm run check:pack   # asserts the npm tarball really contains the client and the sources
npm run build -- --watch

lib/client.js is git-ignored and only enters the npm package through the files field, so a fresh clone has to run npm run build once before a link: install can load the client bundle. prepack builds it automatically on npm pack / npm publish, and test/bundle.test.js loads the built bundle the way the host does, so a broken client fails the test suite instead of the user's install.

CI runs the suite on ubuntu, windows and macOS against Node 20/22/24, plus a package-contents job.

Repository layout, pitfalls and verification records live in AGENTS.md. Design documents: plan and DSH plugin mechanics (both in Chinese).

Publishing

DSH plugins are distributed as npm packages; there is no separate registration.

  1. Manifest: package.json declares dsh.bundle.patch (pointing at cordis.patch.yml), plus dsh.client.platform when the plugin ships a browser UI.

  2. Artifacts: npm run build produces lib/client.js. It is git-ignored and included in the package through the files field. The runtime reads it directly; nothing is installed or built on the user's machine.

  3. Checks: npm test and npm run check:pack (asks npm what would actually be packed and fails when lib/client.js, the sources or the READMEs are missing, or when test/ leaks in).

  4. Publish: npm publish --access public. With a stage-only granular token, use the staged flow instead:

    npm stage publish                 # submit to the staging area
    npm stage list                   # wait until validation finishes
    npm stage approve <stage-id>     # human 2FA confirmation
    

    Machine submits, human approves: a leaked token still cannot publish on its own. Approval moves the latest tag.

  5. Compatibility: host APIs keep moving. Align @deepseek-ai/dsh-tools and @deepseek-ai/cordis ranges with the target runtime before publishing, and release separately across major versions rather than widening the range.

  6. Install: users run dsh plugin --profile <name> add <package> and restart, or install from the Plugins panel.

To verify the packaged form locally, npm pack and dsh plugin add file:<tarball> exercise the same path as an npm install.

Security

Reporting channel, supported versions and the full threat model: SECURITY.md.

  • What it executes. Launching a target runs the project's own Gradle wrapper (gradlew.bat / gradlew) in the project directory, with the environment of the DSH host. That means the workspace's build script runs with your user permissions — the same trust you extend by invoking gradle yourself. Only targets discovered inside the workspace are offered.
  • What it touches. Run state and logs are written under ~/.dsh/mc-dev-starter (per profile); the JDK choice lives in jdk.json next to it. Nothing is written into the project beyond what Gradle itself writes.
  • What it sends. Nothing leaves the machine. The /mcdev/api routes are served by the local DSH web server behind its own authentication, and the client bundle posts diagnostics only to those routes.
  • Subprocesses. At most one target per project; stopping kills the whole process tree (Windows taskkill /T, POSIX process group) so no orphan java process survives. No implicit clean, build directories are never deleted.
  • Package contents. No dependencies are declared, and no install or post-install script runs on your machine — prepack only executes in the publisher's workspace.

Two advisories shown on the npm page are inherited from the host runtime, not from this package:

  • zod (GHSA-mrhx-c7xc-m3w5) arrives via @deepseek-ai/dsh-tools → @deepseek-ai/dsh-llm. This package declares no dependencies and cannot pin it.
  • "Uses eval" is a false positive on a string literal in @deepseek-ai/dsh-ptc-runtime's reserved-word table; eval does not appear in this repository or in the built bundle.

Known limitations

  • Native sidebar tab types have no icon field; icons only appear on dsh-better-sidebar tabs.
  • An aggregator root is not listed once its submodules are: if the root carries its own run targets, they are not offered.
  • .idea is a fallback source only. A module that is neither in settings.gradle nor in the IDE module list is not discovered, and the facet platform never overrides a judged loader.
  • One-shot verdicts combine the exit code with log markers: a non-zero exit is always a failure, and a zero exit is still a failure when test-failure markers appear (for example N required tests failed), so a runner that swallows a failure does not look like a pass. When neither is available the verdict is unknown.
  • The first build on Windows downloads Gradle and the project's dependencies, which can take several minutes; later builds reuse the Gradle daemon.

License

MIT