This is your connection layer to muapi.ai's generation platform. It handles the setup dance (storing your API key in .env), lets you poll prediction results until they're ready, and wraps the REST API for file uploads and status checks. The check-result script is the real workhorse here, it'll block and wait up to 10 minutes for your generation to finish or you can just ping it once for a status update. Solid if you're building workflows that need to fire off async jobs to muapi and actually wait for the outputs instead of guessing when they're done.
npx -y skills add samuraigpt/generative-media-skills --skill muapi-platform --agent claude-codeInstalls into .claude/skills of the current project.
Platform utilities for API key management, file upload, and prediction status checking.
| Script | Purpose |
|---|---|
setup.sh | Configure MUAPI_KEY and show current config |
check-result.sh | Poll a prediction by request ID until complete |
bash /mnt/skills/user/muapi-platform/scripts/setup.sh [options]
# Interactive setup
bash setup.sh --add-key
# Set key directly
bash setup.sh --add-key "your_api_key_here"
# Show current configuration
bash setup.sh --show-config
This saves MUAPI_KEY to your .env file for persistent use across all muapi scripts.
Getting your API key:
bash /mnt/skills/user/muapi-platform/scripts/check-result.sh --id REQUEST_ID
Poll a previously submitted prediction until it completes.
# Poll until complete (blocks, waits up to 10 minutes)
bash check-result.sh --id "abc123-def456"
# Just check current status (non-blocking)
bash check-result.sh --id "abc123-def456" --once
# Raw JSON output
bash check-result.sh --id "abc123-def456" --json
# Custom timeout
bash check-result.sh --id "abc123-def456" --timeout 120
| Argument | Description | Default |
|---|---|---|
--id | Request ID to poll (required) | — |
--once | Check once and return (no polling) | — |
--timeout | Max wait seconds | 600 |
--json | Raw JSON output | — |
Pending:
Status: processing
Elapsed: 15s
Complete:
Status: completed
Result URL: https://cdn.muapi.ai/files/abc123/output.mp4
Failed:
Status: failed
Error: Model error: out of memory
Base URL: https://api.muapi.ai/api/v1
Authentication: All requests require the header:
x-api-key: YOUR_MUAPI_KEY
Common Endpoints:
| Endpoint | Method | Description |
|---|---|---|
/predictions/{id}/result | GET | Poll generation result |
/upload_file | POST | Upload file (multipart/form-data) |
/get_upload_url?filename=... | GET | Get presigned upload URL |
Result Response:
{
"request_id": "abc123-def456",
"status": "completed",
"outputs": [
"https://cdn.muapi.ai/files/abc123/output.mp4"
]
}
Status values: pending, processing, completed, failed
| Variable | Description |
|---|---|
MUAPI_KEY | Your muapi.ai API key |
# Option 1: Export directly
export MUAPI_KEY=your_key_here
# Option 2: .env file (auto-loaded by all scripts)
echo "MUAPI_KEY=your_key" >> .env
# Option 3: Use --add-key flag
bash setup.sh --add-key
Error: Unauthorized
Your API key is invalid or expired. Get a new key at muapi.ai/dashboard.
Error: Too many requests
You've exceeded your plan's rate limit. Wait a moment and retry.
Error: Prediction not found
The request_id may be incorrect, or the result has expired. Results are typically available for 24 hours.
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills