unrecent removes files from the macOS "Recents" folder — automatically every 5 minutes, or instantly via right-click — without deleting a single file. It is a free, open-source privacy tool for anyone who shares their screen, their office, or their Mac: what you opened is nobody's business.
Apple gives you no way to remove an individual file from Finder's Recents. There is no "Remove from Recents" right-click option, no setting, no official tool. unrecent adds exactly that — plus a background job that keeps the whole list empty.
- ⏱️ Automatic: a lightweight background job empties Recents every 5 minutes
- 🖱️ On demand: right-click any file → "Remove from Recents"
- 📁 Non-destructive: your files stay exactly where they are — only the "recently used" trace disappears
- ☁️ iCloud-safe: files synced via iCloud Drive are never evicted or re-uploaded
- 🔍 No cloud, no telemetry: ~300 lines of auditable zsh, zero network access, MIT license
git clone https://github.com/shufflethis/unrecent.git
cd unrecent && ./install.sh- Why the Recents folder is a privacy problem
- Who needs this — 10 real-world scenarios
- How unrecent works (the technical part)
- Why the old tricks stopped working
- unrecent vs. cleaner apps vs. manual methods
- Installation
- Configuration
- Limitations — what unrecent does NOT do
- Uninstall
- FAQ
The "Recents" folder in the macOS Finder is not a folder. It is a live Spotlight search that lists every document you have recently opened — sorted by date, with thumbnails, front and center in every new Finder window on a default macOS installation.
That makes it a perfect activity log of your life. Anyone who glances at your screen for three seconds knows what you worked on, what you looked at, and roughly when. macOS keeps this log with no expiration date, no incognito mode, and no per-file delete button.
You can hide the folder from the sidebar — but that only hides the view. The data stays, Spotlight keeps collecting, and the list is one keyboard shortcut (⌥⌘L in some configurations, or a stray click) away from being on a conference-room projector.
Privacy means controlling what your computer remembers about you. unrecent gives you that control back for the one place macOS forgot to offer it.
1. The screen-share flinch. You are in a video call. Someone says "can you quickly share your screen?" — and you feel that small jolt in your stomach, because you cannot remember what is sitting in Recents. A contract? Last night's photos? With unrecent running, that flinch disappears: the list is empty, and it stays empty.
2. Family photos during work hours. You looked at pictures of your kids during lunch break. Two hours later you open Finder in a team meeting to show a project file — and the thumbnails of your family are the first thing on the wall-sized display. Nothing wrong happened. But your family is not a meeting topic, and now everyone has seen them.
3. Job applications while employed.
Few files are as radioactive as CV_2026_final.pdf in the Recents list of your current employer's office. Career moves are private until you decide otherwise. Recents does not know that; unrecent does.
4. Medical and therapy documents. Lab results, referral letters, an invoice from a therapist. You have every right to keep your health to yourself — including from colleagues who happen to stand behind you. These files should never advertise themselves in a file picker.
5. Presenting in classrooms and on stage. Teachers, lecturers, and conference speakers plug their Mac into a projector several times a week. Every Finder window is public. An empty Recents list is one less thing to think about before walking on stage — and stage fright has enough material already.
6. The borrowed Mac. "Can I quickly check something on your Mac?" Saying no feels paranoid; saying yes means someone else's hands on your machine with your entire recent life one click away. unrecent makes the yes easy.
7. Streamers and screen recorders. If you record tutorials, demos, or live streams, a single frame of an exposed Recents folder ends up permanently in the video — and on the internet. Blurring in post costs more than preventing in advance.
8. Surprises on the family Mac. Gift research, trip bookings, the divorce lawyer, the engagement ring. On a shared household Mac, Recents spoils surprises and outs private decisions before you are ready to talk about them.
9. Financial documents in the open-plan office. Salary statements, loan applications, a termination agreement. Money is one of the last taboos in offices — Recents does not care, and thumbnails make PDFs readable from a surprising distance.
10. Handing your Mac to IT or repair. Support staff are professionals, but they are also strangers with your unlocked machine. A clean Recents list is basic data hygiene, the same way you clear your desk before visitors come.
The common thread: you did nothing wrong, and you still don't want it displayed. That is the definition of privacy — and it should not require vigilance, memory, or luck. It should be automatic.
Finder's Recents is powered by a Spotlight query, essentially:
kMDItemLastUsedDate == "*" && kMDItemContentTypeTree == public.content
Every time you open a document, macOS stamps it with an extended attribute — com.apple.lastuseddate#PS — and mirrors that date into the Spotlight index as kMDItemLastUsedDate. The Recents list is simply every file carrying that date, newest first.
unrecent removes the date at both layers:
- Find candidates directly on disk with
find -xattrname 'com.apple.lastuseddate#PS'across your scan folders (Desktop, Downloads, Documents by default). No Spotlight query —mdfindresults are TCC-filtered for background processes and return almost nothing (in our tests: 1 result instead of 116). - Drop the index entry by moving each file briefly into a
.noindexstaging folder. Spotlight never indexes paths inside a folder whose name ends in.noindex— moving a file there deletes its index record. - Strip the xattr with
xattr -d com.apple.lastuseddate#PSwhile the file is staged, so the date cannot be re-imported. - Restore the file to its exact original path ~3 seconds later. It is re-indexed cleanly — without a last-used date — and vanishes from Recents.
A manifest file makes every staging round-trip crash-safe: if the process is ever interrupted, the next run restores all files to their original locations first.
Architecture details that matter:
- TCC broker: macOS privacy protection (TCC) refuses Desktop/Documents/Downloads access to bare scripts under
launchd. unrecent therefore runs inside a minimal AppleScript applet (UnrecentSweep.app) — you grant folder access once, to one app, and everything (the 5-minute sweep and the right-click action) routes through it. The Quick Action itself only writes file paths to a queue in/tmp(the one location TCC does not guard) and pokes the app — a classic privilege-broker pattern. - iCloud safety: if Desktop & Documents are synced to iCloud Drive, moving a file out of iCloud would evict and re-upload it — sync churn, version noise, conflict risk. unrecent detects the sync and stages those files inside iCloud Drive instead, so the round-trip is a pure rename: 0 bytes uploaded, 0 bytes downloaded.
- Work protection: files modified in the last 10 minutes are skipped, so the document you are actively editing is never touched. Package documents (
.key,.pages,.numbers,.rtfd) are handled as the directories they really are; files are never pulled out of bundles. - Concurrency lock ensures the periodic sweep and a right-click action never race each other.
Total footprint: three zsh scripts (~300 lines), one LaunchAgent, one Automator Quick Action. No daemon written in Electron, no kernel extension, no account, no network.
If you search this problem, nearly every guide — Apple Communities, MacRumors, countless blogs — tells you to delete the com.apple.lastuseddate#PS extended attribute and call it a day.
That advice is outdated. On current macOS (verified on macOS Tahoe 26), Spotlight retains kMDItemLastUsedDate in its index even after the xattr is deleted — and even after a forced mdimport -i reimport. The file stays in Recents indefinitely. Worse, the relationship is asymmetric: when a file is re-indexed, Spotlight happily re-reads the date from the xattr. So the xattr must be stripped and the index entry must be dropped, and only the .noindex round-trip reliably does the latter. unrecent is, to our knowledge, the first tool to automate this two-layer removal.
The other standard advice:
- "Right-click Recents → Remove from Sidebar" — hides the view, keeps the data. The folder is still reachable via Go → Recents, and the log keeps growing.
- "Add folders to Spotlight Privacy" — works, but disables all Spotlight search for those folders and announces itself to anyone who opens System Settings.
- "Set NSRecentDocumentsLimit to 0" — affects the Apple menu and app menus, not the Finder folder (different subsystem:
sharedfilelistdand.sfl4files vs. Spotlight). unrecent shipsclear-menu-recents.shfor that subsystem too.
| unrecent | CleanMyMac / MacKeeper & co. | Manual xattr trick | Hide sidebar entry | Spotlight Privacy list | |
|---|---|---|---|---|---|
| Removes single file via right-click | ✅ | ❌ | ❌ | ❌ | |
| Keeps Finder Recents empty automatically | ✅ every 5 min | ❌ (clears menu lists only) | ❌ | ❌ (hides, doesn't clear) | |
| Deletes/touches your files | never | never | never | never | |
| Works on macOS Tahoe 26 | ✅ verified | partially | ❌ index keeps the date | ✅ | ✅ |
| Spotlight search still works | ✅ fully | ✅ | ✅ | ✅ | ❌ disabled for those folders |
| iCloud-sync aware | ✅ rename-only staging | n/a | ❌ | n/a | n/a |
| Price | free, MIT | ~40–90 €/year subscription | free | free | free |
| Source code auditable | ✅ ~300 lines zsh | ❌ closed | — | — | — |
| Background footprint | 1 LaunchAgent, low-priority I/O | resident helper apps | — | — | — |
Cleaner apps are not competitors — they solve a different (and much smaller) part of the problem. They clear the menu recents lists, which macOS rebuilds within hours, and none of them touch the Spotlight layer that actually powers Finder's Recents folder. unrecent is purpose-built for exactly that layer.
Requirements: macOS with zsh (default since Catalina). Developed and verified on macOS Tahoe 26; the .noindex mechanism is a documented Spotlight behavior that exists in all modern macOS versions.
git clone https://github.com/shufflethis/unrecent.git
cd unrecent
./install.shThe installer sets up four things in under five seconds:
- Scripts →
~/.unrecent/bin/ UnrecentSweep.app→~/Applications/(built locally on your machine viaosacompile— nothing pre-compiled is shipped)- LaunchAgent
com.unrecent.sweep→ runs every 300 seconds - Finder Quick Action "Remove from Recents" → right-click menu
One-time permission step: on first run, macOS asks whether UnrecentSweep may access your Desktop, Documents, and Downloads folders. Click Allow. That is the entire setup. (This prompt is the TCC broker described above — it is also your guarantee that only this one small app, whose source you can read, holds those permissions.)
Try it: ./install.sh --dry-run shows every path the installer would touch, without touching anything.
Optional. Create ~/.config/unrecent/config (plain zsh, sourced by the sweep):
# folders to keep clean (default: Desktop, Downloads, Documents)
SCAN_DIRS=("$HOME/Desktop" "$HOME/Downloads" "$HOME/Documents" "$HOME/Pictures")
# leave files alone that were modified in the last N minutes (default: 10)
SKIP_RECENT_MIN=10Useful commands:
# run a sweep right now
open -g ~/Applications/UnrecentSweep.app
# remove specific files from Recents from the terminal
~/.unrecent/bin/unrecent-file.sh ~/Desktop/somefile.pdf
# clear the Apple menu + per-app "Open Recent" lists (separate subsystem)
~/.unrecent/bin/clear-menu-recents.sh
# watch what unrecent does
tail -f ~/Library/Logs/unrecent.logHonesty section. unrecent is a sharp tool for one job, and you should know its edges:
- Files can appear for up to 5 minutes. A freshly opened file shows in Recents until the next sweep. For instant removal, use the right-click action. (Real-time interception would require an always-on FSEvents watcher — deliberately out of scope for a tool this small.)
- The 10-minute work window. Files modified in the last 10 minutes are skipped by design, so actively edited documents stay untouched — and visible — until you stop editing.
- Only scanned folders are covered. Default: Desktop, Downloads, Documents. Add more via
SCAN_DIRS. - "Sort by Last Opened" loses its data for swept files — same metadata, unavoidable.
- Desktop icon positions may occasionally shuffle after a sweep of Desktop files.
- In-app recents (e.g., Word's own start screen, browser history) are separate app-internal databases.
clear-menu-recents.shcovers the system-level menu lists; app-internal lists are the apps' own business. - This is a privacy tool, not an anti-forensics tool. File system timestamps, app caches, and backups still exist. unrecent controls what your Mac displays, not what a forensic examiner could reconstruct.
./uninstall.shRemoves the LaunchAgent, the app, the Quick Action, and all staging folders. Your files are never touched. Revoking the folder permissions afterwards: System Settings → Privacy & Security → Files and Folders → UnrecentSweep.
macOS offers no built-in way — there is no "Remove from Recents" option in Finder. With unrecent installed, right-click the file → Quick Actions → Remove from Recents. The file itself stays exactly where it is; only its "recently used" metadata is removed at both the xattr and the Spotlight-index layer.
No. Recents is a saved Spotlight search, not a folder — the entries are live query results, not copies. unrecent only removes the "last used" date metadata that makes a file match the query. Every file stays byte-identical at its original path (verified: extended attributes and Finder tags survive the round-trip, minus the one date attribute being removed).
Two reasons. First: menu-based "Clear Recents" only resets the Apple-menu list (sharedfilelistd), not the Spotlight query that powers Finder's Recents — the folder view rebuilds instantly. Second: every time you open a file, macOS stamps a fresh com.apple.lastuseddate#PS attribute on it. That is why a one-time cleanup never lasts and unrecent runs as a background job: re-stamped files disappear again within 5 minutes.
Not on its own. On current macOS (verified on macOS Tahoe 26), deleting com.apple.lastuseddate#PS no longer removes the file from Recents — Spotlight's index retains kMDItemLastUsedDate even after a forced reimport. The entry must additionally be dropped from the index, which unrecent does via a brief .noindex folder round-trip.
Yes — this case is explicitly engineered for. When Desktop & Documents sync is active, unrecent stages those files inside iCloud Drive, so the round-trip is a metadata-only rename: no eviction, no re-upload, no version churn, no conflict window.
Not cleanly — the tracking is built into LaunchServices and Spotlight, and disabling Spotlight indexing breaks file search entirely. The practical approach is the one unrecent takes: let macOS track, then continuously and automatically erase the trace. For files that must never appear even for 5 minutes, keep them in any folder whose name ends in .noindex, or add that folder to Spotlight Privacy.
Cleaner apps clear the Apple-menu and app "Open Recent" lists — a different, shallower subsystem that macOS repopulates within hours — and none of them can remove entries from Finder's Spotlight-backed Recents folder, let alone a single chosen file. unrecent targets exactly that layer, is free, open source, ~300 lines of readable shell, and sends nothing anywhere.
The sweep is a low-priority background job (LowPriorityIO, ProcessType: Background) that typically finishes in a few seconds and exits — there is no resident process between runs. The code makes zero network connections; you can confirm in the source, it's short.
Issues and PRs welcome. Particularly interesting: reports from other macOS versions (does plain xattr removal still work anywhere?), additional package-document extensions, and localized Quick Action names.
MIT — do whatever you want, no warranty.
Built because "just don't open private files at work" is not privacy advice — it's surveillance with extra steps. Your Mac should work for you, not report on you.