用 dsh-mc-launcher 把 DeepSeek Harness 改造成 Minecraft 启动器

前言

DeepSeek Harness(dsh)把模型、工具、会话和界面都做成插件,官方仓库的说法是「一切皆插件」。这意味着你不必改核心代码,也能给当前进程叠一层新能力。社区里已经出现不少侧边栏、主题和终端界面插件;其中一类更极端:直接把 Web 页面改成另一种应用。

dsh-mc-launcher 就属于这一类。它把版本清单、文件下载、微软账号登录和 Java 游戏进程都放进 dsh 宿主里跑,浏览器里则给出启动器界面。需要说明的是:本文引用的插件目录(deepseek-harness-plugin.com)是独立的社区站点,与 DeepSeek / 幻方没有官方从属关系,也不是官方应用商店;条目只指向维护者仓库,安装前仍要自己核对源码。

下面按目录页与 GitHub 仓库交叉核实后的信息,说明这个插件是什么、怎么装、怎么用。

这是什么

dsh-mc-launcher 是一款界面增强类的 bundle 插件,由 hellosky983 维护,仓库许可证为 MIT,主要语言是 JavaScript。截至 2026-08-18,目录页与 GitHub 上的星标均为 4;package.json 中的版本号是 0.1.0。仓库创建于 2026-08-14,本文写作时 main 分支最新提交为 df3d7fd(2026-08-16)。

一句话定位:在 DeepSeek Harness 里提供 Minecraft 启动器能力——宿主进程负责清单、下载、登录和启动,界面以插件形式挂到 Web UI 上。游戏目录默认是 ~/.minecraft,目录结构与官方启动器相同,已有版本、存档和资源可以直接复用。

项目在界面和文档里都标了 UNOFFICIAL。它不是 Mojang / Microsoft 的产品,也不分发游戏本体:client jar、libraries 和 assets 都从 Mojang 官方源拉取(README 列出的域名包括 launchermeta.mojang.compiston-meta.mojang.comresources.download.minecraft.net)。未购买 Minecraft 的账号不能靠这个插件绕过验证;仓库明确不提供离线模式。

核心功能

对照目录页、README 和仓库里的 index.js,当前能力可以分成四块。

1. 启动器本体。 从官方版本清单读取 release / snapshot / 远古版本,已安装的会做标记。安装时下载 client jar、libraries(natives 优先用依赖里的 adm-zip 解压,不行再回退到系统 unzip)和 assets;已存在且大小匹配的文件会跳过。启动时按版本 JSON 组装 Java 命令,展开 ${natives_directory}${classpath} 等占位符。Java 运行时优先探测官方启动器放在 ~/.minecraft/runtime/**/bin/java 的副本,其次才用 PATH 里的 java。界面还可以看游戏日志、停止进程,以及改内存、分辨率、Java 路径。

2. 微软账号登录。 默认走设备码流程(device code → Xbox Live → XSTS → Minecraft services)。浏览器授权码(PKCE)需要额外配置回调地址,README 把它标成高级备选。登录必须填写你自己在 Azure 注册的应用 client id,不能借用别人的。账号 token 只写在本机 ~/.dsh-mc/account.json,文件权限 600;README 写明无遥测、无第三方统计。

3. 双界面。 目录页和 package.json 的描述强调:bundle 可以占据页面的 root slot,做成全屏启动器。README 的操作说明更细:默认是聊天界面里的「Minecraft」标签页(uiMode 默认 tab),和 AI 会话共存;也可以在设置里改成全屏(fullscreen,需重启生效)。标签页还可以关掉,只保留 mc_* 工具、不显示启动器页。另有五套主题预设(森林 / 石板 / 海洋 / 末地 / 熔岩)和自定义强调色。

4. 交给 agent 的工具。 宿主把启动器和游戏数据暴露成工具,源码里已注册的名称包括:mc_list_versionsmc_installmc_launchmc_killmc_logsmc_statusmc_analyze_crashmc_world_infomc_modsmc_version_advice,以及目标列表相关的 mc_set_goals / mc_goals / mc_complete_goal。进阶方向有两条:一条是 mc_screenshot + mc_see + mc_control(X11 截屏、DashScope 的 Qwen-VL 看图、xdotool 模拟键鼠);另一条是 mc_bot_*(用 Mineflayer 经局域网协议连进世界,读位置/背包/血量等并做移动、挖掘、放置)。后两条依赖额外环境,不是「装完就能在所有系统上用」的默认路径。

安装与启用

目录页给出的安装命令如下,在已经装好 dsh CLI 的终端里执行:

dsh plugin add github:hellosky983/dsh-mc-launcher

插件会以当前 dsh 进程的权限运行,安装时可能执行代码。安装前请阅读仓库源码和 MIT 许可证。若需要可复现安装,目录页建议固定 commit。本文写作时 main 的提交是:

dsh plugin add github:hellosky983/dsh-mc-launcher#df3d7fd1216de03ed8c3cb4fe192963801467fc5

环境方面,README 写的是:Node.js 18+、全局 dsh CLI(文档按 v0.1.0-rc.6 记录)、DSH 宿主,以及启动游戏所需的 Java。平台声明为 Linux / macOS / Windows。兼容性备注写明:2026-08-14 在独立 profile 和 web profile 上实测过「列出版本 / 安装 1.21.11 / 启动进入世界」;同时也写了结论可能随 dsh 主线变化而失效,要以你本机实测为准。Minecraft 1.21 及以上通常需要 Java 21+。

