OpenClaw DroidClaw Bridge
Use this skill to run DroidClaw reliably from OpenClaw with explicit health checks, authenticated control calls, and repeatable troubleshooting.
Default Operating Mode
Prefer on-demand runtime by default:
scripts/droidclaw_service.sh ensurescripts/droidclaw_preflight.shscripts/droidclaw_ctl.py ...
Only keep DroidClaw always-on when the user asks for continuous availability.
Lifecycle Commands
Run from this skill folder.
# one-time setup (clone/update, bun install, env templates, DB push attempt)
./scripts/droidclaw_service.sh setup
# start local server (and optionally web UI)
./scripts/droidclaw_service.sh start
./scripts/droidclaw_service.sh start --with-web
# start only if not healthy
./scripts/droidclaw_service.sh ensure
# inspect process and health
./scripts/droidclaw_service.sh status
# stop managed background processes
./scripts/droidclaw_service.sh stop
Control API Toolkit
Use droidclaw_ctl.py for consistent JSON output.
# health
./scripts/droidclaw_ctl.py health
# list devices visible to configured user
./scripts/droidclaw_ctl.py list-devices
# start/stop a goal
./scripts/droidclaw_ctl.py run-goal <device_id> "Open WhatsApp and send hello"
./scripts/droidclaw_ctl.py stop-goal <device_id>
# inspect history
./scripts/droidclaw_ctl.py list-sessions <device_id>
./scripts/droidclaw_ctl.py list-steps <device_id> <session_id>
Use --compact when output feeds another script.
Required Env for Authenticated Control
Set before list-devices, run-goal, and session inspection:
DROIDCLAW_BASE_URL(defaulthttp://127.0.0.1:8080)DROIDCLAW_INTERNAL_SECRETDROIDCLAW_USER_ID
Control endpoints rely on internal headers (x-internal-secret, x-internal-user-id) instead of browser-cookie auth.
Android Field Rules
When configuring Android app onboarding/settings:
- API Key: DroidClaw device API key from dashboard API Keys.
- Server URL/Link: hosted
wss://tunnel.droidclaw.aior self-host base URL. - Do not paste OpenAI/Groq provider keys into Android API Key.
Troubleshooting Order
./scripts/droidclaw_service.sh status./scripts/droidclaw_ctl.py health./scripts/droidclaw_preflight.sh./scripts/droidclaw_ctl.py list-devices- If
401: fix internal secret/user id. - If
404 device not connected: reconnect Android to same server/account. - If
409 agent already running: stop goal or wait.
References
references/droidclaw-integration.mdreferences/android-fields.mdreferences/runtime-modes.md