Give your files
an expiry date.

TinyPrune automatically moves old files and folders to Trash after the time you choose.

downloadDownload for Mac
$brew install --cask tinyprune
Copied
Free · Open source · macOS
Nothing permanently deleted
No accounts
Active · Watching 3 folders
tune
Library
folder_managed Overview
rule Rules
4
schedule Upcoming
17
history Log
Reclaimed
18.2 GB
this month

Workspace is tidy.

3 folders monitored, running in background.

All clean
MONITORED FOLDERS + Add
folder
Downloads ~/Downloads
.dmg .pkg · 7-day hold
image
Screenshots ~/Desktop
7-day hold · 38 items
terminal
Developer ~/Developer
Preview mode (6 repos)
NEXT TO MOVE TO TRASH
inventory_2
Figma-installer.pkg 7d old · Today
148 MB
image
Screenshot 2026-09-13.png Tomorrow
4 MB
folder_zip
old-portfolio/node_modules Inactive 42d
1.2 GB
Files move to macOS Trash. Undo anytime with ⌘Z. Local only

How it works

01

Pick what to tidy

02

Set an expiry

7 days, 30 days, or whatever works for you.

03

Forget about it

TinyPrune moves expired items to Trash automatically.

Clean exactly what you want.

Choose the folder, what to match, and how old it should be.

check_circleProtected files are never removed.
deleteNothing is permanently deleted.
tune

Old Node Modules

rules/dev-09.json
Active
WHERE ~/Developer/**
WHAT
node_modules Directory
WHEN repo idle > 30 days
EXCEPT pinned: ~/Developer/Production/*
Dry Run: 8 folders eligible
6.4 GB reclaimable

Useful rules to start with

FolderFilesRemove afterProtected
~/Downloads.dmg, .zip7 daysStarred or tagged items
~/DesktopScreenshots7 daysRenamed captures
~/Developer/**node_modules30 days inactiveActive worktrees
~/Developer/**.venv, __pycache__45 days inactivePinned environments
~/Library/CachesXcode DerivedData14 days idleOpen projects
Scheduled for Trash 3 items pending
figma-setup.pkg
Downloads rule · in 2 hours
148 MB
wireframe_v2.png
Screenshots rule · tomorrow
18 MB
client-proposal.key
Protected by Keep tag
lock Kept

Every item says why.

Click any queued file to see which rule matched it, the timestamp it was evaluated against, and your options: keep it, snooze it for a week, or prune it immediately.

done Optional notifications: Get a polite daily summary before anything moves.
done Finder tags: Tag any file with “Keep” right in Finder to exclude it instantly.
done Audit history: A full local log lets you review every action.

Private by design.

TinyPrune runs entirely on your Mac. No account. No telemetry.