Install
openclaw skills install miraflowCreate and manage AI-generated videos and images using Miraflow, including avatar videos, cinematic clips, image generation, editing, and media uploads.
openclaw skills install miraflowMiraflow is an AI video/image platform. The API is async — creation endpoints return a jobId, then you poll for completion.
Base URL: https://miraflow.ai/api
Auth: always include -H "x-api-key: $MIRAFLOW_API_KEY" on every call. Never hardcode the key.
Full API reference: See references/api.md for endpoint details, request/response schemas, and the media upload workflow.
$MIRAFLOW_API_KEY.x-api-key as the header name, not Authorization.jobId — the user needs it to check status.POST /api/video/create or POST /api/image/generate. These are expensive, non-idempotent operations. Call each creation endpoint exactly once per user request, even if the response is slow or unclear. If the call succeeds (any 2xx), stop — do not call again.GET /api/avatars
Present as a numbered list with avatar name and ID.
GET /api/voices
Present as a numbered list with voice name and ID.
avatarId given, list avatars and ask the user to pick one.voiceId given, list voices and ask the user to pick one.POST /api/video/create exactly once:{
"avatarId": "<id>",
"voiceId": "<id>",
"name": "<name>",
"text": "<script>",
"im2vid_full": true
}
jobId clearly — the user needs it to check status later.Note: im2vid_full: true enables full-body animation on photo avatars. Omit for head-only.
GET /api/video/{jobId}/status
Translate status for the user:
inference_started → "Queued, not started yet"inference_working → "In progress (X% complete)"inference_complete → "Ready! Use the jobId to fetch the download link."inference_failed → "Generation failed"inference_error → "Unknown error occurred"GET /api/video/{id}
Returns metadata including a signed downloadUrl (valid 24h). Share this directly with the user.
GET /api/video/{id}/download
Save the response (video/mp4) to the current directory as {video-name}.mp4. Confirm the file path when done.
POST /api/image/generate with prompt, name, optional aspectRatio (1:1 | 16:9 | 9:16 | 4:3 | 3:4)GET /api/image/{jobId} until inference_complete → includes downloadUrlreferences/api.md)POST /api/image/edit with referenceImageMediaId, prompt, nameSee references/api.md → Media Upload Workflow (initialize → PUT to S3 → finalize)
400 — bad request, invalid params, or insufficient credits401 — missing/invalid API key (check MIRAFLOW_API_KEY)404 — resource not foundAlways show the status code and full error message when an API call fails.
Created by Katie Min — designed and directed by Katie, built by Claude Code (AI coding agent by Anthropic), powered by OpenClaw.