Minecraft
@keeb/minecraftv2026.10.15.2
Security Notice
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.
01README
Minecraft server control + installer + metrics collection (https://github.com/keeb/swamp-minecraft)
02Behaviors
@keeb/minecraft/serverv2026.10.15.2minecraft_server.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshHost? | string | SSH hostname/IP (set via CEL from lookup model) |
| sshUser? | string | SSH user (default 'root') |
| tmuxSession? | string | tmux session name |
| serverDir? | string | Server directory path |
| startScript? | string | Start script relative to serverDir |
| logPath? | string | Path to latest.log |
| serverName? | string | Resource instance name for writeResource |
fn say(message?: string)
Broadcast a message to Minecraft players via the server console
| Argument | Type | Description |
|---|---|---|
| message? | string | Message to broadcast |
fn op(playerName?: string)
Grant operator status to a Minecraft player
| Argument | Type | Description |
|---|---|---|
| playerName? | string | Player name to op |
fn deop(playerName?: string)
Revoke operator status from a Minecraft player
| Argument | Type | Description |
|---|---|---|
| playerName? | string | Player name to deop |
fn drawImage(imagePath?: string, width?: number, anchorPlayer?: string, x?: number, y?: number, z?: number, facing?: enum, dimension?: string, orientation?: enum, distance?: number, alphaThreshold?: number, name?: string, packFormat?: number)
Draw a PNG into the world as block art (concrete/wool/terracotta) via a generated datapack function, anchored on a player or fixed coordinates
| Argument | Type | Description |
|---|---|---|
| imagePath? | string | Local path to a PNG (transparent pixels are skipped) |
| width? | number | Width in blocks; height keeps the image aspect ratio |
| anchorPlayer? | string | Anchor on this online player's current position/facing (overrides x/y/z/facing/dimension) |
| x? | number | Anchor x |
| y? | number | Anchor y |
| z? | number | Anchor z |
| facing? | enum | Direction the viewer at the anchor looks |
| dimension? | string | Dimension id |
| orientation? | enum | Upright wall in front of the anchor, or flat on the ground |
| distance? | number | Blocks between the anchor and the art |
| alphaThreshold? | number | Average alpha below this leaves the block untouched |
| name? | string | Function name: swampdraw:<name> (re-runnable later) |
| packFormat? | number | Datapack format; 0 = detect from the server jar's version.json |
fn warnShutdown()
Broadcast a shutdown warning to Minecraft players and wait 30 seconds
fn stopMinecraftServer()
Gracefully stop a Minecraft server running in a tmux session via SSH, then wait for java to exit
fn status()
Query Minecraft server status: player count and names
fn startMinecraftServer()
Start a Minecraft server in a tmux session via SSH on a running VM
fn collectMetrics()
Collect player metrics and write Prometheus textfile + JSON log
Resources
server(infinite)— Minecraft server operation result
metrics(infinite)— Minecraft player metrics collection result
drawing(infinite)— Block-art image drawn into the world by drawImage
@keeb/minecraft/installerv2026.10.15.2minecraft_installer.ts
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshHost | string | SSH hostname/IP (set via CEL from fleet) |
| sshUser? | string | SSH user |
fn installDeps(vmName: string, javaPackage?: string)
Install required packages (JRE, tmux, bash, curl, unzip) on the VM
| Argument | Type | Description |
|---|---|---|
| vmName | string | VM name (used as resource instance name) |
| javaPackage? | string | Alpine JRE package (e.g. openjdk25-jre for MC 26.x packs) |
fn upload(vmName: string, localPath: string)
Upload a server pack zip to the VM via rsync
| Argument | Type | Description |
|---|---|---|
| vmName | string | VM name (used as resource instance name) |
| localPath | string | Local path to the server pack zip |
fn extract(vmName: string, remotePath: string, serverDir?: string)
Extract server pack zip, discover modloader config and start script
| Argument | Type | Description |
|---|---|---|
| vmName | string | VM name (used as resource instance name) |
| remotePath | string | Remote path to the server pack zip |
| serverDir? | string | Directory to extract into |
fn installFtb(vmName: string, packId?: string, versionId?: string, serverDir?: string)
Install an FTB modpack server via FTB's server installer (for packs that don't publish a server zip), using system Java
| Argument | Type | Description |
|---|---|---|
| vmName | string | VM name (used as resource instance name) |
| packId? | string | FTB modpack ID (required) |
| versionId? | string | FTB version ID (empty = latest release) |
| serverDir? | string | Directory to install into |
fn configure(vmName: string, serverDir: string, jvmMemory?: string)
Configure JVM memory, EULA, and server variables
| Argument | Type | Description |
|---|---|---|
| vmName | string | VM name (used as resource instance name) |
| serverDir | string | Server directory |
| jvmMemory? | string | JVM memory (e.g. 10G) |
Resources
ftbInstall(infinite)— FTB server installer result (pack/version installed)
deps(infinite)— Package install result
upload(infinite)— Server pack upload result
server(infinite)— Discovered server config (modloader, start script, paths)
config(infinite)— Server configuration result (JVM, EULA)
03Workflows
@keeb/start-minecrafte85aaef3-20fd-4cf9-b255-e9cf895d4066
Start a Minecraft server by VM name
mainAuth, start VM via fleet, then start Minecraft server
1.authkeebDev02.auth— Authenticate with Proxmox via keebDev02
2.ensure-vm-runningfleet.start— Start VM if stopped and wait for IP
3.start-minecraftminecraftGame.startMinecraftServer— Start Minecraft server and wait for ready
4.annotategrafanaHub.createAnnotation— Create Grafana annotation
@keeb/stop-minecraft4e11e3ef-8854-4d31-a980-fd572f97c3e0
Stop a Minecraft server by VM name
mainAuth, look up VM via fleet, warn players, stop Minecraft, stop VM
1.authkeebDev02.auth— Authenticate with Proxmox via keebDev02
2.lookupfleet.lookup— Find VM by name and populate vmid/IP
3.warn-playersminecraftGame.warnShutdown— Broadcast shutdown warning to Minecraft players
4.stop-minecraftminecraftGame.stopMinecraftServer— Gracefully stop Minecraft server process
5.stop-vmfleet.stop— Shut down the VM
6.annotategrafanaHub.createAnnotation— Create Grafana annotation
@keeb/reboot-minecraft7d166515-1eb3-4128-9c64-3249bc3cd645
Reboot a Minecraft server by VM name
mainAuth, gracefully stop Minecraft, stop VM, restart and start Minecraft
1.authkeebDev02.auth— Authenticate with Proxmox via keebDev02
2.lookupfleet.lookup— Find VM by name and populate vmid/IP
3.warn-playersminecraftGame.warnShutdown— Broadcast shutdown warning to Minecraft players
4.stop-minecraftminecraftGame.stopMinecraftServer— Gracefully stop Minecraft server process
5.stop-vmfleet.stop— Shut down the VM
6.ensure-vm-runningfleet.start— Start VM and wait for IP
7.start-minecraftminecraftGame.startMinecraftServer— Start Minecraft server and wait for ready
8.annotategrafanaHub.createAnnotation— Create Grafana annotation
@keeb/status-minecraftb1dc5f5d-baec-4b33-818a-59df0501469b
Check Minecraft server status by VM name
mainAuth, lookup VM IP, then check Minecraft server status
1.authkeebDev02.auth— Authenticate with Proxmox
2.lookup-vmfleet.lookup— Look up VM IP from fleet
3.check-statusminecraftGame.status— Check Minecraft server status
@keeb/minecraft-install7469bfde-1b52-4b7f-a3a5-1aa8200077f0
Install and start a Minecraft server from a server pack zip on any VM
mainInstall deps, upload pack, extract, configure, start server
1.authkeebDev02.auth— Authenticate with Proxmox
2.lookup-vmfleet.lookup— Lookup target VM to populate fleet resource
3.install-depsminecraftInstaller.installDeps— Install JDK, tmux, bash, curl, unzip on the VM
4.upload-packminecraftInstaller.upload— Upload server pack zip to the VM
5.extract-packminecraftInstaller.extract— Extract server pack and discover modloader config
6.configure-serverminecraftInstaller.configure— Configure JVM memory, EULA, and server variables
7.start-serverminecraftGame.startMinecraftServer— Start the Minecraft server in a tmux session
8.enable-monitoringmonitoringAgent.enableTextfileCollector— Enable node-exporter textfile collector for metrics
@keeb/minecraft-install-ftb00ae2e00-9c10-4dd5-8924-0dc4238db6a8
Install an FTB modpack server (via FTB's server installer) on any VM — deps, install, EULA + JVM config. Start with start-minecraft.
mainInstall deps, run FTB installer, configure
1.authkeebDev02.auth— Authenticate with Proxmox
2.lookup-vmfleet.lookup— Lookup target VM to populate fleet resource
3.install-depsminecraftInstaller.installDeps— Install JRE, tmux, bash, curl, unzip on the VM
4.install-ftbminecraftInstaller.installFtb— Run FTB server installer (modloader + mods, system Java)
5.configure-serverminecraftInstaller.configure— Configure JVM memory, EULA
@keeb/collect-game-metricsd417e25d-e8df-468b-95f6-2d03739c82a8
Collect player metrics from all configured game servers
collectAuth, sync fleet, collect metrics from each game server
1.authkeebDev02.auth— Authenticate with Proxmox
2.sync-fleetfleet.sync— Sync all VMs into fleet (populates IPs)
3.collect-allthemonsallthemonsMinecraft.collectMetrics— Collect Minecraft player metrics from allthemons
4.collect-calamitycalamityTerraria.collectMetrics— Collect Terraria player metrics from calamity
5.collect-infinityinfinityMinecraft.collectMetrics— Collect Minecraft player metrics from infinity
6.collect-evolutionevolution-minecraft.collectMetrics— Collect Minecraft player metrics from evolution (FTB Evolution 2)
04Skills
minecraft1 file
05Previous Versions
2026.10.15.1
Added 1 workflows
2026.07.18.1
2026.05.25.1
2026.04.22.3
2026.04.22.2
2026.03.02.3
2026.03.02.2
2026.03.02.1
2026.02.27.1
06Stats
A
93 / 100
Downloads
59
Archive size
56.7 KB
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License1/2partial
no SPDX license declared
- Verified public repository2/2earned
Repository
https://github.com/keeb/swamp-minecraftdeno-command3 accepted
Spawns a subprocess with Deno.Command().
- models/lib/ssh.ts:104 — ssh is the transport this extension wraps; user and host are validated in buildSshArgs
- models/lib/ssh.ts:126 — ssh is the transport this extension wraps; user and host are validated in buildSshArgs
- models/minecraft_installer.ts:312 — rsync uploads the server pack; host, user and paths are validated in buildRsyncArgs
08Platforms
09Labels