OpenClaw Integration
OpenClaw support is intentionally split between Android and an installable OpenClaw plugin.
Android Adapter
Path:
overlay/packages/apps/OpenPhoneAssistant/src/org/openphone/assistant/runtime/adapters/openclaw/Responsibilities:
- Connect to an OpenClaw gateway.
- Authenticate as an OpenPhone Android node.
- Convert phone attention requests into stock OpenClaw
agent.requestevents. - Convert OpenClaw
node.invoke.requestevents into genericRuntimeToolRequests. - Return tool results through
node.invoke.result. - Send confirmation required/resolved events through existing node event paths.
The adapter should not define OpenClaw core policy. Policy belongs in the plugin.
Plugin
Path:
integrations/openclaw-plugin/Responsibilities:
- Register OpenPhone Android node command policy.
- Keep screen/app reads separate from private reads and dangerous actions.
- Use existing OpenClaw plugin and node-invoke policy surfaces.
This keeps OpenPhone out of OpenClaw core while still giving OpenClaw a reviewable integration point.
Validation
The live smoke script runs against a booted OpenPhone Android target and a real OpenClaw gateway with the OpenPhone plugin installed:
ANDROID_SERIAL=emulator-5584 \
OPENPHONE_OPENCLAW_TOKEN="$OPENCLAW_GATEWAY_TOKEN" \
scripts/smoke-test-openclaw-runtime.shThe OpenPhone SDK phone emulator is a valid target for this smoke. It proves
that Android connects to OpenClaw as an OpenPhone node, the plugin exposes the
approved command surface, and OpenClaw can invoke openphone.screen.get.
Physical Pixel 9a validation is still required for hardware buttons, radio, camera, fingerprint, recovery/OTA, and release acceptance.