Clear and disable recent items in macOS dock and applications
Beyond best before date...This article is more than 9 years old. It is no longer maintained but remains available for people visiting this page from external links.
Mac OS X Lion lists recent items with each application in the Dock (accessible via right-click) and in the Application View of Mission Control. To remove those and disable future additions, the trusty
defaults write approach may help with most — but not all — applications.
To clear the list of recent files, you need to find the application's bundle identifier. See the next section on how to accomplish this.
Assuming you want to erase the list of recent items in VLC, which has the application bundle identifier
org.videolan.vlc, you need to issue the following command in Terminal:
1defaults delete org.videolan.vlc.LSSharedFileList RecentDocuments
To disable listing recent items for VLC in the future, run the following commands in Terminal:
1defaults write org.videolan.vlc NSRecentDocumentsLimit 0 2defaults write org.videolan.vlc.LSSharedFileList RecentDocuments -dict-add MaxAmount 0
The same procedure for QuickTime Player X (
1defaults delete com.apple.QuickTimePlayerX.LSSharedFileList RecentDocuments 2defaults write com.apple.QuickTimePlayerX NSRecentDocumentsLimit 0 3defaults write com.apple.QuickTimePlayerX.LSSharedFileList RecentDocuments -dict-add MaxAmount 0
After issuing any of the above commands, you need to restart the Dock by issuing
In order to reverse the above modification, you need to again obtain the application's bundle identifier, then run a command in Terminal. As an example, if you should desire to keep the list of recent items in VLC (
org.videolan.vlc), run the following commands in Terminal:
defaults delete org.videolan.vlc NSRecentDocumentsLimit defaults delete org.videolan.vlc.LSSharedFileList RecentDocuments
For QuickTime Player X (
com.apple.QuickTimePlayerX), it would be:
1defaults delete com.apple.QuickTimePlayerX NSRecentDocumentsLimit 2defaults delete com.apple.QuickTimePlayerX.LSSharedFileList RecentDocuments
For these commands to take effect, you need to restart the Dock, i.e. issue
In order to figure out the application's bundle identifier, you can either use the Terminal or the Activity Monitor.
If you'd like to go the Terminal route:
- Open Terminal (use Spotlight if you don't have it in your Dock)
defaults readplus a single space character
- Drag the app into the window to insert its path. If the app is in your Dock, you can press and hold the ⌘ (command) key and then grab the app's icon from the Dock and drop it into the Terminal window. Alternatively, you can also grab it from a Finder window and drop it in the Terminal window
- Now hit backspace once to erase the space that was added automatically by the drag-and-drop process
/Contents/Info CFBundleIdentifier(without any preceding space)
- Finally, hit ⏎ (the return key) and you should obtain the bundle identifier
For example with Xcode, you would end up with the following command line in Termainal before you hit ⏎ :
1defaults read /Applications/Xcode.app/Contents/Info CFBundleIdentifier
Note that you must not append the suffix
.plist to the path above, as this would irritate the
If this sounds too complicated, you can alternatively open Activity Monitor, click the application in the list of processes and then click the "Sample Process" button. Then make sure the "Display:" popup is set to "Sample Text".
Output for VLC:
1 Sampling process 66975 for 3 seconds with 1 millisecond of run time between samples 2 Sampling completed, processing symbols... 3 Analysis of sampling VLC (pid 66975) every 1 millisecond 4 Process: VLC  5 Path: /Applications/VLC.app/Contents/MacOS/VLC 6 Load Address: 0x100000000 7 Identifier: org.videolan.vlc 8 Version: 1.1.11 (1.1.11) 9 Code Type: X86-64 (Native) 10 Parent Process: launchd  11 [...]
Now look for the line that begins with
Identifier:, which gives you the bundle identifier in plain text. In the above exammple, we find that VLC's application bundle identifier is