Skip to main content

Raymii.org Raymii.org Logo

Quis custodiet ipsos custodes?
Home | About | All pages | Cluster Status | RSS Feed

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

Published: 03-09-2013 | Author: Remy van Elst | Text only version of this article


❗ This post is over ten years old. It may no longer be up to date. Opinions may have changed.

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.

Recently I removed all Google Ads from this site due to their invasive tracking, as well as Google Analytics. Please, if you found this content useful, consider a small donation using any of the options below:

I'm developing an open source monitoring app called Leaf Node Monitoring, for windows, linux & android. Go check it out!

Consider sponsoring me on Github. It means the world to me if you show your appreciation and you'll help pay the server costs.

You can also sponsor me by getting a Digital Ocean VPS. With this referral link you'll get $100 credit for 60 days.

Mavericks

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
com.apple.Safari

For SpectacleApp:

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

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