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.xFor 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 serveThen grant both permissions:
cua-driver permissions grantThat 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_permissionsmacOS 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
- Keep Cua Driver running: configure autostart so the daemon comes back after reboots.
- Connect Cua Driver to an MCP client: register it with Claude Code, Cursor, Codex, and other clients.
- Update Cua Driver: check for new releases and apply them.