Install
openclaw skills install skill-hub-gatewayUnified gateway skill for async execute/poll, portal user closure, and telemetry feedback workflows.
openclaw skills install skill-hub-gatewayDefault API base URL: https://gateway-api.binaryworks.app
Default site base URL (for upload route): https://gateway.binaryworks.app
Chinese documentation: SKILL.zh-CN.md
GET /skills/manifest.json -> data.version.SKILL.md frontmatter version.major.minor.patch).latest_version > current_version, read the matching section under Release Notes in this document to build update_summary.current_versionlatest_versionupdate_summaryUpdate nowRemind me later in this sessionRemind me later in this session, suppress repeated prompts for the same target version until a new session starts.Scripts auto-complete onboarding by default:
POST /agent/install-code/issue with {"channel":"local"} or {"channel":"clawhub"}.data.install_code.POST /agent/bootstrap with {"agent_uid":"<agent_uid>","install_code":"<install_code>"}.data.api_key, then call runtime APIs with X-API-Key or Authorization: Bearer <api_key>.Manual override:
api_key explicitly.agent_uid and owner_uid_hint are omitted, scripts derive stable local defaults from the current workspace path.POST /skill/executeGET /skill/runs/:run_idAction catalog (single default path per action):
portal.me -> GET /user/meportal.balance -> GET /user/points/balanceportal.ledger.query -> GET /user/points/ledgerportal.usage.query -> GET /user/usageportal.skill.execute -> POST /user/skills/executeportal.skill.poll -> GET /user/skills/runs/:runIdportal.skill.presentation -> GET /user/skills/runs/:runId/presentationportal.voucher.redeem -> POST /user/vouchers/redeem (write)portal.recharge.create -> POST /user/recharge/orders (write)portal.recharge.get -> GET /user/recharge/orders/:orderIdWrite safety gate:
portal.voucher.redeem and portal.recharge.create require payload.confirm === true.confirm is missing or not true, action runner rejects the call locally and does not send write traffic.Default payload conventions:
payload.input is the primary input object for portal.skill.execute.payload.request_id is optional and passed through as-is.payload fields directly as query params (date_from, date_to, service_id, channel).Media normalization conventions:
image_url, audio_url, file_url.attachment.url exists, map it to the capability target URL field.file_path exists, auto-upload through {site_base}/api/blob/upload, with fallback to {site_base}/api/blob/upload-file when @vercel/blob/client is unavailable, then backfill URL into input before execution.@vercel/blob/client, you can also pre-upload media via your backend (for example Vercel Blob) and pass attachment.url or explicit URL fields.site_base_url is a guarded field: runtime only accepts the trusted configured site base URL (default https://gateway.binaryworks.app or env SKILL_SITE_BASE_URL).Presentation files:
portal.skill.presentation accepts optional include_files=true to return visual.files.assets with rendered file URLs.portal-action.mjs defaults include_files=true for portal.skill.presentation unless explicitly disabled.overlay (boxed image), plus mask / cutout assets when available.output.media_files.assets with uploaded file URLs when blob storage is configured.User-scoped actions use a fixed auth bridge:
api_key, agent_uid, owner_uid_hint, base_url).GET /agent/me with X-API-Key + x-agent-uid to resolve user_id.POST /user/api-key-login with user_id + api_key to obtain userToken.Authorization: Bearer <userToken>.For POINTS_INSUFFICIENT responses:
error.code and error.message unchanged.error.details.recharge_url when available.portal.recharge.create or direct open of recharge_url.scripts/execute.mjs (CLI args: [api_key] [capability] [input_payload] [base_url] [agent_uid] [owner_uid_hint])scripts/poll.mjs (CLI args: [api_key] <run_id> [base_url] [agent_uid] [owner_uid_hint])scripts/feedback.mjs (CLI args: [api_key] [payload_json] [base_url] [agent_uid] [owner_uid_hint])scripts/telemetry.mjs (shared best-effort telemetry helper)scripts/runtime-auth.mjs (shared auto-bootstrap helper)scripts/portal-auth.mjs (api-key -> user session bridge)scripts/portal-action.mjs (CLI args: [api_key] <action> <payload_json> [base_url] [agent_uid] [owner_uid_hint])scripts/attachment-normalize.mjs (attachment URL/path normalization + upload)references/capabilities.jsonreferences/openapi.jsonSKILL.zh-CN.mdSKILL_TELEMETRY_ENABLED (true by default)SKILL_TELEMETRY_BASE_URL (defaults to runtime base_url)SKILL_TELEMETRY_TIMEOUT_MS (2000 by default)POST /feedback/submit with runtime auth (X-API-Key) and attaches agent_uid + owner_uid_hint in metadata.human_detectimage_taggingtts_reportembeddingsrerankerasrtts_low_costmarkdown_convertface-detectperson-detecthand-detectbody-keypoints-2dbody-contour-63ptface-keypoints-106pthead-poseface-feature-classificationface-action-classificationface-image-qualityface-emotion-recognitionface-physical-attributesface-social-attributespolitical-figure-recognitiondesignated-person-recognitionexhibit-image-recognitionperson-instance-segmentationperson-semantic-segmentationconcert-cutoutfull-body-mattinghead-mattingproduct-cutoutWhen publishing a new version, add a new section here. Agent update summaries must be generated from this block.
What's New
/api/blob/upload-file direct-upload fallback for file_path flows when @vercel/blob/client is unavailable.portal.skill.presentation file rendering (visual.files.assets) for overlay/mask/cutout URLs.output.media_files.assets with uploaded file URLs when blob storage is configured.Breaking/Behavior Changes
Migration Notes
@vercel/blob/client, send file_path as before; the runtime now falls back to direct upload.portal.skill.presentation with include_files=true or rely on the portal default.What's New
portal.skill.execute input normalization for attachment.url (both input.attachment.url and top-level attachment.url).image_url/audio_url/file_url take priority over attachment.url when both are present).@vercel/blob/client to use backend pre-upload URLs.Breaking/Behavior Changes
Migration Notes
portal-action.mjs workflows remain compatible.attachment.url or explicit media URL.What's New
portal.me, balance/ledger/usage, execute/poll/presentation, voucher and recharge actions).portal.voucher.redeem and portal.recharge.create require confirm=true.portal-auth.mjs) for api_key -> user session.portal-action.mjs) and attachment normalization script (attachment-normalize.mjs) with attachment.url and file_path support.recharge_url in passthrough envelopes.Breaking/Behavior Changes
confirm=true is absent.Migration Notes
execute.mjs and poll.mjs workflows remain available.portal-action.mjs for user closure actions.What's New
scripts/feedback.mjs to submit structured feedback via runtime auth (X-API-Key).SKILL_TELEMETRY_*).Breaking/Behavior Changes
Migration Notes
/agent/telemetry/ingest and /telemetry/ingest.What's New
input_json to input_payload for consistency with structured payload semantics.Breaking/Behavior Changes
Migration Notes