Reference
Scopes
A caller must hold every scope a procedure lists (AND). A missing or invalid credential is UNAUTHENTICATED; a valid one without the scopes is FORBIDDEN, naming all the required scopes at once. Some procedures need one more scope for part of their input; their summaries say so. Index.
| Scope | Grants | Procedures that require it |
|---|
runtime:read | Read the runtime’s health, host and environment checks | runtime.status, runtime.hostInfo, runtime.doctor |
runtime:admin | Stop the runtime, sweep leaks, manage pairings | runtime.shutdown, runtime.sweep, pairings.create, pairings.list, pairings.revoke |
devices:read | Observe devices: sessions, the UI tree, screenshots, traces, files, watch tickets | catalog.deviceTypes, catalog.osVersions, sessions.get, sessions.list, sessions.wait, sessions.events, apps.list, ui.snapshot, ui.query, ui.waitFor, ui.describeAt, media.screenshot, media.startRecording, media.stopRecording, streams.ticket, traces.startChunk, traces.stopChunk, files.get |
devices:acquire | Create, keep alive and release sessions | sessions.create, sessions.heartbeat, sessions.release |
devices:drive | Act on a device: input, system settings, launch and open URLs, drive tickets | apps.launch, apps.terminate, apps.openUrl, input.tap, input.doubleTap, input.longPress, input.swipe, input.drag, input.pinch, input.type, input.fill, input.pressKey, input.pressButton, input.scroll, input.setOrientation, input.gesture, input.hideKeyboard, system.setLocation, system.setAppearance, system.getClipboard, system.setClipboard, system.setStatusBar, debug.connect, debug.evaluate |
apps:install | Install, uninstall and reset apps, and set their permissions | apps.install, apps.uninstall, apps.clearData, apps.setPermissions |
apps:debug | Run code in an app’s JavaScript runtime (debug.evaluate) | debug.evaluate |
logs:read | Read logs and crash reports | logs.stream, logs.read, logs.crashes |
runs:read | Read and follow test runs | runs.list, runs.get, runs.events |
runs:report | Publish a test run’s reporter events | runs.publish |
public (no credential): runtime.version, pairings.redeem.
session (any authenticated principal): runtime.capabilities.
Trust-class (locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token): pairings.create.