macOS 15 (Sequoia) introduced a new "security" feature which has frustrated many people, and insulted power users who prefer to have full control over their systems. The effect is nagging popups like the one below when apps that you have already granted permission to try to capture your screen.
Hey Apple, you forgot the “Always Allow” option!
This script operates on the ~/Library/Group Containers/group.com.apple.replayd/ScreenCaptureApprovals.plist
and sets the nag dates far in the future to avoid the popups from appearing.
macOS 15.1 introduced a new method (additional reference here) for suppressing these alerts across the board. This leverages a configuration profile which must be provisioned by an MDM server (e.g Jamf, Addigy, Mosyle etc). Apple unfortunately prohibits self-installing configuration profiles for certain TCC settings, ScreenCapture being one of them.
But don't despair, for self-managed Macs, the script also supports the standard method of individually setting MRU dates for each app (including macOS 15.1's new multi-keyed dict approach).
macOS 15.1 made a change to replayd whereby upon each invocation of an app that requests ScreenCapture permission, the timestamp in the plist is overwritten with the current date/time. The net effect is that if you use an app once, and then don't use it again for >30 days, you will be nagged again, even if you had previously disabled the nag.
v1.3.0 of this script added a workaround for this: an option to install a LaunchAgent which runs every 24h and keeps the timestamps updated. This ensures that nags are kept hidden even as apps are used or if your system clock abruptly changes.
- Download the latest release.
- Open a Terminal and type
cd ~/Downloads
to navigate to the directory which should contain the file you just downloaded. - Remove the quarantine flag which probably exists on the file:
xattr -d com.apple.quarantine screencapture-nag-remover.sh
- Make the script executable:
chmod a+x screencapture-nag-remover.sh
- Place that
screencapture-nag-remover.sh
file somewhere in your$PATH
(I suggest/usr/local/bin
if you're unsure) - You are now ready to run the program!
Open a Terminal and run:
screencapture-nag-remover.sh
Full Disk Access is required so the protected plist file can be accessed. The program will check to ensure FDA has been granted. If it hasn't, the relevant System Settings panel will be opened.
With no arguments, it will iterate over any apps which have requested screencapture permissions and set the nag date for each to 100 years in the future. That should prevent you from seeing the nag again.
N.B. If life expectancy increases dramatically over the next few years, you might need to run the app again in a decade or two. 😉
There are also a few commandline arguments:
-h
shows the helptext-r
will reveal the .plist responsible for these nags in Finder-p
will print the current values without making any changes-a <path|bundle_id>
creates a new entry in the plist for an app that you specify--reset
initialize an empty ScreenCaptureApprovals.plist--generate_profile
generate configuration profile for use with your MDM server--profiles
opens Device Management in System Settings (to manage MDM profiles)--install
installs a LaunchAgent (runs once per day) which ensures the nag dates are kept updated--uninstall
removes the LaunchAgent
macOS 15.0 (by specifying path)
screencapture-nag-remover.sh -a "/Applications/CleanShot X.app/Contents/MacOS/CleanShot X"
macOS 15.1 (using Bundle ID)
screencapture-nag-remover.sh -a cc.ffitch.shottr
If you encounter any problems, please file an issue. And in case anyone @Apple is reading this, please get rid of this bothersome "feature"...