Install
openclaw skills install @beatra-ai/bilibili-thumbnail-makerCreate a Bilibili video cover or Bilibili thumbnail from a topic, title, script, key frame, portrait, product photo, or reference image. This AI thumbnail maker builds a strong focal visual, readable hierarchy, and headline-safe space for Bilibili creators, explainers, tech reviews, lifestyle vlogs, games, food, and entertainment videos, then refines an accepted draft into a repeatable channel look.
openclaw skills install @beatra-ai/bilibili-thumbnail-makerCreate one Bilibili video thumbnail from a topic, title, script, key-frame screenshot, portrait, product image, visual reference, or accepted draft. Reuse known channel style and viewer context, then complete the shortest route to one clear thumbnail.
beatra.images.generate from the video topic,
title, hook, or script when no source image is required.beatra.images.transform. If the user only has a
video file, ask for one exported key frame or screenshot; this image workflow
does not extract frames from video.beatra.images.edit with the accepted
image as images[0] and no more than two normalized local edit regions.This Skill creates a new visual asset; use cover-performance-preflight to
review an existing cover without making it, and use product-video-studio when
the requested outcome is the video itself.
Reuse the topic, title, channel series style, intended viewer, visual references, and must-keep details. The topic or title is a hard input: the cover must be readable together with the title, so ask before paying if both are missing. Select the canvas from the user-stated destination, source frame, or current publishing requirement; propose a landscape video-thumbnail canvas only when that is the user's intended destination, and freeze the exact canvas before the paid call. If more than one candidate is described, they must be structural differences, not color variants.
Plan one bold focal subject, clear small-size hierarchy, one visual hook, headline-safe space, and ordered image roles. Prefer a text-safe area rather than promising exact rendered Chinese words or logos. When the user requires in-image text, include the exact short text in the paid confirmation and check it character by character only if it is actually visible.
Use only this Skill's bundled scripts/mcp_client.py for every remote Beatra
operation. Do not configure or call a host Beatra Connector, and do not use
REST/OpenAPI as a fallback. Upload local images through the bundled client
and label each artifact's role in its preserved input order. Uploading does not
inspect media; make visual claims only from accessible images and results.
Keep model: "auto" and count: 1 unless the user chooses otherwise. Call
beatra.models.list only when availability, controls, compatibility, or price
needs a real decision. Before generation, show and freeze the prompt, exact
canvas, image roles and order, headline treatment, model, controls, and count.
Planning is free; the generation request is paid work.
After approval, create one opaque stable client_request_id without user
content and submit once. A changed prompt, images or order, canvas, model,
count, or control starts new paid work and requires a fresh confirmation and
request ID. See workflow for payload shapes.
Save the returned task_id and poll only that task with beatra.tasks.get.
When its ID is lost, find candidates through beatra.tasks.list and verify the
selected task with tasks.get. Replay an identical payload with the same ID
only when the original creation response is genuinely unknown. Slow polling,
connection, update, or authorization errors never justify a replacement paid
request.
Use beatra.tasks.cancel only at the user's request. A 409 means the
original task still runs, so continue tracking it. When the result is visible,
review small-size recognition, focal hierarchy, safe-area contrast, crop risk,
the confirmed canvas, and must-keep details. Deliver artifact links, observed
dimensions, task ID, resolved model, and returned billing.net_charged_credits.
Offer at most one focused, unexecuted refinement.
The bundled client silently checks for a newer release at most once every 24 hours while a public command runs. When a newer version is available, the client installs it automatically without separate confirmation only from fixed official Beatra discovery and immutable CDN paths, verifies the archive, manifest, and every package-owned file, and replaces only files owned by this package. If any update step fails, the current installation remains usable and the original command continues. This choice persists per install.
python3 scripts/mcp_client.py update --auto off
python3 scripts/mcp_client.py update --auto on
python3 scripts/mcp_client.py update --check