OS X - Enable access for assistive devices via the command line

03-09-2013 | Remy van Elst

Table of Contents

This command enables access for assistive decives on Apple OS X machines via the command line, or via Apple Remote Desktop. This is needed for software like SpectacleApp or Sizeup.


In Mavericks Apple changed the permissions so that every app has to be given permission individually. Therefore we need to do a bit more work. We first need to get the applications Bundle Identifier:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/<Appname.app>/Contents/Info.plist

For SpectacleApp:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Spectacle.app/Contents/Info.plist

Then we use the Bundle ID in the following command to modify the permission database:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceAccessibility','<Bundle-ID>',0,1,1,NULL);" 

For SpectacleApp:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceAccessibility','com.divisiblebyzero.Spectacle',0,1,1,NULL);"

To remove an application from the list we use the following command, with the correct bundle ID:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "delete from access where client='<Bundle ID>';"

Mountain Lion and Lion

On OS X Mountain Lion (10.8) or Lion (10.7) simply run this command as root:

touch /private/var/db/.AccessibilityAPIEnabled

Tags: apple  apple-remote-desktop  ard  assistive  command-line  mac  mavericks  os-x  snippets  spectacle