<workspace>/skillsopenclaw skills list
openclaw skills info <技能名>
openclaw skills checkopenclaw gateway startopenclaw gateway stopopenclaw dashboardopenclaw gateway restartopenclaw config set tools.profile fullopenclaw gateway restarthttps://clawhub.ai#!/usr/bin/env bash
set -euo pipefail
API_KEY="sk-f1JNAu5fx"
API_URL="https://api.apiqik.online/v1/videos"
if [ -z "$API_KEY" ]; then
echo "错误:请先 export API_KEY='sk-你的新key'" >&2
exit 1
fi
MODEL="wan2.5-i2v-preview"
PROMPT="A fast-paced travel vlog in Beijing, shot in vertical format, energetic and cinematic."
IMG_URL="https://sxbrlk.com/uploads/20260317/bird.png"
METADATA_JSON=$(printf '{ "input": { "img_url": "%s" } }' "$IMG_URL")
SECONDS="10"
SIZE="720P"
curl -X POST "$API_URL" \
-H "Authorization: $API_KEY" \
-F "model=$MODEL" \
-F "prompt=$PROMPT" \
-F "seconds=$SECONDS" \
-F "size=$SIZE" \
-F "metadata=$METADATA_JSON" \
| tee response.json
echo "OK"% set -euo pipefail
API_KEY="sk-f1JNAu5fxNX0"
BASE_URL="https://api.apiqik.online/v1/videos"
if [ -z "$API_KEY" ]; then
echo "错误:请先 export API_KEY='sk-你的新key'" >&2
exit 1
fi
if [ ! -f response.json ]; then
echo "response.json not found in current directory" >&2
exit 1
fi
ID=$(jq -r '.id' response.json)
if [ -z "$ID" ] || [ "$ID" = "null" ]; then
echo "Cannot read .id from response.json" >&2
exit 1
fi
echo "Got task ID from response.json: $ID"
while true; do
RESP=$(curl -s -H "Authorization: $API_KEY" "${BASE_URL}/${ID}")
ERROR_CODE=$(echo "$RESP" | jq -r '.code // empty')
ERROR_MSG=$(echo "$RESP" | jq -r '.message // empty')
if [ -n "$ERROR_CODE" ]; then
echo "接口报错:code=$ERROR_CODE, message=$ERROR_MSG" >&2
echo "完整返回:$RESP" >&2
exit 1
fi
STATUS=$(echo "$RESP" | jq -r '.status // empty')
PROGRESS=$(echo "$RESP" | jq -r '.progress // 0')
echo "status=$STATUS, progress=$PROGRESS%"
if [ "$STATUS" = "completed" ]; then
VIDEO_URL=$(echo "$RESP" | jq -r '.metadata.url // empty')
if [ -z "$VIDEO_URL" ]; then
echo "任务已完成,但没有拿到 metadata.url,完整返回:$RESP" >&2
exit 1
fi
echo "$RESP" > response.json
echo "Video generation completed."
echo "VIDEO_URL=$VIDEO_URL"
echo "OK"
break
elif [ "$STATUS" = "failed" ] || [ "$STATUS" = "canceled" ]; then
echo "Video generation failed or was canceled. Response: $RESP" >&2
exit 1
fi
sleep 10
done%#!/usr/bin/env bash
set -euo pipefail
API_KEY="sk-f1JNAu5fxN"
BASE_URL="https://api.apiqik.online/v1/videos"
OUTPUT_FILE="video.mp4"
if [ -z "$API_KEY" ]; then
echo "错误:请先 export API_KEY='sk-你的新key'" >&2
exit 1
fi
if [ ! -f response.json ]; then
echo "错误:当前目录没有 response.json" >&2
exit 1
fi
VIDEO_ID=$(jq -r '.id // empty' response.json)
if [ -z "$VIDEO_ID" ] || [ "$VIDEO_ID" = "null" ]; then
echo "错误:无法从 response.json 读取 .id" >&2
exit 1
fi
API_URL="${BASE_URL}/${VIDEO_ID}/content"
echo "读取到 VIDEO_ID: $VIDEO_ID"
echo "开始下载到: $OUTPUT_FILE"
curl -fL \
-H "Authorization: $API_KEY" \
"$API_URL" \
-o "$OUTPUT_FILE"
echo "Video saved to: $OUTPUT_FILE"
echo "OK"% mkdir -p ~/.openclaw/workspace/skills/hello-world
---
name: php_project_rules
description: 用于 PHP 项目的代码生成和脚本执行规则
---
# PHP 项目规则
当用户要求写 PHP 接口、Shell 脚本或排查业务逻辑时:
1. 先尽量沿用现有项目目录结构
2. 涉及订单、课程、班级时,优先按现有表结构命名
3. Shell 脚本执行成功时,最后输出 OK
4. 如果脚本依赖 response.json,默认在当前工作区读取
5. 如果需要执行本地命令,优先在工作区内执行,不要随意写绝对路径workspace/
skills/
scripts/
generate_beijing_video.sh
check_video_status_and_download.sh
download_video.sh