{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mulerouter",
    "name": "MuleRouter",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Misaka43fd/mulerouter",
    "canonicalUrl": "https://clawhub.ai/Misaka43fd/mulerouter",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mulerouter",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mulerouter",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "core/__init__.py",
      "core/client.py",
      "core/config.py",
      "core/image.py"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "mulerouter",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-05T21:43:42.533Z",
      "expiresAt": "2026-05-12T21:43:42.533Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mulerouter",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mulerouter",
        "contentDisposition": "attachment; filename=\"mulerouter-0.1.10.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "mulerouter"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mulerouter"
    },
    "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/mulerouter",
    "agentPageUrl": "https://openagent3.xyz/skills/mulerouter/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mulerouter/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mulerouter/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "MuleRouter API",
        "body": "Generate images and videos using MuleRouter or MuleRun multimodal APIs."
      },
      {
        "title": "Required Environment Variables",
        "body": "This skill requires the following environment variables to be set before use:\n\nVariableRequiredDescriptionMULEROUTER_API_KEYYesAPI key for authentication (get one here)MULEROUTER_BASE_URLYes*Custom API base URL (e.g., https://api.mulerouter.ai). Takes priority over SITE.MULEROUTER_SITEYes*API site: mulerouter or mulerun. Used if BASE_URL is not set.\n\n*At least one of MULEROUTER_BASE_URL or MULEROUTER_SITE must be set.\n\nThe API key is included in Authorization: Bearer headers when making network calls to the configured API endpoint.\n\nIf any of these variables are missing, the scripts will fail with a configuration error. Check the Configuration section below to set them up."
      },
      {
        "title": "Configuration Check",
        "body": "Before running any commands, verify the environment is configured:"
      },
      {
        "title": "Step 1: Check for existing configuration",
        "body": "Run the built-in config check script:\n\nuv run python -c \"from core.config import load_config; load_config(); print('Configuration OK')\"\n\nIf this prints \"Configuration OK\", skip to Step 3. If it raises a ValueError, proceed to Step 2."
      },
      {
        "title": "Step 2: Configure if needed",
        "body": "If the variables above are not set, ask the user to provide their API key and preferred endpoint.\n\nCreate a .env file in the skill's working directory:\n\n# Option 1: Use custom base URL (takes priority over SITE)\nMULEROUTER_BASE_URL=https://api.mulerouter.ai\nMULEROUTER_API_KEY=your-api-key\n\n# Option 2: Use site (if BASE_URL not set)\n# MULEROUTER_SITE=mulerun\n# MULEROUTER_API_KEY=your-api-key\n\nNote: MULEROUTER_BASE_URL takes priority over MULEROUTER_SITE. If both are set, MULEROUTER_BASE_URL is used.\n\nNote: The skill only loads variables prefixed with MULEROUTER_ from the .env file. Other variables in the file are ignored.\n\nImportant: Do NOT use export shell commands to set credentials. Use a .env file or ensure the variables are already present in your shell environment before invoking the skill."
      },
      {
        "title": "Step 3: Using uv to run scripts",
        "body": "The skill uses uv for dependency management and execution. Make sure uv is installed and available in your PATH.\n\nRun uv sync to install dependencies."
      },
      {
        "title": "1. List available models",
        "body": "uv run python scripts/list_models.py"
      },
      {
        "title": "2. Check model parameters",
        "body": "uv run python models/alibaba/wan2.6-t2v/generation.py --list-params"
      },
      {
        "title": "3. Generate content",
        "body": "Text-to-Video:\n\nuv run python models/alibaba/wan2.6-t2v/generation.py --prompt \"A cat walking through a garden\"\n\nText-to-Image:\n\nuv run python models/alibaba/wan2.6-t2i/generation.py --prompt \"A serene mountain lake\"\n\nImage-to-Video:\n\nuv run python models/alibaba/wan2.6-i2v/generation.py --prompt \"Gentle zoom in\" --image \"https://example.com/photo.jpg\" #remote image url\n\nuv run python models/alibaba/wan2.6-i2v/generation.py --prompt \"Gentle zoom in\" --image \"/path/to/local/image.png\" #local image path"
      },
      {
        "title": "Image Input",
        "body": "For image parameters (--image, --images, etc.), prefer local file paths over base64.\n\n# Preferred: local file path (auto-converted to base64)\n--image /tmp/photo.png\n\n--images [\"/tmp/photo.png\"]\n\nLocal file paths are validated before reading: only files with recognized image extensions (.png, .jpg, .jpeg, .gif, .bmp, .webp, .tiff, .tif, .svg, .ico, .heic, .heif, .avif) are accepted. Paths pointing to sensitive system directories or non-image files are rejected. Valid image files are converted to base64 and sent to the API, avoiding command-line length limits that occur with raw base64 strings."
      },
      {
        "title": "Workflow",
        "body": "Check configuration: verify MULEROUTER_API_KEY and either MULEROUTER_BASE_URL or MULEROUTER_SITE are set\nInstall dependencies: run uv sync\nRun uv run python scripts/list_models.py to discover available models\nRun uv run python models/<path>/<action>.py --list-params to see parameters\nExecute with appropriate parameters\nParse output URLs from results"
      },
      {
        "title": "Model Selection",
        "body": "When listing models, each model's tags (e.g., [SOTA]) are displayed by default next to its name. Tags help identify model characteristics at a glance — for example, SOTA indicates a state-of-the-art model.\n\nYou can also filter models by tag using --tag:\n\nuv run python scripts/list_models.py --tag SOTA\n\nIf you are unsure which model to use, present the available options to the user and let them choose. Use the AskUserQuestion tool (or equivalent interactive prompt) to ask the user which model they prefer. For example, if the user asks to \"generate an image\" without specifying a model, list the relevant image generation models with their tags and descriptions, and ask the user to pick one."
      },
      {
        "title": "Tips",
        "body": "For an image generation model, a suggested timeout is 5 minutes.\nFor a video generation model, a suggested timeout is 15 minutes."
      },
      {
        "title": "References",
        "body": "REFERENCE.md - API configuration and CLI options\nMODELS.md - Complete model specifications"
      }
    ],
    "body": "MuleRouter API\n\nGenerate images and videos using MuleRouter or MuleRun multimodal APIs.\n\nRequired Environment Variables\n\nThis skill requires the following environment variables to be set before use:\n\nVariable\tRequired\tDescription\nMULEROUTER_API_KEY\tYes\tAPI key for authentication (get one here)\nMULEROUTER_BASE_URL\tYes*\tCustom API base URL (e.g., https://api.mulerouter.ai). Takes priority over SITE.\nMULEROUTER_SITE\tYes*\tAPI site: mulerouter or mulerun. Used if BASE_URL is not set.\n\n*At least one of MULEROUTER_BASE_URL or MULEROUTER_SITE must be set.\n\nThe API key is included in Authorization: Bearer headers when making network calls to the configured API endpoint.\n\nIf any of these variables are missing, the scripts will fail with a configuration error. Check the Configuration section below to set them up.\n\nConfiguration Check\n\nBefore running any commands, verify the environment is configured:\n\nStep 1: Check for existing configuration\n\nRun the built-in config check script:\n\nuv run python -c \"from core.config import load_config; load_config(); print('Configuration OK')\"\n\n\nIf this prints \"Configuration OK\", skip to Step 3. If it raises a ValueError, proceed to Step 2.\n\nStep 2: Configure if needed\n\nIf the variables above are not set, ask the user to provide their API key and preferred endpoint.\n\nCreate a .env file in the skill's working directory:\n\n# Option 1: Use custom base URL (takes priority over SITE)\nMULEROUTER_BASE_URL=https://api.mulerouter.ai\nMULEROUTER_API_KEY=your-api-key\n\n# Option 2: Use site (if BASE_URL not set)\n# MULEROUTER_SITE=mulerun\n# MULEROUTER_API_KEY=your-api-key\n\n\nNote: MULEROUTER_BASE_URL takes priority over MULEROUTER_SITE. If both are set, MULEROUTER_BASE_URL is used.\n\nNote: The skill only loads variables prefixed with MULEROUTER_ from the .env file. Other variables in the file are ignored.\n\nImportant: Do NOT use export shell commands to set credentials. Use a .env file or ensure the variables are already present in your shell environment before invoking the skill.\n\nStep 3: Using uv to run scripts\n\nThe skill uses uv for dependency management and execution. Make sure uv is installed and available in your PATH.\n\nRun uv sync to install dependencies.\n\nQuick Start\n1. List available models\nuv run python scripts/list_models.py\n\n2. Check model parameters\nuv run python models/alibaba/wan2.6-t2v/generation.py --list-params\n\n3. Generate content\n\nText-to-Video:\n\nuv run python models/alibaba/wan2.6-t2v/generation.py --prompt \"A cat walking through a garden\"\n\n\nText-to-Image:\n\nuv run python models/alibaba/wan2.6-t2i/generation.py --prompt \"A serene mountain lake\"\n\n\nImage-to-Video:\n\nuv run python models/alibaba/wan2.6-i2v/generation.py --prompt \"Gentle zoom in\" --image \"https://example.com/photo.jpg\" #remote image url\n\nuv run python models/alibaba/wan2.6-i2v/generation.py --prompt \"Gentle zoom in\" --image \"/path/to/local/image.png\" #local image path\n\nImage Input\n\nFor image parameters (--image, --images, etc.), prefer local file paths over base64.\n\n# Preferred: local file path (auto-converted to base64)\n--image /tmp/photo.png\n\n--images [\"/tmp/photo.png\"]\n\n\nLocal file paths are validated before reading: only files with recognized image extensions (.png, .jpg, .jpeg, .gif, .bmp, .webp, .tiff, .tif, .svg, .ico, .heic, .heif, .avif) are accepted. Paths pointing to sensitive system directories or non-image files are rejected. Valid image files are converted to base64 and sent to the API, avoiding command-line length limits that occur with raw base64 strings.\n\nWorkflow\nCheck configuration: verify MULEROUTER_API_KEY and either MULEROUTER_BASE_URL or MULEROUTER_SITE are set\nInstall dependencies: run uv sync\nRun uv run python scripts/list_models.py to discover available models\nRun uv run python models/<path>/<action>.py --list-params to see parameters\nExecute with appropriate parameters\nParse output URLs from results\nModel Selection\n\nWhen listing models, each model's tags (e.g., [SOTA]) are displayed by default next to its name. Tags help identify model characteristics at a glance — for example, SOTA indicates a state-of-the-art model.\n\nYou can also filter models by tag using --tag:\n\nuv run python scripts/list_models.py --tag SOTA\n\n\nIf you are unsure which model to use, present the available options to the user and let them choose. Use the AskUserQuestion tool (or equivalent interactive prompt) to ask the user which model they prefer. For example, if the user asks to \"generate an image\" without specifying a model, list the relevant image generation models with their tags and descriptions, and ask the user to pick one.\n\nTips\nFor an image generation model, a suggested timeout is 5 minutes.\nFor a video generation model, a suggested timeout is 15 minutes.\nReferences\nREFERENCE.md - API configuration and CLI options\nMODELS.md - Complete model specifications"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Misaka43fd/mulerouter",
    "publisherUrl": "https://clawhub.ai/Misaka43fd/mulerouter",
    "owner": "Misaka43fd",
    "version": "0.1.10",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mulerouter",
    "downloadUrl": "https://openagent3.xyz/downloads/mulerouter",
    "agentUrl": "https://openagent3.xyz/skills/mulerouter/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mulerouter/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mulerouter/agent.md"
  }
}