Skip to content

todddube/reviewAppPerms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ReviewAppPerms

A native macOS utility for inspecting, auditing, and revoking app privacy permissions stored in the macOS TCC (Transparency, Consent & Control) databases.

macOS Swift License


What it does

macOS tracks every privacy decision — Camera, Microphone, Contacts, Full Disk Access, Screen Recording, and more — in a pair of SQLite databases. ReviewAppPerms reads both databases, resolves bundle IDs to human-readable app names, and surfaces everything in a searchable, filterable table. You can revoke any permission with one click and jump directly to the relevant System Settings pane.

Screenshot placeholder


Features

  • Full inventory — reads both the user-level and system-level TCC databases
  • Startup permissions check — on launch a screen confirms the app has the access it needs (Full Disk Access) and lets you grant it without leaving the app
  • Rich detail panel — two-column layout showing status badge, bundle ID, app path, auth reason, last-modified date, source database, and the exact tccutil command to reproduce the revoke manually
  • Live filtering — filter by app, service, or status; type "missing" to surface orphaned entries for apps that no longer exist on disk
  • One-click revoke — calls tccutil reset <service> <bundleID> and reloads automatically
  • Delete orphaned — batch-remove all TCC entries for uninstalled apps
  • Open System Settings — jumps to the exact Privacy pane for the selected service
  • Auto-reload on permission grant — if you grant Full Disk Access from the startup screen and return to the app, the permission list reloads automatically

Requirements

  • macOS 13 Ventura or later
  • Xcode 15+ or Swift 5.9 command-line tools
  • Full Disk Access granted to the app (prompted on first launch)

Build & Run

git clone https://github.com/todddube/reviewAppPerms.git
cd reviewAppPerms/ReviewAppPermsSwift
swift run

Or open ReviewAppPermsSwift as a package in Xcode and press Run.


How It Works

Database Path
User ~/Library/Application Support/com.apple.TCC/TCC.db
System /Library/Application Support/com.apple.TCC/TCC.db

Each database is copied to a temp file before reading to avoid locking the live DB. Bundle IDs are resolved to app names and paths via NSWorkspace and NSRunningApplication. Revoking calls:

tccutil reset <ServiceName> <BundleID>

Covered Services

Calendar · Reminders · Contacts · Photos · Camera · Microphone · Screen Recording · Accessibility · Full Disk Access · Bluetooth · Input Monitoring · Automation · Developer Tools · Focus · Media & Apple Music · Location Services · Local Network · Siri · Speech Recognition · App Tracking · Home · Downloads / Desktop / Documents Folders · Removable Volumes · iCloud


Project Structure

ReviewAppPermsSwift/
├── Sources/
│   ├── ReviewAppPerms/          # App target (SwiftUI entry point, views)
│   │   ├── ReviewAppPermsApp.swift
│   │   ├── AppInfo.swift
│   │   └── Views/
│   │       ├── StartupView.swift
│   │       ├── ContentView.swift
│   │       ├── DetailPanel.swift
│   │       ├── PermissionsTableView.swift
│   │       └── ConfirmationSheet.swift
│   └── ReviewAppPermsKit/       # Library target (models, services, view model)
│       ├── Models/
│       ├── Services/
│       └── ViewModels/
└── Tests/

Contributing

PRs and issues are welcome. This project is intentionally kept small and dependency-free — the only system library used is SQLite3 (linked directly, no Swift package dependencies).


License

MIT — free to use, modify, and distribute. See LICENSE for details.

About

Native macOS utility to inspect, audit, and revoke app privacy permissions (TCC) — Camera, Microphone, Full Disk Access, and more

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors