Configuration and maintenance tools
Configuration, permissions, health, updates and extensions.
Configuration, permissions, health, updates and extensions.
| Tool | Description | Platforms |
|---|---|---|
get_config | Return the current cua-driver-rs configuration. | macOS, Linux, Windows |
set_config | Update cua-driver-rs configuration. | macOS, Linux, Windows |
check_permissions | Report TCC permission status for Accessibility and Screen Recording. | macOS, Linux, Windows |
health_report | Single-call end-to-end driver diagnostics. | macOS, Linux, Windows |
check_for_update | Check the saved stable/nightly Cua Driver channel for a release on GitHub. | macOS, Linux, Windows |
install_extension | Preview or install one Driver-managed optional extension. | macOS, Linux, Windows |
Served by cua-driver mcp; see MCP tools for every tool.
get_config#Effect: read-only, idempotent. Platforms: macOS, Linux, Windows.
Return the current cua-driver-rs configuration.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
set_config#Effect: mutating, idempotent. Platforms: macOS, Linux, Windows.
Update cua-driver-rs configuration. Changes to max_image_dimension take effect immediately. The experimental_pip keys are persisted to ~/.cua-driver/config.json and take effect on the next daemon restart (the PiP backend is initialised once at startup).
Note: capture_mode is a per-call param (on get_window_state / click), not a stored setting. Capture modality is selected by each action's target; the old capture_scope config key is retired.
macOS parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
experimental_pip | boolean | Enable the experimental picture-in-picture preview window. Applies on next daemon restart. | |
experimental_pip_geometry | string | PiP window size + optional position in WxH or WxH+X+Y form (e.g. 320x200+24+24). Applies on next daemon restart. | |
key | string | Name of a single config field to write ({key, value} shape, matching the CLI config set and the Windows/Linux tools). Pair with value. Equivalent to passing the field directly. | |
max_image_dimension | integer | Max dimension for screenshot resizing (0 = no limit). | |
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
Parameters on every platform
| Parameter | Type | Default | Description |
|---|---|---|---|
value | any | New value for key. JSON type depends on the key. |
check_permissions#Effect: mutating, idempotent. Platforms: macOS, Linux, Windows.
Report TCC permission status for Accessibility and Screen Recording. By default also raises the system permission dialogs for any missing grants: Apple's request APIs are no-ops when the grant is already active, so this is safe to call repeatedly. Pass {"prompt": false} for a purely read-only status check.
Returns: accessibility + screen_recording (booleans from the TCC preflight APIs), screen_recording_capturable (a live ScreenCaptureKit probe when prompt is true; null on read-only calls), direct_capture_status (ready, unavailable, timed_out, probe_failed, blocked_by_screen_recording, or not_checked), direct_capture_error (a structured timeout/probe failure when applicable), direct_capture_verification (validated source, UTC time, and bundle identity from an explicit grant probe), and source (which TCC identity the booleans reflect: the CuaDriver daemon vs the launching terminal/IDE). macOS attributes grants to the responsible process, so a standalone call from a terminal reports the terminal's grants, not the driver's. The prompt-capable ScreenCaptureKit probe never runs when prompt is false. Pass probe_direct_capture:false with prompt:true to register/request only the two required TCC grants before separately explaining Tahoe's direct-capture consent.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
probe_direct_capture | boolean | When prompting and Screen Recording is granted, also run the live ScreenCaptureKit probe that may raise Tahoe's direct-capture consent. Default true. Set false for a staged Accessibility/Screen Recording request. | |
prompt | boolean | false | Raise the system permission prompts for missing grants. Default false; only a trusted host setup route may set true. |
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
health_report#Effect: read-only, idempotent. Platforms: macOS, Linux, Windows.
Single-call end-to-end driver diagnostics. Designed to let downstream consumers ship one stable call instead of stitching together check_permissions, doctor, version, bundle attribution, and platform capability status. On macOS, prompt-capable direct capture is deliberately skipped; use cua-driver permissions grant to verify it explicitly. cua-driver owns the health model; consumers stay thin.
Input: all optional:
{
"include": ["<check_name>", ...], // run only these
"skip": ["<check_name>", ...] // skip these
}
If both are given, include wins.
Canonical check names: macOS : binary_version, platform_supported, session_active, bundle_identity, tcc_accessibility, tcc_screen_recording, ax_capability, screen_capture_capability Windows: binary_version, platform_supported, session_active, ax_capability (via UIA), screen_capture_capability (via DXGI) Linux : binary_version, platform_supported, session_active, ax_capability (via AT-SPI), screen_capture_capability (via X11)
Output: stable contract, schema_version="1": { "schema_version": "1", "platform": "darwin" | "win32" | "linux", "driver_version": "<semver>", "overall": "ok" | "degraded" | "failed", "checks": [ { "name": "<one of the canonical names above>", "status": "pass" | "fail" | "skip", "message": "<one-line summary, always present>", "hint": "<remediation step, present when status=fail>", "data": { /* check-specific structured fields */ } }, ... ] }
overall rules:
ok : every non-skipped check passesdegraded: at least one non-core check fails (binary is still usable)failed : any core check fails (binary_version, platform_supported, session_active)Stability: schema_version="1" is the contract. Future breaking changes will be "2". Adding new check names under the same schema_version is non-breaking; consumers must tolerate unknown check names.
macOS parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
Parameters on every platform
| Parameter | Type | Default | Description |
|---|---|---|---|
include | string[] | Only run these checks (canonical names). Wins over skip. | |
skip | string[] | Skip these checks (canonical names). Ignored when include is set. |
check_for_update#Effect: read-only, idempotent. Platforms: macOS, Linux, Windows.
Check the saved stable/nightly Cua Driver channel for a release on GitHub. Returns current and selected channels, current and latest versions, an update_available boolean, the install one-liner, and the release notes URL. Read-only: never installs. Pacman-owned Linux executables return package-manager guidance without checking GitHub. Mirror of cua-driver check-update --json.
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
install_extension#Effect: destructive. Platforms: macOS, Linux, Windows.
Preview or install one Driver-managed optional extension. The first call without confirm returns the exact signed artifact, destination, license, source, and trust plan without mutation. Re-call with confirm=true to perform that exact verified installation.
macOS parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
session | string | For multi-call work, prefer a short public session label and repeat it on every call that accepts it. Omit it to use the authenticated transport's implicit lifecycle session. |
Parameters on every platform
| Parameter | Type | Default | Description |
|---|---|---|---|
confirm | boolean | Install the previewed extension. Omit or false for a read-only plan. | |
name | "perception" | required | Extension to preview or install. Only perception (the local visual-region parser used by parse_visual_regions) is available. |
Example arguments
{"name":"perception"}