Skills myreels-api
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/beautyaiclub/myreels-api" ~/.claude/skills/clawdbot-skills-myreels-api && rm -rf "$T"
skills/beautyaiclub/myreels-api/SKILL.mdMyReels API
This skill is the executable interface to the MyReels public API. Use the bundled scripts first. Fall back to the raw HTTP references only when the scripts do not cover the case.
Operator Rules
- Always read the live model schema before building a request body.
- Do not invent parameter names. Use
from the live models endpoint.userInputSchema - Prefer the bundled scripts over hand-written
orcurl
.fetch - Save result URLs on your side. Do not assume MyReels stores them forever.
Prerequisites
- An active MyReels subscription is required for generation and task query endpoints.
- Create an AccessToken in myreels.ai/developer.
was verified on March 18, 2026 and currently does not requireGET https://api.myreels.ai/api/v1/models/api
.Authorization
Config file
~/.myreels/config:
MYREELS_BASE_URL="https://api.myreels.ai" MYREELS_ACCESS_TOKEN="YOUR_ACCESS_TOKEN"
The scripts in this skill read that file automatically. Environment variables override the file.
First-time setup or config issues:
scripts/myreels-doctor.sh
Bundled Scripts
Checks config, dependencies, and live connectivity.scripts/myreels-doctor.sh
Loads live model metadata and can filter by tag orscripts/myreels-models.sh
.modelName
Submits a generation task for a chosen model.scripts/myreels-generate.sh
Lists the authenticated user's tasks with paging and filters.scripts/myreels-tasks-list.sh
Queries a task and derives the next action for the agent.scripts/myreels-task-get.sh
Recommended Workflow
1. Load live models first
scripts/myreels-models.sh --summary
If you already know the candidate model, inspect its full schema:
scripts/myreels-models.sh --model MODEL_NAME
Priority fields when selecting a model:
modelNamenametagsdescriptionestimatedCostdisplayConfig.estimatedTimeuserInputSchemauserInputSchema.<param>.labeluserInputSchema.<param>.descriptionuserInputSchema.<param>.defaultuserInputSchema.<param>.options
For natural-language requests such as "stronger motion" or "disable prompt extension", map user intent from
label and description, not from field names alone.
2. List existing tasks when needed
Use this when the user asks for recent tasks, task history, or wants to find tasks by status or date.
scripts/myreels-tasks-list.sh --page 1 --limit 10
Common filters:
scripts/myreels-tasks-list.sh --status completed --start-date 2026-03-01T00:00:00.000Z
For
GET requests, the public Worker uses query parameters for these filters.
Supported task status values:
pendingprocessingcompletedfailedcancelledwarning
3. Submit a task
Use the real
modelName, not a display slug.
Example:
scripts/myreels-generate.sh nano-banana2 '{"prompt":"A cinematic portrait with soft studio lighting"}'
Alternative if the request body is large:
scripts/myreels-generate.sh --model nano-banana2 --file request.json
The script returns a normalized JSON acknowledgement with
taskID and the next polling hint.
4. Poll task status
scripts/myreels-task-get.sh TASK_ID
The script returns a simplified action model:
Task is still running. Poll again later.WAIT
Task completed. DeliverDELIVER
to the user.resultUrls
Task failed. Explain the failure and retry with a corrected request.FAILED
Unexpected task state. Inspect the raw response before retrying.REVIEW
Task states from the public API:
pendingprocessingcompletedfailedcancelledwarning
Polling guidance:
- image generation / image editing: 10 seconds
- video generation: 30 seconds to 1 minute
Query rate limit:
- 60 requests per minute
5. Deliver result URLs
When
nextAction=DELIVER, read resultUrls from the output and pass the final URLs to the user. Save them on your side if persistence matters.
Response Rules
- Check the final HTTP status first.
- If the HTTP status is
, then inspect the response body2xx
.status - For task queries, check
afterdata.status
.status === "ok" - If the upstream response includes
, the Worker uses it as the final HTTP status.code - If the upstream response does not include
, the Worker falls back to the upstream HTTP status.code
Public Paths
POST /generation/:modelNameGET /generation/tasksGET /query/task/:taskIDGET|POST /api/v1/*
Model Categories
| Category | Tags | Description |
|---|---|---|
| Image and editing | / / | text-to-image, image-to-image, image editing |
| Video | / | text-to-video, image-to-video, avatar/video motion |
| Speech and music | / | text-to-speech, music generation |
Raw API Fallback
If the bundled scripts do not cover the case, use the raw HTTP references:
Install
npx skills add https://github.com/myreelsai/skills --skill myreels-api -g
Remove
-g for a project-level install.