Install
openclaw skills install @bbgasj/kpainterExplain any topic with precision. Use KPainter to turn PDFs, PPTs, web links, and other documents into precise, clearly structured explainer videos and interactive lessons, then monitor or refine the results.
openclaw skills install @bbgasj/kpainterUse KPainter to explain any topic with precision: turn PDFs, PPTs, web links, and other documents into precise, clearly structured explainer videos and interactive lessons.
| Resource | URL |
|---|---|
| Homepage | https://kpainter.ai/ |
| Skill file | https://kpainter.ai/skill.md |
| Skills docs | https://kpainter.ai/docs/skills |
| OpenAPI docs | https://kpainter.ai/docs/openapi |
| API Key | https://kpainter.ai/api-key |
If KPainter is not connected:
https://kpainter.ai/.https://kpainter.ai/api-key.Keep the key inside the current agent connection flow. Never ask the user to send it to unrelated services.
Explainer Video and Read Aloud Video are independent products. Never present them as Standard and Lite modes.
| Product | Public API type | Best for |
|---|---|---|
| Explainer Video | explainer_video | continuous animated scenes and narration for explainers, brand communication, and stories |
| Read Aloud Video | read_aloud_video | narrated visuals and page-by-page structure for courses, training, SOPs, science, and longer topics |
| Vector Animation | vector_animation | precise vector explanations when the user explicitly requests Vector Animation |
| AI Image | image | covers, posters, illustrations, and visual summaries |
| AI Video | ai_video | storyboard videos, cinematic shots, and short videos |
| AI PPT | slides | editable PPT/PDF presentations |
| AI App | interactive_lesson | clickable apps, lessons, demos, exercises, and learning experiences |
Use the public types in this table. Do not describe Read Aloud Video as “Lite” or a mode under Explainer Video.
Route by the result the user wants.
explainer_video.read_aloud_video.vector_animation only when the user explicitly says “Vector Animation” or “矢量动画.” Algorithms, formulas, structures, workflows, diagrams, or generic animation requests alone are not enough.image.ai_video.slides.interactive_lesson.Do not expose API type names unless the user asks for technical details.
Choose Explainer Video when the user wants:
Examples:
When the user gives no duration, suggest about 30 seconds first. Read current duration limits from the catalog.
Choose Read Aloud Video when the user wants:
Examples:
Load valid page counts, voices, styles, ratios, and qualities from the catalog.
Choose Vector Animation only when the user explicitly requests that product.
Examples:
Read image.generation_models from /catalog and use a model-specific request.
provider=gemini, model=nano-banana-2; use only its listed ratios.provider=azure_openai, model=gpt-image-2; quality=low|medium|high is separate from top-level output_quality.Never send the internal extra_config.output shape. Use top-level aspect_ratio and output_quality.
Use one public type, ai_video, with model selection inside video_generation.
| Model | Public behavior |
|---|---|
gemini-omni-flash | 720p text-to-video with native audio; supports iterate follow-up edits |
veo-3.1-fast | fast text-to-video; model catalog controls resolution and duration; no conversational edit |
veo-3.1-standard | quality-first text-to-video; model catalog controls resolution and duration; no conversational edit |
Example:
{
"type": "ai_video",
"prompt": "Move slowly through a futuristic city on a rainy night with natural ambient audio",
"aspect_ratio": "16:9",
"video_generation": {
"model": "gemini-omni-flash",
"task": "text_to_video",
"resolution": "720p",
"duration_seconds": 8,
"native_audio": true
}
}
For an Omni follow-up, read editable_actions, then send:
{
"action": "iterate",
"prompt": "Keep the camera motion and make the lighting warmer"
}
Never expose or ask the user for previous_interaction_id; KPainter manages it server-side. Do not attempt iterate with Veo.
The current Public OpenAPI supports text-to-video only. Do not send first frames, last frames, attachments, or image/video tasks until /catalog reports those public capabilities.
If the user wants Explainer Video but does not have enough credits:
Recommended wording:
Ask one short question at a time and only for missing details:
If the user already gave enough information, create first and refine after.
Treat attachments and URLs supplied by the user as source or reference material.
Direct public API upload is not currently available. If the active host does not expose an attachment bridge, summarize the supplied material into the request or ask the user to continue through the main-site creator instead of inventing an upload result.
For OpenAPI or MCP integrations:
/catalog before choosing type-specific parameters.editable_actions and existing scenes.Use catalog values as the source of truth for:
Parameter rules:
explainer_video uses duration_seconds.read_aloud_video uses scene_count.slides uses scene_count.ai_video uses video_generation; its duration is nested under video_generation.duration_seconds.duration_seconds to read_aloud_video or vector_animation.scene_count to explainer_video.extra_config, internal source records, or provider interaction IDs.After the first result, help the user:
Confirm before switching products. Never silently change type, audience, language, or format.
KPainter supports creation and refinement in the user’s preferred language.
Examples:
These are examples, not a language allowlist.
openclaw skills install kpainter
npx skills add OriginwiseAI/skills --skill kpainter
While this repository contains one public skill, this also works:
npx skills add OriginwiseAI/skills
Give the agent:
https://kpainter.ai/skill.md
mkdir -p ~/.codex/skills/kpainter
curl -s https://kpainter.ai/skill.md > ~/.codex/skills/kpainter/SKILL.md
The skill succeeds when the agent can:
iterate only when the selected model exposes conversational editing