OpenAdapt requires several system permissions on macOS to capture user interactions and replay actions. This guide covers the required permissions and how to enable them.
Compatibility: macOS 13 Ventura, macOS 14 Sonoma, and macOS 15 Sequoia. Earlier versions may have different menu layouts.
OpenAdapt needs three types of permissions:
| Permission | Purpose | Required For |
|---|---|---|
| Input Monitoring | Capture keyboard and mouse input | Recording user actions |
| Screen Recording | Capture screenshots | Recording screen state |
| Accessibility | Control mouse and keyboard | Replaying actions |
!!! warning “Important” While macOS will prompt you for Input Monitoring and Screen Recording permissions on first run, it will not prompt for Accessibility permissions. If Accessibility permission is not granted, action replay will fail silently.
Grant permissions to the application you use to run OpenAdapt:
!!! tip If permissions don’t seem to work, try granting them to both your terminal application and the Python executable.
Input monitoring allows OpenAdapt to capture keyboard and mouse events during recording.
Screen recording allows OpenAdapt to capture screenshots during recording.
Accessibility permissions allow OpenAdapt to control the mouse and keyboard during replay.
!!! note This permission is required for replaying recorded actions. Without it, replay will fail silently.
You can quickly open the Privacy & Security settings from the command line:
# Open Privacy & Security settings
open "x-apple.systempreferences:com.apple.preference.security?Privacy"
# Open Input Monitoring directly
open "x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"
# Open Screen Recording directly
open "x-apple.systempreferences:com.apple.preference.security?Privacy_ScreenCapture"
# Open Accessibility directly
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
If you don’t see a permission prompt when running OpenAdapt:
If recording works but replay does not:
If you need to grant permissions to Python directly:
# Find which Python is being used
which python
# Or for Python 3 specifically
which python3
# If using a virtual environment, it will show the venv path
# Grant permissions to that specific Python executable
When using OpenAdapt modular packages (v1.0.0+):
# Recording (requires Input Monitoring + Screen Recording)
openadapt capture start --name "my-task"
# Replaying (requires Accessibility)
openadapt replay --strategy visual
The CLI commands are run from your terminal, so ensure your terminal application has the necessary permissions.
On Windows, you may need to run your terminal as Administrator for input capture to work correctly:
On Linux, you may need to add your user to the input group:
sudo usermod -a -G input $USER
# Log out and back in for changes to take effect