Apple has a utility in /usr/bin
named tccutil
, but it only supports one command, which is to reset
the entire database. I wanted a command-line utility that would be able to add, remove, list, and take other actions.
Due to SIP, this utility will no longer work to modify the database (see #18)
-
tccutil.py
can be installed without any additional software. -
It can then be run just like any other command line tool. I also wanted the syntax to be easy to remember without having to look it up in the help menu.
-
There are other solutions out there, but there were some things I did not like about them:
-
Privacy Manager Services has other dependencies that need to be installed.
-
tccmanager.py uses a
.plist
to add items, which is inconvenient.
-
- Install using Homebrew, then run with
tccutil
:
brew install tccutil
Depending how you have your $PATH
variable setup, you can simply type tccutil
(instead of the full path) and it will run this utility instead of Apple's.
-
Download from here and
-
copy manually to
/usr/local/bin
, then run withtccutil.py
, or -
run from any directory with
python /path/to/tccutil.py
.
-
This utility needs super-user priveleges for most operations. It is important that you either run this as root or use sudo
, otherwise it won't work and you will end up with “permission denied” errors.
usage: tccutil.py [-h] [--list] [--insert INSERT] [-v] [-r REMOVE] [-e ENABLE]
[-d DISABLE] [--version]
[ACTION]
Modify Accessibility Preferences
positional arguments:
ACTION Reset using Apple's /usr/bin/tccutil
optional arguments:
-h, --help show this help message and exit
--list, -l List all entries in the accessibility database.
--insert INSERT, -i INSERT
Adds the given bundle ID or path to the accessibility
database.
-v, --verbose Outputs additional info for some commands.
-r REMOVE, --remove REMOVE
Removes the given Bundle ID or Path from the
Accessibility Database.
-e ENABLE, --enable ENABLE
Enables Accessibility Access for the given Bundle ID
or Path.
-d DISABLE, --disable DISABLE
Disables Accessibility Access for the given Bundle ID
or Path.
--version Show the version of this script
List existing Entries in the Accessibility Database
sudo tccutil.py --list
Add /usr/bin/osascript
to the Accessibility Database (using UNIX-Style Option)
sudo tccutil.py -i /usr/bin/osascript
Add Script Editor to the Accessibility Database (using Long Option)
sudo tccutil.py --insert com.apple.ScriptEditor2
Remove Terminal from the Accessibility Database
sudo tccutil.py --remove com.apple.Terminal
Enable Terminal (must already exist in the Database)
sudo tccutil.py --enable com.apple.Terminal
Disable /usr/bin/osascript
(must already exist in the Database)
sudo tccutil.py -d /usr/bin/osascript
- List existing Entries in Accessibility Database
- Insert new Item into Accessibility Database (even Command-Line Utilities)
- Remove an existing Item from the Accessibility Database
- Enable or disable an Entry
- Modify other parts of the
TCC.db
.