Repository navigation
Releases: keithadler/permsmac
Release list
Permissions for Mac 1.1.3
Download Permissions-for-Mac-1.1.3.dmg (macOS 14 or later, Apple Silicon and Intel)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks.
In 1.1.3
Built and tested on macOS 27.
macOS 27 moved each account's permissions database out of ~/Library/Application Support/com.apple.TCC into a protected system container, so 1.1.2 found no personal database on 27 and kept asking for Full Disk Access. 1.1.3 asks the account's own tccd which file it has open and reads that one; macOS 14 to 26 keep using the old folder. permsmac status now prints both database paths.
Run as root on macOS 27, the fleet read finds each account's database through that account's tccd, so accounts that are not logged in are left out.
The permissions macOS 27's System Settings shows that had no name here now have one: Remote Desktop, Paste from Other Apps, and Personal Voice. Passkeys Access says what it really grants and opens its pane. Photos "Add Photos Only" grants show as limited instead of unknown.
SHA-256 of the DMG: 3cb910052a52c45b72f7f112d7883f93ad0b98ede695daebf44f61d27174f66e
Permissions for Mac 1.1.2
Download Permissions-for-Mac-1.1.2.dmg (macOS 14 or later, Apple Silicon and Intel)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks.
In 1.1.2
"More from the Same Maker" in the Help menu opens the family page, https://keithadler.github.io, which lists the four apps. Help and the README gained the same section. Nothing else changed.
SHA-256: 50935fb2b8a7dc3cc760d2394f3ae2f9c13cc6cb7443da0038a292b7c652a311
Permissions for Mac 1.1.1
Download Permissions-for-Mac-1.1.1.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
Fixed in 1.1.1
A permission stored by path, where the path sits inside a folder the current user cannot look into (a root-only management agent under /opt, for example), was shown as "not installed". Out of sight is not gone; such entries are no longer called leftovers.
SHA-256 of the DMG: b7a13def6edecf3aca504869b95ed454633211a8c425d046a1cf7d20db0dd1ba
Permissions for Mac 1.1.0
Download Permissions-for-Mac-1.1.0.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
New in 1.1.0: for fleets
No MDM shows which apps users have granted Screen Recording, Accessibility, Full Disk Access or the microphone. The command line now does, and it was written to run from one.
- Run as root (the way an MDM agent runs),
list,changesandauditread every account under /Users and tag each grant with its user.--user <name>limits it. - Every JSON document carries host, user, when and version, so outputs from a whole fleet merge into one table.
permsmac audit policy.jsonchecks the Mac against a written policy: allow-lists per permission with globs likecom.apple.*, an optional allow-list for things that start on their own, and a check for leftovers from removed apps. Exit 0 compliant, 1 violations, 2 could not check.permsmac audit --exampleprints a starter policy.- A Jamf Pro extension attribute and a JumpCloud command are in docs/fleet.
SHA-256 of the DMG: 0367580eb488bce9cff9f4d6c08a4f54f65d1849eaa4e4e0731d59bc258add5e
Permissions for Mac 1.0.6
Download Permissions-for-Mac-1.0.6.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
In 1.0.6
An entry a device-management profile created cannot be removed in System Settings on its own; it goes away with the profile, under General › Device Management. Such leftovers now show a "Device Management…" button, and Help explains what to do.
SHA-256 of the DMG: 16f1d9dedb3702f828b5af9dd9b8478027f348afcdeef9d8670d2e58579eb9e1
Permissions for Mac 1.0.5
Download Permissions-for-Mac-1.0.5.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
In 1.0.5
Some leftover entries are stored by path rather than by bundle identifier, and Apple's tccutil cannot address those at all. They now show a "Remove in System Settings…" button on the row, which opens the right pane; the − button there removes them. An app's main executable is no longer repeated in its name.
SHA-256 of the DMG: 1965ae75a86975c1db172ac7ad7f312e51acd94367bd1d0139ff909c1242f6eb
Permissions for Mac 1.0.4
Download Permissions-for-Mac-1.0.4.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
Fixed in 1.0.4
Clean Up actually clears now. Apple's tccutil refuses any bundle identifier that is not on disk (error -10814), which is every removed app, so every entry failed. For each app, Clean Up now creates an empty placeholder bundle with that identifier inside its own Application Support folder, registers it for the length of one tccutil reset All call, then unregisters and deletes it. The placeholder has no code of its own and never leaves that folder. Tests cover its contents, the order of operations, and removal when something fails.
SHA-256 of the DMG: 5c590cbb87b6f6c8018e53304c37b03b1cd5dca01d5329277f29c97b5922b294
Permissions for Mac 1.0.3
Download Permissions-for-Mac-1.0.3.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
Fixed in 1.0.3
Clean Up with many leftovers froze the window and gave no sign of progress. It now makes one call to Apple's tccutil per app (reset All) instead of one per entry, runs in the background with a progress count, shows a results list with any error tccutil reported, and refreshes the overview when the sheet closes.
SHA-256 of the DMG: ed0bb1247cd60d1637c88eadd241c3110b950b78bdb68c791abdb8df9227105c
Permissions for Mac 1.0.2
Download Permissions-for-Mac-1.0.2.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, right-click the app, choose Open, then Open again. Then grant it Full Disk Access when it asks; it reads that file and never writes to it.
Fixed in 1.0.2
A change made a moment ago, such as a Clean Up or a switch flipped in System Settings, did not show until macOS folded its write-ahead log back into the database. The app now reads from a private copy of the database and its log, so what it shows is current. Apple's files are still never written to.
1.0.1 added Clean Up for permissions left behind by apps you removed, using Apple's own tccutil; see that release for details.
SHA-256 of the DMG: 2e413b63839f721716e4ab5142e1108c793f95ae49e3febd998d8d5a78dcbcdb
Permissions for Mac 1.0.1
Download Permissions-for-Mac-1.0.1.dmg (macOS 14 or later, Apple Silicon and Intel, 1.4 MB)
Open the DMG, drag the app to Applications, open it. The first time, macOS says the app is from an unidentified developer: right-click the app, choose Open, then Open again. That is once. Then grant it Full Disk Access when it asks; that is the one permission it needs, and it opens the file read-only.
New in 1.0.1: Clean Up
Apps you have removed often leave their permissions behind. The Overview now has Clean Up…: it shows every leftover entry and, when you confirm, clears them one at a time with Apple's own tccutil reset, the same thing the − button in System Settings does. Entries for apps that are still installed, entries stored by path, and Apple's own are never touched. If one turns out to be a helper of an app you still use, that app simply asks again.
From the command line: permsmac orphans --commands prints the lines to run yourself; permsmac orphans --clean runs them.
The promise is now worded exactly: it never changes a permission for an app you have.
Also in this release
Everything from 1.0.0: every permission grouped by what it lets an app do, in plain English; what changed since yesterday, last week or last month; a notification when an app gains a permission that can see or control everything; launch agents, daemons and login helpers; one click to the right System Settings pane; a command line with JSON output.
SHA-256 of the DMG: 1e435c4d86056d49dd6e77a432bd59b13b4a0547e69b65ad294ed42333a7ad61