前言¶
用 DeepSeek Harness(DSH)改 Minecraft 模组时,常见做法是自己在终端里跑 Gradle,再把日志片段贴回会话;模型很难稳定地选任务、等客户端就绪,更谈不上对 runData 这类一次性任务给出通过或失败的结论。minecraft-dev-starter 是社区维护的 DSH 工作流插件:在当前工作区里识别 Fabric、Forge、NeoForge 等工程,在会话标题栏提供运行目标与启停,并把日志接到侧边栏;可选的模型工具与面板共用同一份运行状态,便于「改代码 → 跑一遍 → 看 verdict」闭环。
这是什么¶
minecraft-dev-starter(npm 包名 minecraft-dev-starter,当前发布版本 0.1.11,MIT 许可证)由 Chemiofitor4096 维护。官方简介为:在 DeepSeek Harness 会话标题栏中检测、启动并验证 Minecraft 模组构建(DSH plugin: detect, launch and verify Minecraft mod builds from the session header)。
插件识别工作区中的模组与插件工程,在标题栏展示当前运行目标并提供启动、停止;日志流入侧边栏标签页。面板面向人操作,六个可选工具面向模型,两者共享运行状态与锁:同一工程至多一个实例,互不误杀对方拉起的进程。
核心功能¶
工程识别与运行目标¶
支持 Fabric、Forge、NeoForge、Architectury、Paper 与 Spigot,覆盖 Minecraft 1.7.10 至 26.x;单模块、多模块与聚合仓库均可,loader 只写在子模块时也能识别。运行目标从 Gradle 构建中提取,分为两类:
- daemon(常驻):如
runClient、runServer,直到人关闭窗口; - oneshot(会跑完):如
runData、runGameTestServer,结束时给出通过或失败,便于模型自动验证而无需人盯画面。
按 loader 惯例推断、尚未从构建脚本证实的目标会标记为未验证,仍可选择与启动。
托管启动、JDK 与依赖展示¶
任务通过工程自带的 Gradle Wrapper 启动。常驻目标依据日志中的就绪标记判定是否进入运行态;一次性任务区分成功、失败、被停止、起不来。停止时会终止 Gradle 及其整棵子进程树。
JDK 大版本按 MC 版本与 toolchain 推断;本机探测到的 JDK 可在「Mod Dev」面板选择,也可手动登记 JDK 根目录。选择保存在 ~/.dsh/mc-dev-starter/jdk.json,经 -Dorg.gradle.java.home 与 JAVA_HOME 传给 Gradle,不写进 gradle.properties。
声明依赖从 dependencies { }、gradle/libs.versions.toml 与元数据 depends 解析,按配置、坐标与 文件:行号 列出,用于核对是否已添加;不包含 Gradle 解析后的传递依赖图。
日志、状态与模型工具¶
运行记录按 DSH profile 存放在 ~/.dsh/mc-dev-starter/profiles/<name>/;宿主重启后按 PID 对账,无法确认存活时记为未知。日志支持跟随、级别着色与过滤(全部 / INFO+ / WARN+ / ERROR);异常退出时给出依赖解析、JDK 不匹配、端口占用、认证失败等可能原因。
工作区随当前会话的工作目录变化,切换会话自动重扫;没有可运行工程时不渲染标题栏胶囊,避免占用非 MC 项目界面。
可选模型工具(与面板同一服务):mc_projects、mc_project_detail、mc_launch、mc_launch_logs、mc_launch_list、mc_launch_stop。对 oneshot 目标,mc_launch 默认等到结束并返回 verdict(passed / failed / aborted / error)及失败行摘要。
安装 dsh-better-sidebar 后,面板与日志可在其侧边栏以图标标签页打开。
安装与启用¶
需要 DSH Desktop 0.2.1 或更高版本,或匹配的 dsh CLI。插件 peer 依赖 @deepseek-ai/cordis 与 @deepseek-ai/dsh-tools(见 npm 包 package.json)。
下面介绍官方文档中的安装方式(dsh plugin 是对 pnpm 的封装,效果等同于编辑 profile 的 package.json 后执行 pnpm install):
# 从 npm 安装
dsh plugin --profile desktop add minecraft-dev-starter
# 本地仓库(修改后即时生效)
dsh plugin --profile desktop add link:C:/Projects/minecraft-dev-starter
# 使用打包文件
dsh plugin --profile desktop add file:./minecraft-dev-starter-0.1.10.tgz
安装完成后重启 DSH。卸载:
dsh plugin --profile desktop remove minecraft-dev-starter
插件在 SkillHub 社区目录 归类为「工作流」;该目录为独立社区站点,与 DeepSeek / 幻方无官方从属关系。
典型用法¶
- 打开工作区包含 Minecraft 工程的 DSH 会话。
- 标题栏显示当前运行目标;点击名称打开浮层,选择工程与 Gradle 任务。
- 在「Mod Dev」面板「构建环境」中更换 JDK(下拉或填写 JDK 根目录)。
- 点击启动开始构建并运行;默认自动打开运行日志标签页(可通过配置关闭)。
- 运行中按钮变为停止,点击后终止 Gradle 及子进程。
用模型工具验证 oneshot 任务¶
- 调用
mc_project_detail,确认哪些目标是oneshot(如runData、runGameTestServer及项目自定义runGametest)。 - 调用
mc_launch启动;失败时查看返回的summary、failures,必要时用mc_launch_logs读全文。 - 常驻
runClient仅能自动断言是否进入运行态及日志异常;画面与手感仍适合人工查看后再让模型读日志。
配置¶
在 profile 的 cordis.patch.yml 中为插件条目添加 config(插件 id 以你 profile 中实际条目为准,文档示例为 mcdev-host):
- id: mcdev-host
name: minecraft-dev-starter
config:
autoOpenLogTab: true
# logDock: right # 默认:装了 dsh-better-sidebar 落底部工作台,没有则落右侧栏
readyTimeoutMs: 90000
logRingLines: 2000
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
autoOpenLogTab |
boolean | true |
启动后自动打开运行日志标签页 |
logDock |
right | bottom |
自动 | 日志停靠位置;可强制 right |
readyTimeoutMs |
number | 90000 |
等待进入运行态的超时(超时不计为失败) |
logRingLines |
number | 2000 |
内存保留的日志行数 |
适用场景与注意¶
适合谁:在 DSH 里日常开发 Fabric / Forge / NeoForge 等模组或 Paper 插件、希望标题栏一键跑 Client/Data、或希望 Agent 通过工具拿到 oneshot 构建结论的开发者。
权限与安全:启动时在工程目录执行该仓库自带的 Gradle Wrapper,环境变量继承自 DSH 宿主,即以当前 dsh 进程的用户权限运行工作区构建脚本——与你在本机手动执行 gradlew 同属一种信任边界。运行记录与日志写在 ~/.dsh/mc-dev-starter;除 Gradle 自身产物外不改工程目录;/mcdev/api 由本机 DSH Web 服务提供,文档说明不向外发送数据。安装前建议阅读 GitHub 仓库 源码、SECURITY.md 与 MIT 许可证。
其他限制:原生右侧栏标签无图标字段(图标依赖 dsh-better-sidebar);子模块各自成工程后,聚合根上单独挂的 run 目标不会出现在列表;Windows 上首次构建可能因下载 Gradle 与依赖耗时较长。
结尾¶
minecraft-dev-starter 把 MC 模组的识别、Gradle 托管启动、日志与 oneshot verdict 收进 DSH 会话标题栏与可选工具,减少在终端与聊天之间来回搬运的状态。进一步了解可查看 SkillHub 目录页 与 GitHub:Chemiofitor4096/minecraft-dev-starter。