README 另外提供了两种本地接入方式,适合不想直接 plugin add、或希望和现有聊天实例隔离的情况。

方式 A:克隆仓库,在已有 profile 的 package.json 里把依赖写成 link: 路径,并把 dsh-mc-launcher 加进 dsh.profile.bundles,然后在该 profile 目录执行 pnpm install 并重启 dsh。

方式 B:建一个独立 profile(README 示例端口 39970),用单独的 DSH_HOME 启动:

git clone https://github.com/hellosky983/dsh-mc-launcher.git
cd dsh-mc-launcher
# 按 README 在 <项目>/dsh-home/profiles/minecraft/package.json 声明 bundles 后:
cd <项目>/dsh-home/profiles/minecraft && pnpm install
DSH_HOME=<项目>/dsh-home dsh --profile minecraft --port 39970

浏览器打开 http://127.0.0.1:39970 即为该实例的启动器页。独立实例的会话、设置和凭证不与聊天用的 profile 混用。

卸载时从 profile 的 dependenciesdsh.profile.bundles 两处删掉 dsh-mc-launcher,再 pnpm install 并重启。可选删除 ~/.dsh-mc/(设置和账号);~/.minecraft/ 不会被卸载步骤清掉。

典型用法

装好之后,先处理登录。仓库要求使用你自己注册的 Azure 应用:

  1. 打开 Azure 门户 → App registrations → New registration。Supported account types 选「Accounts in any organizational directory and personal Microsoft accounts」。
  2. 进入新应用 → Authentication,勾选 Allow public client flows 并保存。
  3. 复制 Application (client) ID,填进启动器的「设置 → Microsoft client id」。
  4. 点 Sign in,按提示在浏览器打开链接并输入设备码。

首次使用会走中文界面上的四步引导:配置 client id → 登录 → 选版本安装 → 开始游戏。未登录时点 PLAY 会直接唤起登录。如果报 no Azure client id configured,就是还没填 client id;AADSTS700016 通常表示这个 client id 在你的微软目录里不存在,需要换成自己注册的那一个。

默认界面是标签页:先开一个会话,顶部会出现「Minecraft」,点进去就是启动器。也可以在聊天里直接让 agent 调工具,例如 README 给的说法是「帮我安装 1.21.11 并启动」——对应 mc_list_versions / mc_install / mc_launch。崩溃时可以用「游戏起不来了」一类描述,走 mc_analyze_crashcrash-reports/logs/latest.log

常用配置写在 ~/.dsh-mc/settings.json,README 列出的默认值包括:

配置项 含义 默认
gameDir 游戏目录 ~/.minecraft
javaPath Java 可执行文件,空则自动探测 自动
memoryMb JVM 堆内存 2048
clientId 自有 Azure 应用 ID 空(登录必需)
width / height 窗口分辨率 854×480
uiMode tabfullscreen tab
showTab 是否在会话里显示 Minecraft 标签 true

若要用视觉控制回路(mc_screenshot / mc_see / mc_control),README 额外要求:配置 DASHSCOPE_API_KEY(或在设置里填 DashScope key)、Linux X11 以及 xdotoolffmpeg(Debian/Ubuntu 示例为 sudo apt install xdotool ffmpeg),游戏建议窗口模式。mc_control 会聚焦游戏窗口并模拟键鼠,执行期间不要同时操作电脑。局域网机器人模式则要先在游戏内「对局域网开放」,再 mc_bot_connect;依赖 mineflayermineflayer-pathfinder,这两项已写在插件的 dependencies 里。

适用场景与注意事项

比较适合已经在本机跑 dsh Web UI、同时有正版 Minecraft 账号、希望把「装版本 / 启动 / 看崩溃日志」接到同一个 agent 会话里的人。如果你只是要一个日常启动器,官方启动器或其它独立启动器更直接;这个插件的价值在于启动器跑在 dsh 进程里,并且把操作暴露成工具。

使用前需要接受几条边界:

  • 插件与当前 dsh 进程同权限,可以读写 ~/.minecraft/、写入 ~/.dsh-mc/、访问 Mojang / 微软登录域名,并拉起 Java 子进程。视觉和键鼠相关工具还会调用本机的 xdotool / ffmpeg。只安装你审查过源码的版本,并尽量固定 commit。
  • 必须用自己购买的微软账号登录,没有离线模式。首次使用会弹出 EULA 同意确认。项目声明不用于规避付费、分发盗版或冒充官方。
  • Microsoft 登录用的是你自己的 Azure client id,这是微软应用条款的要求,不是可选项。
  • mc_see 会把截图发到 dashscope.aliyuncs.com;不配 key 就不要走这条路径。mc_bot_* 连的是本机局域网端口,需要你主动开放 LAN。
  • README 的兼容性结论绑定在 dsh 0.1.0-rc.6 的一次实测上。宿主升级后,bundle 的 slot、工具注册或 Java 探测都可能变化。

小结

dsh-mc-launcher 做的事情很具体:把 Minecraft 启动器做成 dsh 的一层 bundle,清单、下载、设备码登录和游戏进程都在宿主里完成,界面可以是标签页也可以全屏占据页面。它是 MIT 开源的社区插件,和 Mojang Studios / Microsoft 无关联,也不是 DeepSeek 官方应用。

目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-mc-launcher/

GitHub:https://github.com/hellosky983/dsh-mc-launcher

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