Spawn
alirezarezvani/claude-skills
Launch N parallel subagents in isolated git worktrees to compete on the session task.
Video file → videoscreenclear or hdvideoallinone + spawn-run-task and sessionsspawn (main session).
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-ai --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kaipai-skill .claude/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .claude/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skillType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-ai --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/kaipai-skill .agents/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .agents/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-ai --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/kaipai-skill .cursor/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .cursor/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/kaipai-skill--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-ai --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/kaipai-skill .gemini/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .gemini/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-aiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/kaipai-skill .github/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .github/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills openclaw-kaipai-ai --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/kaipai-skill .opencode/skills/openclaw-kaipai-ai && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openclaw-kaipai-ai" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/kaipai-skill into .opencode/skills/openclaw-kaipai-ai/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openclaw-kaipai-ai", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openclaw-kaipai-aiVideo file → videoscreenclear or hdvideoallinone + spawn-run-task and sessionsspawn (main session).
Openclaw Kaipai AI is an agent skill from LeoYeAI/openclaw-master-skills. Video file → videoscreenclear or hdvideoallinone + spawn-run-task and sessionsspawn (main session). Image → eraserwatermark or imagerestoration + blocking run-task only (never spawn-run-task for image tasks). Process images or video with Kaipai AI — four tasks — image watermark removal (eraserwatermark), video watermark removal (videoscreenclear), image quality restoration (imagerestoration), video quality restoration (hdvideoallinone). Use when the user asks for watermark removal or quality restoration on images…
Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 24 other files, including scripts (for example `README.md`, `_meta.json` and `docs/errors-and-polling.md`).
The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 10 files in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
open.feishu.cnFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TELEGRAM_BOT_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Openclaw Kaipai AI loads about 6k tokens when it runs. Until then it costs about 213 tokens; SKILL.md has 2,412 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
"Set **MT_AK** and **MT_SK** in `scripts/.env`, then run:\n```\nsource scripts/.env\n```\nIf you do not have keys, contaSet MT_AK and MT_SK in scripts/.env, then run:source scripts/.env_AK` / `MT_SK` first; if unset, `scripts/.env` is read automatically (same as `SkillClient`).Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,412 words, ~6,012 tokens.
.claude/skills/openclaw-kaipai-ai/SKILL.md (or your agent's skills folder). This skill also uses 20 other files; get the full folder from GitHub.Activate when the user wants any of the following:
run-task (including inside a sessions_spawn worker) goes through server-side quota / credit consumption for the MT_AK tenant. This is a paid, metered commercial API, not free compute bundled with the skill or the host.detail and pricing_url when present.| task_name | Capability | Input |
|---|---|---|
eraser_watermark | Image watermark removal | Image path or URL |
videoscreenclear | Video watermark removal | Video path or URL |
image_restoration | Image quality restoration | Image path or URL |
hdvideoallinone | Video quality restoration | Video path or URL |
For videoscreenclear and hdvideoallinone: spawn-run-task → pass sessions_spawn_args to sessions_spawn (main session does not block on run-task). Command shape, runTimeoutSeconds (default 3600), worker install-deps / run-task / Step 4, polling and recovery: §3b and docs/errors-and-polling.md.
When the user asks for more than one Kaipai step on the same media (e.g. remove watermark then restore quality), treat each step as a separate job:
| Typical chain | Stages |
|---|---|
| Image | eraser_watermark → image_restoration |
| Video | videoscreenclear → hdvideoallinone |
Rules:
skill_status: "completed", use primary_result_url or output_urls[0] as --input for stage B with a new --task. That is a new job, not a retry of stage A. For video, stage B means a new spawn-run-task + sessions_spawn (each spawn embeds a single run-task), not a second run-task inside the same embed.run-task” in this skill means: do not submit run-task again for the same task_id / the same submitted job (use query-task to resume polling instead). It does not forbid the next pipeline stage with a different task_name and the previous result URL as input.sessions_spawn = one embedded run-task. Do not put two run-task calls in one spawn. Chain = multiple spawns: after stage A, read primary_result_url from stdout or last-task / history, then spawn-run-task for stage B with that URL as --input. No video run-task in the main session. Optional one-line user update before the second spawn.See also Step 3 success bullets and agent_instruction in the JSON.
python3 {baseDir}/scripts/kaipai_ai.py run-task … (§3a / §3b), or the same run-task command embedded in spawn-run-task → sessions_spawn. Do not hand-craft HTTP to wapi.kaipai.ai or AIGC / invoke endpoints to replace that flow — that skips POST /skill/consume.json (quota and permission) and breaks the supported pipeline.query-task --task-id is only for resuming status polling on an existing full task_id (no upload, no second consume). Do not use it instead of run-task for a new submission./skill/consume.json runs before algorithm submit.Verify AK/SK are configured (only run this command; do not read other Python sources first):
python3 {baseDir}/scripts/kaipai_ai.py preflightok → continue to Step 1missing → stop and send the user the configuration message belowFeishu — send an interactive card via the Feishu API (do not use the message tool for this):
import json, urllib.request
cfg = json.loads(open("~/.openclaw/openclaw.json").read())
feishu = cfg["channels"]["feishu"]["accounts"]["default"]
token = json.loads(urllib.request.urlopen(urllib.request.Request(
"https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal",
data=json.dumps({"app_id": feishu["appId"], "app_secret": feishu["appSecret"]}).encode(),
headers={"Content-Type": "application/json"}
)).read())["tenant_access_token"]
card = {
"config": {"wide_screen_mode": True},
"header": {"title": {"tag": "plain_text", "content": "🖼️ Kaipai — credentials required"}, "template": "blue"},
"elements": [{"tag": "div", "text": {"tag": "lark_md", "content": "Set **MT_AK** and **MT_SK** in `scripts/.env`, then run:\n```\nsource scripts/.env\n```\nIf you do not have keys, contact your administrator."}}],
}
urllib.request.urlopen(urllib.request.Request(
"https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id",
data=json.dumps({"receive_id": "<USER_OPEN_ID>", "msg_type": "interactive", "content": json.dumps(card)}).encode(),
headers={"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
))Telegram / Discord / other channels — use the message tool with plain text:
🖼️ Kaipai — credentials required
Set MT_AK and MT_SK in scripts/.env, then run:
source scripts/.env
If you do not have keys, contact your administrator.Choose task_name from the table above and confirm the input file location.
Media type → task_name (MANDATORY checklist):
.mp4, .mov, .webm, .mkv, .m4v) or the user / attachment clearly indicates video / clip / footage → choose only videoscreenclear (watermark) or hdvideoallinone (quality). Then use §3b (spawn-run-task + sessions_spawn), not blocking run-task in the main session..jpg, .jpeg, .png, .webp, .gif, .bmp or the user says photo / picture / screenshot / 图 (static image) → choose only eraser_watermark or image_restoration. Use §3a (run-task in the main session). Do not use spawn-run-task for these tasks (the CLI rejects it).eraser_watermark (image) or videoscreenclear (video). “Restore / upscale / enhance / 画质修复 / 清晰化” → image_restoration (image) or hdvideoallinone (video).image_key, Telegram or other cover / thumbnail, or an extra photo next to the clip). If the user’s wording targets the video (watermark or quality on the clip), use only that video as --input for videoscreenclear or hdvideoallinone (§3b). Do not submit eraser_watermark or image_restoration for the sibling image unless the user explicitly asks to process that picture too. Optional cover for sending the result is a delivery helper concern (docs/feishu-send-video.md, Telegram --cover-url), not a second Kaipai job.Getting media from IM messages (full detail: docs/im-attachments.md):
| Platform | How to obtain |
|---|---|
| Feishu | Message resource URL / image_key + message_id → optional resolve-input |
| Telegram | file_id → resolve-input --telegram-file-id (needs TELEGRAM_BOT_TOKEN) |
| Discord | attachments[0].url — often usable directly as --input |
| Generic | URL or path |
python3 {baseDir}/scripts/kaipai_ai.py resolve-input --file /tmp/saved.jpg --output-dir /tmp
# or: --url, --telegram-file-id, --feishu-image-key + --feishu-message-idUse the JSON path field as --input.
--input as http(s):// URL: In shells, quote the whole URL so & in query strings (e.g. signed OSS links) is not split. Large or slow downloads: defaults are 120s read timeout and 100MB max (same as resolve-input --url); override with MT_AI_URL_READ_TIMEOUT, MT_AI_URL_CONNECT_TIMEOUT, MT_AI_URL_MAX_BYTES. For very large video or flaky links, prefer resolve-input --url then --input with the local path.
If the user already gave a path or URL when triggering the skill, go to Step 2 without asking again.
Reply immediately to acknowledge the task, for example:
"🖼️ Processing — please wait a moment…"
python3 {baseDir}/scripts/kaipai_ai.py install-depsIf dependencies are already installed this step is quick; then continue to Step 3.
If task is videoscreenclear or hdvideoallinone, use only §3b (spawn-run-task + sessions_spawn). Use §3a only for image tasks (eraser_watermark, image_restoration).
Use when the host can wait on the shell until the command returns (eraser_watermark, image_restoration).
python3 {baseDir}/scripts/kaipai_ai.py run-task \
--task "<task_name>" \
--input "<image_url_or_path>"Replace <task_name> and <image_url_or_path> with the real values.
Default params include rsp_media_type: url. For custom JSON params:
python3 {baseDir}/scripts/kaipai_ai.py run-task \
--task "<task_name>" \
--input "<url_or_path>" \
--params '{"parameter":{"rsp_media_type":"url"}}'When run-task exits 0, stdout is JSON that includes:
skill_status: "completed" — the algorithm and polling are finished; the result is in this response. If the user asked for only this stage, proceed to Step 4. If they asked for a multi-stage pipeline, use primary_result_url as --input for the next --task (see Multi-stage pipelines above); Step 4 after the last stage. Do not re-submit run-task for the same task_id (same job); use query-task to resume polling if needed.output_urls — ordered http(s) links (same extraction as before: data.result.urls, images, media_info_list, etc.).primary_result_url — same as output_urls[0] when present; convenient for delivery scripts.task_id — full task id as a top-level string when known (from data.result.id or the polling session). Keep it for manual status recovery or support handoff; do not truncate. Some synchronous completions may omit it if the API does not return an id.agent_instruction — short reminder for the model.meta / data — full API payload for debugging.MANDATORY (user-visible outcome): When stdout JSON has skill_status: "completed" (from run-task or query-task), you must (1) send the user a short natural-language summary (success + what was done), and (2) complete Step 4 on their channel (delivery scripts below) using primary_result_url or output_urls[0], unless the user explicitly asked only for the URL with no IM delivery. Do not end the turn with only raw JSON in the tool transcript — the user should see a normal reply and the media or link in the chat.
When run-task exits non-zero, stdout is JSON with skill_status: "failed" (or an error field) — explain it to the user; do not treat as success or Step 4 delivery.
MANDATORY (quota / consume failures): When stdout JSON has failure_stage: "consume_quota" and error is credit_required (typically api_code 60002): you must send the user a clear, user-visible message grounded in the server detail (API msg). If the JSON includes pricing_url (extracted from that message when it contains an https link), must include it as a clickable link; if pricing_url is absent, must quote or paste the full detail so any links or instructions from the API still reach the user. Do not only dump raw JSON; do not retry run-task expecting success from tweaking --task / --params alone. When error is membership_required (60001): same rule (pricing_url when present, else full detail). When error is consume_param_error: treat as parameter / invocation mistakes — fix --task, --input, --params per SKILL and remote config; do not tell the user to recharge.
Video tasks use §3b in the main session. Polling, stderr, MT_AI_*, timeouts, SIGKILL / host caps, query-task / last-task recovery: docs/errors-and-polling.md and §3c–§3d. Optional: raise host tool/session wait limits — does not replace §3b for video.
sessions_spawn, video tasks only)Forbidden: Do not call spawn-run-task for eraser_watermark or image_restoration. Image tasks use §3a only. The CLI exits with an error if --task is not a video algorithm.
Same pattern as medeo-video spawn-task: the main agent does not block on polling; a sub-session runs run-task and is told exactly how to detect success and deliver.
<task_name> must be videoscreenclear or hdvideoallinone):python3 {baseDir}/scripts/kaipai_ai.py spawn-run-task \
--task "<task_name>" \
--input "<video_url_or_path>" \
--deliver-to "<oc_xxx_or_ou_xxx_or_chat_id>" \
--deliver-channel "feishu"Optional: --params '<json>' (same as run-task), --deliver-channel telegram|discord|..., --run-timeout-seconds (default 3600, aligned with extended poll budget). Do not reduce runTimeoutSeconds below the payload default unless you accept timeout risk — wall time varies (often minutes to tens of minutes).
Call OpenClaw sessions_spawn with the printed sessions_spawn_args (task, label, runTimeoutSeconds) without reducing runTimeoutSeconds unless you intentionally accept timeout risk.
Reply immediately to the user that processing has started (same as Step 1 acknowledgment). The sub-agent completes install-deps (if needed), run-task, then Step 4 using skill_status / output_urls per the embedded task text. For video tasks on Feishu/Telegram, the payload instructs feishu_send_video.py / telegram_send_video.py after curl download.
Multi-stage + spawn: One embed = one run-task (medeo-style). Video chains: Multi-stage pipelines (rule 4). Image chains: §3a only — run run-task once per stage in the main session (or host-equivalent blocking shell); do not use spawn-run-task for image stages.
query-task)When you already have a full task_id (from a previous stdout JSON, e.g. success, poll_timeout, or poll_aborted, or from stderr task_id=... lines) and the job may still be running on the server — do not run run-task again for that id; resume polling only:
python3 {baseDir}/scripts/kaipai_ai.py query-task \
--task-id "<full_task_id>"Optional --task sets the task_name field in the success JSON for your logs (default labels as query_task). Uses the same MT_AK / MT_SK and remote config as the original submit. Stdout JSON and exit codes match run-task: exit 0 with skill_status: "completed" when the task finishes successfully; exit non-zero with skill_status: "failed" / error on timeout, query errors, or API-reported failure.
Local state under ~/.openclaw/workspace/openclaw-kaipai-ai/ (last_task.json, history/task_*.json, last 50 records). For async run-task, last_task.json may briefly show skill_status: "polling" with task_id while the client is still polling (checkpoint so query-task can resume if the process is killed mid-poll):
python3 {baseDir}/scripts/kaipai_ai.py last-task
python3 {baseDir}/scripts/kaipai_ai.py historyUse when the user asks whether a recent job finished, or for a short history summary. Do not expose raw secrets.
Required after success: When skill_status is completed, deliver here — the CLI does not post to IM by itself. Send the processed image or video back on the user’s platform (and keep the Step 3 MANDATORY summary in the same turn).
| Platform | Source | Format |
|---|---|---|
| Feishu group | conversation_label or chat_id without chat: prefix | oc_xxx |
| Feishu DM | sender_id without user: prefix | ou_xxx |
| Telegram | Inbound message chat_id | e.g. -1001234567890 |
| Discord | channel_id | e.g. 123456789 |
python3 {baseDir}/scripts/feishu_send_image.py \
--image "<result_url>" \
--to "<oc_xxx or ou_xxx>"videoscreenclear, hdvideoallinone)curl -sL -o /tmp/kaipai_result.mp4 "<primary_result_url_or_output_urls[0]>"
python3 {baseDir}/scripts/feishu_send_video.py \
--video /tmp/kaipai_result.mp4 \
--to "<oc_xxx or ou_xxx>" \
--video-url "<primary_result_url_or_output_urls[0]>" \
[--cover-url "<optional_thumb_url>"] \
[--duration <milliseconds_if_known>]--video-url adds a second message with the download link. Optional cover/duration; details: docs/feishu-send-video.md.
TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" python3 {baseDir}/scripts/telegram_send_image.py \
--image "<result_url>" \
--to "<chat_id>" \
--caption "✅ Done"curl -sL -o /tmp/kaipai_result.mp4 "<primary_result_url_or_output_urls[0]>"
TELEGRAM_BOT_TOKEN="$TELEGRAM_BOT_TOKEN" python3 {baseDir}/scripts/telegram_send_video.py \
--video /tmp/kaipai_result.mp4 \
--to "<chat_id>" \
--video-url "<primary_result_url_or_output_urls[0]>" \
[--cover-url "<optional_thumb_url>"] \
[--duration <seconds>] \
--caption "✅ Done"--video-url sends a follow-up text message with the download link. Max ~50 MB for Bot API video; larger files rely on the link line.
Download the result, then send with the message tool (use .mp4 for video, .jpg / .png for image):
curl -L "<result_url>" -o /tmp/result_image.jpgThen:
message(action="send", channel="discord", target="<channel_id>", filePath="/tmp/result_image.jpg")For files over ~25MB, send the result URL as a link instead.
Use the message tool with media, or send the result URL directly.
| Command | Description | User-facing? |
|---|---|---|
preflight | AK/SK ok / missing | No |
install-deps | pip install requirements | No |
run-task | Submit + poll until done | Indirectly |
query-task | Resume poll by task_id | When recovering |
spawn-run-task | Print sessions_spawn payload — videoscreenclear / hdvideoallinone only | No |
resolve-input | IM/URL → local path for --input | No |
last-task | Last job JSON | Yes — “last job?” |
history | Up to 50 recent records | Yes — “history?” |
kaipai_ai.py; agents do not need to open client.py / ai/api.py. Must not bypass this with direct HTTP to AIGC/wapi for new jobs — see API submission path (MANDATORY) above. query-task is the supported way to resume polling when a task_id is already known.spawn-run-task + sessions_spawn in the main session (mandatory path); the worker runs run-task and delivery. run-task in the main session is for image tasks (§3a) and for recovery (query-task). Polling and env tuning: docs/errors-and-polling.md.MT_AK / MT_SK first; if unset, scripts/.env is read automatically (same as SkillClient).INVOKE setup.TELEGRAM_BOT_TOKEN and similar only via environment variables — never as CLI arguments.skill_status: "failed" / error, exit code ≠ 0 — explain to the user; check AK/SK, network, quotas; timeouts / SIGKILL / no final JSON: docs/errors-and-polling.md. URL input errors may mention HTTP 403 (expired signed URL) or timeout — see MT_AI_URL_* env vars above.© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 20 other files (scripts) in skills/kaipai-skill of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Openclaw Kaipai AI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openclaw Kaipai AI this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~6k | Automated safety check: Notes | MIT | |
| Spawnalirezarezvani/claude-skills | 28k | — | ~829 | Automated safety check: Pass | MIT | |
| Spawnkoolamusic/claudefiles | 130 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Orchestrator Container Spawnsamugit83/redamon | 3k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Agentica Spawnparcadei/Continuous-Claude-v3 | 3.9k | 1 repos | ~512 | Automated safety check: Pass | MIT | |
| Spawn Instanceaeonfun/aeon | 770 | — | ~3.8k | Automated safety check: Pass | MIT |
alirezarezvani/claude-skills
Launch N parallel subagents in isolated git worktrees to compete on the session task.
koolamusic/claudefiles
Fan out work to parallel sub-agents with worktree isolation.
samugit83/redamon
Spawning and hardening scan containers from the recon orchestrator: the security flags that look correct and break the container, and the sibling bind-mount path handling.
parcadei/Continuous-Claude-v3
Spawn Agentica multi-agent patterns
aeonfun/aeon
Clone this Aeon agent into a new GitHub repo - fork, configure skills, validate, and register in the fleet
closedloop-ai/claude-plugins
Spawn and collect the reviewer fleet at stage20spawnreviewers.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Video file → videoscreenclear or hdvideoallinone + spawn-run-task and sessionsspawn (main session). Openclaw Kaipai AI is an agent skill from LeoYeAI/openclaw-master-skills. Video file → videoscreenclear or hdvideoallinone + spawn-run-task and sessionsspawn (main session).
Openclaw Kaipai AI fits situations like: the user asks for watermark removal; quality restoration on images.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a claude-code`. Or copy the skill folder (skills/kaipai-skill in LeoYeAI/openclaw-master-skills) into .claude/skills/openclaw-kaipai-ai in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a codex`. Or copy the skill folder (skills/kaipai-skill in LeoYeAI/openclaw-master-skills) into .agents/skills/openclaw-kaipai-ai in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill openclaw-kaipai-ai -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openclaw-kaipai-ai, .gemini/skills/openclaw-kaipai-ai, .github/skills/openclaw-kaipai-ai and .opencode/skills/openclaw-kaipai-ai in your project.
Going by SKILL.md and its folder, Openclaw Kaipai AI needs Python for the scripts in its folder, the command-line tools its instructions call (python3 and curl) and credentials named TELEGRAM_BOT_TOKEN. Our summary lists: Python 3; A credential in TELEGRAM_BOT_TOKEN.
SKILL.md names 1 domain. In commands or code: open.feishu.cn; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Openclaw Kaipai AI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Openclaw Kaipai AI: Spawn (alirezarezvani/claude-skills, 28k stars), Spawn (koolamusic/claudefiles, 130 stars), Orchestrator Container Spawn (samugit83/redamon, 3k stars) and Agentica Spawn (parcadei/Continuous-Claude-v3, 3.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,161 GitHub stars. The repository holds 1,235 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.