Install
openclaw skills install hubstudioHubStudio OpenAPI skill for full endpoint lookup, request/response field explanation, and parameter constraint checking. Use when querying HubStudio API inte...
openclaw skills install hubstudioHubStudio provides browser environment automation, cloud phone operations, environment management, account management, and group management through local APIs.
This Skill is designed to:
Core docs:
Install and open HubStudio client on your machine, then log in.
The current OpenAPI file uses:
http://127.0.0.1:6873
Verify service health with:
curl -s -X POST "http://127.0.0.1:6873/api/v1/browser/all-browser-status" \
-H "Content-Type: application/json" \
-d '{}'
# API calls and JSON inspection
brew install curl jq
# Python validation scripts
python3 -m pip install --user pyyaml
export HUBSTUDIO_BASE_URL="http://127.0.0.1:6873"
export HUBSTUDIO_AUTH_TOKEN="<your-token-if-needed>"
HubStudio OpenAPI in this project contains 56 operations across these domains:
curl -s -X POST "$HUBSTUDIO_BASE_URL/<endpoint>" \
-H "Content-Type: application/json" \
-d '<json-body>'
This project includes hubstudio.js, so you can execute capabilities directly:
node hubstudio.js help
node hubstudio.js list
node hubstudio.js browserCreate
node hubstudio.js browserStart 1474900026
node hubstudio.js browserStatus 1474900026
node hubstudio.js browserForeground 1474900026
node hubstudio.js browserArrange
node hubstudio.js browserStop 1474900026
node hubstudio.js testAll
hubstudio.js now supports all OpenAPI endpoints via generated commands in commands.generated.json.
Example generated command:
node hubstudio.js postV1BrowserStart --body '{"containerCode":"1474900026"}'
# Enable ADB
node hubstudio.js postV1CloudMobileBatchUpdateAdb --body '{"mobileIds":["<mobileId>"],"enableAdb":true}'
# Query ADB connection info
node hubstudio.js postV1CloudMobileListAdb --body '{"mobileIds":["<mobileId>"]}'
# Open environment
curl -s -X POST "http://127.0.0.1:6873/api/v1/browser/start" \
-H "Content-Type: application/json" \
-d '{"containerCode":"1474900026"}'
# Close environment
curl -s -X POST "http://127.0.0.1:6873/api/v1/browser/stop" \
-H "Content-Type: application/json" \
-d '{"containerCode":"1474900026"}'
# Get all open environment status
curl -s -X POST "http://127.0.0.1:6873/api/v1/browser/all-browser-status" \
-H "Content-Type: application/json" \
-d '{}'
From openapi.yaml:
http://127.0.0.1:6873
Most endpoints return:
{
"code": 0,
"msg": "Success",
"data": {}
}
Interpretation:
code = 0: successnode hubstudio.js browserStart 1474900026
node hubstudio.js browserStatus
# Current smoke test report (generated previously):
cat scripts/endpoint_test_report.json | jq '.total, .reachable, .transport_fail_count'
python3 scripts/validate_completeness.py
This is expected for many endpoints. Check response body code and msg for business-level result.
Check:
containerCode is correctEndpoint smoke tests are designed for reachability first. Business failures due to required params/resources are normal unless strict case data is provided.
Use reference.md. Each endpoint lists:
In OpenClaw workflows, call HubStudio endpoints directly with structured payloads:
# Example: open environment
openclaw hubstudio call --path "/api/v1/browser/start" \
--method POST \
--body '{"containerCode":"1474900026"}'
For batch tasks, iterate IDs with per-item result logging and partial-failure tolerance.
openapi.yamlreference.mdpython3 scripts/validate_completeness.pyscripts/endpoint_test_report.jsonUse this capability when the user asks to connect cloud phones through ADB.
adb connect <ip:port> modeadb connect localhost:<port> modeExecution rule:
postV1CloudMobileBatchUpdateAdbpostV1CloudMobileListAdbadb devicesscripts/validate_completeness.pyscripts/endpoint_test_report.json