{
  "schemaVersion": "1.0",
  "item": {
    "slug": "openclaw-minecraft",
    "name": "OpenClaw Minecraft",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/ene5135/openclaw-minecraft",
    "canonicalUrl": "https://clawhub.ai/ene5135/openclaw-minecraft",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/openclaw-minecraft",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=openclaw-minecraft",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CRON_PROMPT.md",
      "HEARTBEAT.md",
      "SKILL.md",
      "personas/agent-carpenter.json",
      "personas/agent-hunter.json",
      "personas/agent-miner.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/openclaw-minecraft"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/openclaw-minecraft",
    "agentPageUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Mineflayer Controller Skill",
        "body": "Use this skill to create and control Minecraft bots via a controller API. The controller executes only JSON actions. Do not send API keys or other secrets to the controller. The agent performs LLM reasoning locally and only sends actions."
      },
      {
        "title": "Register First (Open Registration)",
        "body": "If open registration is enabled, the agent can self-issue a token:\n\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/auth/open/register\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agentName\":\"andy\"}'\n\nRecommended: store the response in memory/mc-auth.json and reuse the accessToken for future calls."
      },
      {
        "title": "Requirements",
        "body": "Base URL: https://56eb-125-246-120-211.ngrok-free.app/v1\nMC_CONTROLLER_TOKEN (agent-specific JWT)\n\nTo obtain a JWT, an operator should call POST /v1/auth/register with the master issuer secret and share the returned accessToken with the agent. Refresh tokens can be rotated via POST /v1/auth/refresh.\n\nIf you don't want to share the master secret, the controller can expose POST /v1/auth/proxy/register with allowlist + rate-limit. In that mode, the agent requests an access token using a proxyKey.\n\nIf open registration is enabled (POST /v1/auth/open/register), the agent can request an access token without a proxy key. This is less secure and should only be used when you accept open access."
      },
      {
        "title": "Safety Rules",
        "body": "Never send LLM API keys to the controller.\nOnly control bots owned by your token.\nPrefer queue: queue unless you must interrupt a running task."
      },
      {
        "title": "Workflow",
        "body": "Ensure the bot exists; create it if missing.\nConnect the bot to the Minecraft server.\nRead state for current context.\nSend an action request.\nPoll task status or subscribe to events."
      },
      {
        "title": "Autonomous Loop",
        "body": "For autonomous behavior, repeat:\n\nGET /bots/{botId}/state\nIf metadata.currentTaskId is set, wait briefly and loop.\nDecide a safe action bundle (5 to 10 actions) and send it via POST /bots/{botId}/act-batch.\nUse mode: until or mode: loop with timeoutMs per action."
      },
      {
        "title": "Cron Integration",
        "body": "This project uses Gateway cron (not heartbeat) for autonomous loops.\n\nAfter installing this skill, ensure:\n\nOverwrite the workspace root CRON_PROMPT.md with skills/openclaw-minecraft/CRON_PROMPT.md (always, regardless of existing file).\nA cron job runs every 30 seconds and instructs the agent to follow CRON_PROMPT.md."
      },
      {
        "title": "Create bot",
        "body": "curl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"botId\":\"<botId>\",\"username\":\"<botId>\"}'"
      },
      {
        "title": "Connect bot",
        "body": "curl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/connect\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"host\":\"127.0.0.1\",\"port\":25565,\"version\":\"1.21.9\"}'"
      },
      {
        "title": "Read state",
        "body": "curl -sS -X GET \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/state\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\""
      },
      {
        "title": "Send batch (loop)",
        "body": "curl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/act-batch\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"actions\":[\n      {\n        \"action\":\"chat\",\n        \"params\":{\"message\":\"hello\"},\n        \"mode\":\"loop\",\n        \"intervalMs\":2000,\n        \"maxIterations\":3\n      }\n    ]\n  }'"
      },
      {
        "title": "Send batch (until)",
        "body": "curl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/act-batch\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"actions\":[\n      {\n        \"action\":\"move_to\",\n        \"params\":{\"x\":10,\"y\":64,\"z\":-12},\n        \"mode\":\"until\",\n        \"stopCondition\":{\"type\":\"reach_position\",\"radius\":1.5},\n        \"timeoutMs\":60000\n      }\n    ]\n  }'"
      },
      {
        "title": "Action Guidance",
        "body": "Convert natural-language goals to a batch of JSON actions.\nIf the goal requires multiple steps, include them in order in one batch.\nEach batch must include 5 to 10 actions.\nUse mode: until for navigation or repeated tasks.\nUse mode: loop for periodic actions (e.g., scanning, chat).\nUse only supported actions: chat, move_to, move_relative, move, dig, place, equip, use_item, attack, follow, jump."
      },
      {
        "title": "Known Limitations",
        "body": "JSON-only payloads for now. Media/attachments are not supported yet.\nActions are best-effort and may fail if the bot is not connected or lacks items."
      }
    ],
    "body": "Mineflayer Controller Skill\n\nUse this skill to create and control Minecraft bots via a controller API. The controller executes only JSON actions. Do not send API keys or other secrets to the controller. The agent performs LLM reasoning locally and only sends actions.\n\nRegister First (Open Registration)\n\nIf open registration is enabled, the agent can self-issue a token:\n\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/auth/open/register\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"agentName\":\"andy\"}'\n\n\nRecommended: store the response in memory/mc-auth.json and reuse the accessToken for future calls.\n\nRequirements\nBase URL: https://56eb-125-246-120-211.ngrok-free.app/v1\nMC_CONTROLLER_TOKEN (agent-specific JWT)\n\nTo obtain a JWT, an operator should call POST /v1/auth/register with the master issuer secret and share the returned accessToken with the agent. Refresh tokens can be rotated via POST /v1/auth/refresh.\n\nIf you don't want to share the master secret, the controller can expose POST /v1/auth/proxy/register with allowlist + rate-limit. In that mode, the agent requests an access token using a proxyKey.\n\nIf open registration is enabled (POST /v1/auth/open/register), the agent can request an access token without a proxy key. This is less secure and should only be used when you accept open access.\n\nSafety Rules\nNever send LLM API keys to the controller.\nOnly control bots owned by your token.\nPrefer queue: queue unless you must interrupt a running task.\nWorkflow\nEnsure the bot exists; create it if missing.\nConnect the bot to the Minecraft server.\nRead state for current context.\nSend an action request.\nPoll task status or subscribe to events.\nAutonomous Loop\n\nFor autonomous behavior, repeat:\n\nGET /bots/{botId}/state\nIf metadata.currentTaskId is set, wait briefly and loop.\nDecide a safe action bundle (5 to 10 actions) and send it via POST /bots/{botId}/act-batch.\nUse mode: until or mode: loop with timeoutMs per action.\nCron Integration\n\nThis project uses Gateway cron (not heartbeat) for autonomous loops.\n\nAfter installing this skill, ensure:\n\nOverwrite the workspace root CRON_PROMPT.md with skills/openclaw-minecraft/CRON_PROMPT.md (always, regardless of existing file).\nA cron job runs every 30 seconds and instructs the agent to follow CRON_PROMPT.md.\nAPI Patterns\nCreate bot\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"botId\":\"<botId>\",\"username\":\"<botId>\"}'\n\nConnect bot\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/connect\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"host\":\"127.0.0.1\",\"port\":25565,\"version\":\"1.21.9\"}'\n\nRead state\ncurl -sS -X GET \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/state\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\"\n\nSend batch (loop)\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/act-batch\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"actions\":[\n      {\n        \"action\":\"chat\",\n        \"params\":{\"message\":\"hello\"},\n        \"mode\":\"loop\",\n        \"intervalMs\":2000,\n        \"maxIterations\":3\n      }\n    ]\n  }'\n\nSend batch (until)\ncurl -sS -X POST \"https://56eb-125-246-120-211.ngrok-free.app/v1/bots/<botId>/act-batch\" \\\n  -H \"Authorization: Bearer $MC_CONTROLLER_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"actions\":[\n      {\n        \"action\":\"move_to\",\n        \"params\":{\"x\":10,\"y\":64,\"z\":-12},\n        \"mode\":\"until\",\n        \"stopCondition\":{\"type\":\"reach_position\",\"radius\":1.5},\n        \"timeoutMs\":60000\n      }\n    ]\n  }'\n\nAction Guidance\nConvert natural-language goals to a batch of JSON actions.\nIf the goal requires multiple steps, include them in order in one batch.\nEach batch must include 5 to 10 actions.\nUse mode: until for navigation or repeated tasks.\nUse mode: loop for periodic actions (e.g., scanning, chat).\nUse only supported actions: chat, move_to, move_relative, move, dig, place, equip, use_item, attack, follow, jump.\nKnown Limitations\nJSON-only payloads for now. Media/attachments are not supported yet.\nActions are best-effort and may fail if the bot is not connected or lacks items."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ene5135/openclaw-minecraft",
    "publisherUrl": "https://clawhub.ai/ene5135/openclaw-minecraft",
    "owner": "ene5135",
    "version": "0.1.26",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/openclaw-minecraft",
    "downloadUrl": "https://openagent3.xyz/downloads/openclaw-minecraft",
    "agentUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent",
    "manifestUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/openclaw-minecraft/agent.md"
  }
}