MuAPI Media

SkillMedia

Lets your agent find available image generation models and create images with a hosted service.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the MuAPI Media skill

About this capability

Discover current MuAPI image models and run one explicitly confirmed asynchronous image generation request with bounded polling. Use when an agent needs hosted image generation without hard-coding stale model endpoints or request IDs.

What this skill tells your AI

The instructions your AI receives, as published by davepoon/buildwithclaude in plugins/all-skills/skills/muapi-media/SKILL.md and read by ahel’s review.

Use the bundled scripts/muapi_media.py CLI to discover current MuAPI image models and submit one explicitly confirmed image-generation request. The CLI uses the live catalog's name, category, and already-versioned endpoint fields, then polls the standard prediction result endpoint. It does not assume that the catalog contains an inline request schema; add model-specific fields only from the current model contract.

When to use this skill

  • The user wants to find a current MuAPI image model.
  • An image workflow needs MuAPI's exact model endpoint rather than a remembered alias.
  • The user has explicitly approved a potentially billable image-generation request.
  • An asynchronous MuAPI prediction needs bounded status polling.

This skill covers text-to-image and image-to-image workflows. Do not use it for MuAPI video, audio, 3D, chat, or model-training requests.

Setup

Set the API key in the environment. Never pass it as a CLI argument or commit it:

export MUAPI_API_KEY="your-api-key"

MUAPI_BASE_URL is optional and defaults to https://api.muapi.ai. Use it only for an approved compatible deployment.

Workflow

1. Discover current image models

python3 scripts/muapi_media.py models --category image --query flux

The public catalog currently returns a top-level models array. Image-generation entries use categories such as Text to Image and Image to Image; their endpoint values already include the /api/v1/ prefix. Choose an exact model from this output immediately before generation.

2. Prepare and review parameters

{
  "prompt": "A clean product photograph on a neutral background",
  "aspect_ratio": "1:1"
}

Keep only fields supported by the selected model's current request contract. The catalog is a model directory, not a guarantee that every model accepts the same parameters. A prompt is required for this skill.

3. Confirm cost and generate once

python3 scripts/muapi_media.py generate \
  flux-dev \
  --params-file request.json \
  --confirm-paid

--confirm-paid is mandatory. The CLI sends exactly one generation POST, never retries an ambiguous POST, and polls only GET requests with a finite budget. The model argument may be the catalog model name or its exact /api/v1/... endpoint path.

Use --output to download the first completed artifact without sending the API key to the output host:

python3 scripts/muapi_media.py generate \
  flux-dev \
  --params-file request.json \
  --confirm-paid \
  --output ./muapi-output.png

Safety rules

  • Keep MUAPI_API_KEY server-side and out of logs, prompts, screenshots, and committed files.
  • Never retry a generation POST automatically. Require fresh user confirmation before another paid request.
  • Poll only with GET and stop at --max-polls.
  • Preserve the catalog endpoint path; do not prepend /api/v1/ to an endpoint that already has it.
  • Download only HTTPS output URLs and do not forward the API key to the output host.
  • Require human review for sensitive, regulated, or high-impact content.

Output

Commands write structured JSON to stdout. A successful generation includes the selected model, request ID, terminal status, output URLs, and—when requested—the local artifact path.

Official references

Signals

GitHub stars
3k
Forks
500
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
muapi-media
Source
github.com/davepoon/buildwithclaude