Integrations

Any client that speaks the Chrome DevTools Protocol can drive a sandbox browser. Only clients verified end to end on MIOSA are listed here; more will be added as they are proven.

Compatibility

Each client below was run against a live sandbox browser: connect, navigate, click, type, screenshot, and confirm a live viewer sees the same page.

ClientLanguageVersionStatus
PlaywrightJavaScript1.64.0Tested
PlaywrightPython1.63.0Tested
PuppeteerJavaScript25.13.0Tested
Raw CDPNode (no library)Node 24Tested
StagehandJavaScript3.7.3Tested
browser-usePython0.13.11Tested
Computer use (screenshot + actions)Any HTTP client-Tested

Connect

Every CDP client connects to the same endpoint on api.miosa.ai:

wss://api.miosa.ai/api/v1/sandboxes/{id}/browser/cdp

POST /browser starts the browser and returns cdp_url and stream_auth. Authenticate the socket one of two ways:

  • Token in the URL. Append the stream_auth token as ?token=:

    wss://api.miosa.ai/api/v1/sandboxes/{id}/browser/cdp?token=<stream_auth>
  • Authorization header. Authorization: Bearer <msk_* API key> (the key needs the sandboxes:exec scope), for clients that can set headers on the WebSocket.

Both go through api.miosa.ai; nothing is exposed on the sandbox’s own host. The endpoint is control only: a view-only share token is refused here.

POST /browser also returns cdp_ws_url and cdp_http_url, which carry the token in the path for clients that cannot set headers or append a query string. cdp_http_url answers /json/version, /json/list, /json/new, and /json/protocol, and rewrites every advertised webSocketDebuggerUrl to itself, so clients that follow discovery stay authenticated.

Client examples

Stagehand 4.x

Stagehand 4.x is not supported: it requires pipe-only CDP. Use Stagehand 3.x.

See also

Was this page helpful?