Cua Docs

Install Cua Driver

Install Cua Driver on macOS, Windows, or Linux with a one-line script.

Cua Driver supports macOS, Windows, and Linux. Use the same one-line installer on each platform; the script selects the right install path for the host and does not require administrator access.

Requirements: macOS 14 (Sonoma) or later on Apple Silicon or Intel.

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/trycua/cua/main/libs/cua-driver/scripts/install.sh)"

The installer places CuaDriver.app in /Applications and creates the ~/.local/bin/cua-driver symlink. The app bundle uses the com.trycua.driver signing identity, so macOS TCC permissions for Accessibility and Screen Recording remain attached across upgrades.

If ~/.local/bin is missing from your PATH, the installer detects your shell (zsh, bash, or fish) and adds the matching export PATH=… line to your rc file. Reload the shell with source ~/.zshrc or open a new terminal window.

Verify the install

cua-driver --version
# cua-driver 0.5.x

For a full environment and install report:

cua-driver doctor
# [ok  ] binary: cua-driver 0.5.x (aarch64-macos)
# [ok  ] install dir: /Users/you/.local/bin/cua-driver
# [ok  ] home dir: /Users/you/.cua-driver (3 release dirs cached)
# ...

doctor checks the version, install layout, and telemetry setup on every platform. It also runs platform probes for TCC on macOS, the interactive session on Windows, and AT-SPI plus the display server on Linux.

Grant TCC permissions (macOS only)

Start the daemon first so macOS attributes the TCC request to CuaDriver.app instead of your terminal:

open -n -g -a CuaDriver --args serve

Then grant both permissions:

cua-driver permissions grant

That command launches CuaDriver through LaunchServices and waits while you approve Accessibility and Screen Recording in the macOS dialogs.

You can also trigger the prompts yourself:

cua-driver check_permissions

macOS opens the Accessibility and Screen Recording prompts. Grant both permissions, then run the check again:

cua-driver check_permissions
# ✅ Accessibility: granted.
# ✅ Screen Recording: granted.

cua-driver permissions status reads the driver's actual grant state through the daemon. When no daemon is running, it reports ❓ unknown instead of reporting your terminal's grants, and it does not claim granted unless the driver has that permission.

Next steps