tccutil
June 20, 2025 ยท View on GitHub
A macOS TCC permissions manager
๐ Overview
โ Tested and verified on macOS 15.5 (Sequoia) plus other macOS versions
โ ๏ธ Requires SIP to be (at least partially) disabled
๐ง Supports all major TCC permission types
๐จ Important Notice
โ ๏ธ WARNING: This tool directly modifies the TCC.db file. Use at your own risk.
๐ฏ Supported Permissions
| Permission | Flag | Description |
|---|---|---|
| ๐ Contacts | --contacts | Access to Contacts app data |
| ๐ Calendars | --calendars | Access to Calendar app data |
| โ Reminders | --reminders | Access to Reminders app data |
| ๐ธ Photos | --photos | Access to Photos library |
| ๐น Camera | --camera | Camera hardware access |
| ๐ค Microphone | --microphone | Microphone hardware access |
| ๐ Location | --location | Location Services access |
| ๐ฅ๏ธ Screen Recording | --screen-recording | Screen capture permissions |
| โฟ Accessibility | --accessibility | Accessibility API access |
| ๐พ Full Disk Access | --full-disk-access | Complete file system access |
| โจ๏ธ Input Monitoring | --input-monitoring | Keystroke and input monitoring |
| ๐ถ Bluetooth | --bluetooth | Bluetooth hardware access |
| ๐ Local Network | --local-network | Local network access |
| ๐ต Media Library | --media-library | Apple Music and media access |
| ๐ฃ๏ธ Speech Recognition | --speech-recognition | Speech recognition services |
| ๐ฅ๏ธ Desktop Folder | --desktop-folder | Desktop folder access |
| ๐ Documents Folder | --documents-folder | Documents folder access |
| ๐ฅ Downloads Folder | --downloads-folder | Downloads folder access |
๐ ๏ธ Usage
Basic Syntax
sudo python3 tccutil.py [ACTION] [APP_IDENTIFIER] [PERMISSION]
Actions
-e, --enable- Grant permission to the app-d, --disable- Deny permission to the app-r, --remove- Remove permission record entirely
App Identification
-id BUNDLEID- Specify app by bundle ID (e.g.,com.apple.Terminal)-p APPPATH- Specify app by full path-n APPNAME- Specify app by name (searches in/Applications/)
๐ Example Commands
Enable Permissions
# Grant Terminal full disk access
sudo python3 tccutil.py -e --full-disk-access -n Terminal
# Allow VS Code to record screen
sudo python3 tccutil.py -e --screen-recording -id com.microsoft.VSCode
# Grant camera access to Zoom
sudo python3 tccutil.py -e --camera -n zoom.us
# Enable microphone for Discord
sudo python3 tccutil.py -e --microphone -id com.hnc.Discord
Disable Permissions
# Revoke location access from an app
sudo python3 tccutil.py -d --location -n "Some App"
# Disable contacts access
sudo python3 tccutil.py -d --contacts -id com.example.app
Remove Permission Records
# Completely remove accessibility permission record
sudo python3 tccutil.py -r --accessibility -n "My App"
# Remove all traces of input monitoring permission
sudo python3 tccutil.py -r --input-monitoring -id com.example.keylogger
Multiple Permissions
# Grant multiple permissions to an app
sudo python3 tccutil.py -e --camera --microphone --screen-recording -n "OBS Studio"
๐ง Installation & Setup
Prerequisites
-
Disable SIP (System Integrity Protection):
# Boot into Recovery Mode (โ+R during startup) # Open Terminal and run: csrutil disable # Reboot normally -
Python 3.6+ (usually pre-installed on macOS)
Quick Setup
- Clone or download this repository
- Make executable:
chmod +x tccutil.py
Add to PATH (Optional)
To use tccutil from anywhere:
# For zsh (macOS 10.15+)
echo 'alias tccutil="sudo python3 /path/to/tccutil.py"' >> ~/.zshrc
source ~/.zshrc
# For bash
echo 'alias tccutil="sudo python3 /path/to/tccutil.py"' >> ~/.bash_profile
source ~/.bash_profile
Then use it like:
tccutil -e --camera -n "My App"
๐ Notes
If you don't want to disable SIP completely for any reason. The only protection that truly needs to be off is the filesystem protection.
The command that you'll need to run in recovery mode if you want this is:
csrutil enable --without fs