Install
openclaw skills install @joggai-tech/jogg-apiUse when working with JoggAI v2 APIs and workflow execution for avatar videos, product videos, templates, assets, avatars, webhooks, translation, and account lookups. Covers endpoint lookup plus guided workflow routing, while keeping lip sync in its own dedicated skill.
openclaw skills install @joggai-tech/jogg-apiUse this skill when the task is about JoggAI v2 endpoint execution or one of the main multi-step API workflows.
All paths in this document are relative to the current skill root directory.
Runner:
bash "scripts/jogg-v2.sh"Do not use this skill for lip sync. Use jogg-lip-sync instead.
asset_urlscripts/jogg-v2.sh as the execution entrypoint--workflow for scenario requests and --op for direct endpoint requestscurl commands when the runtime already supports the operation10 secondsmax_wait_seconds and max_poll_attemptsworkflow get-result or the specific *-get operationJOGG_API_KEY is requiredJOGG_BASE_URL is optional and defaults to https://api.jogg.aiJOGG_API_PLATFORM is optional and defaults to openclawPolling defaults:
JOGG_API_DEFAULT_POLL_INTERVAL_SECONDS=15JOGG_API_DEFAULT_MAX_WAIT_SECONDS=1800JOGG_API_DEFAULT_MAX_POLL_ATTEMPTS=90--op--workflow--workflow get-resultList supported endpoint operations:
bash "scripts/jogg-v2.sh" --list-ops
Generic pattern:
bash "scripts/jogg-v2.sh" \
--op "<operation>" \
--body-json '<json>' \
--query-json '<json>' \
--path-json '<json>'
Examples:
bash "scripts/jogg-v2.sh" \
--op "voices-list" \
--query-json '{"language":"en-US","gender":"Male"}'
bash "scripts/jogg-v2.sh" \
--op "avatar-video-get" \
--path-json '{"id":"video_123456"}' \
--poll
For the full endpoint catalog, see references/endpoints.md.
List supported workflows:
bash "scripts/jogg-v2.sh" --list-workflows
Generic pattern:
bash "scripts/jogg-v2.sh" \
--workflow "<workflow>" \
--body-json '<json>' \
--poll
Supported workflows:
upload-mediaai-scriptscreate-photo-avatarphoto-avatar-motionavatar-videoavatar-video-with-photo-avataravatar-video-with-custom-audioavatar-video-transparenturl-to-videocreate-template-videovideo-translationproduct-avatarwebhook-integrationget-resultFor the flow definitions and step order, see references/workflows.md.
upload-mediafile_pathcontent_typeai-scriptsPOST /v2/ai_scriptscreate-photo-avatarPOST /v2/photo_avatar/photo/generateimage_pathphoto-avatar-motionname, voice_id, modelimage_urlphoto_idavatar-videoPOST /v2/create_video_from_avatarvoice.audio_pathurl-to-videoproduct: create-product payloadproduct_update: optional update-product payload without product_idrender_mode: direct or previewcreate_request: required in direct modepreview_request: required in preview modepreview_index: optional, defaults to 0create-template-videoPOST /v2/create_video_with_templatevariables[].properties.local_pathvideo-translationPOST /v2/video_translate/video_pathproduct-avatargeneration: payload for POST /v2/product_avatar/generationmotion: payload for POST /v2/product_avatar/add_motion without generation_idproduct_image_pathwebhook-integrationaction: list, events, create, update, or deletecreate: payload for POST /v2/endpointupdate: payload for PUT /v2/endpoint/{endpoint_id} plus endpoint_iddelete: needs endpoint_idget-resultkindstdout returns machine-readable JSON onlystderr is reserved for progress logspoll_timeout: trueCreate AI scripts:
bash "scripts/jogg-v2.sh" \
--workflow "ai-scripts" \
--body-json '{
"language":"english",
"video_length_seconds":"30",
"script_style":"Storytime",
"product_info":{
"source_type":"details",
"data":{
"name":"Amazing Smart Bottle",
"description":"Self-cleaning bottle for travel and fitness use"
}
}
}'
Create photo avatar and stop after submit:
bash "scripts/jogg-v2.sh" \
--workflow "create-photo-avatar" \
--body-json '{
"age":"Adult",
"avatar_style":"Professional",
"gender":"Female",
"model":"modern",
"aspect_ratio":"portrait",
"image_path":"/tmp/portrait.jpg"
}' \
--no-poll
Create product video through preview flow:
bash "scripts/jogg-v2.sh" \
--workflow "url-to-video" \
--body-json '{
"product":{
"url":"https://example.com/product-page"
},
"render_mode":"preview",
"preview_request":{
"visual_styles":["Simple Product Switch","Dynamic Showcase"],
"video_spec":{"aspect_ratio":"landscape","length":"30","caption":true},
"avatar":{"id":1,"type":0},
"voice":{"id":"en-US-ChristopherNeural"},
"audio":{"music_id":13},
"script":{"style":"Storytime","language":"english"}
}
}'