# Sorting files automatically on a Mac, feature by feature

To sort files automatically on a Mac you need something that makes the filing decision at the moment a file lands, because filing it later always costs more than leaving it where it is.

- URL: https://swiftfox.studio/handbook/auto-sort-files-on-mac
- About: https://swiftfox.studio/apps/sweep
- Published: 2026-06-11
- Updated: 2026-09-05
- Publisher: Swiftfox Studio (https://swiftfox.studio)

## In short

- Sweep's rules are built from plain conditions - type, name, size, age - with move or Trash as the action, and no rule syntax or regular expressions.
- Rules match top-down and the first match wins, which is why the specific ones sit above the catch-all sort-by-type rule.
- A dry-run preview names every planned move and flags anything that would overwrite at the destination before a single file is touched.
- Nothing is ever deleted outright, online-only cloud files are skipped rather than half-moved, and any batch can be undone with one click even after a relaunch.

## Why the Downloads folder wins

Nobody decides to accumulate two thousand files in Downloads. It happens because
filing something takes ten seconds and finding it later takes three, and that
trade is correct every single time you make it. The folder is not a symptom of
disorganization; it is the rational outcome of a thousand individually correct
decisions.

Which is why "just be tidier" does not work and automation does. Something has to
make the filing decision at the moment the file lands, when the context is still
obvious and the cost is zero.

[Sweep](https://swiftfox.studio/apps/sweep) is a menu bar app that does that on macOS. Everything below
is in the shipping version.

## Rules, without a rule language

A rule is a set of plain conditions and one action. Conditions are **file type**,
**extension**, **name contains**, **size** and **age**; actions are **move** or
**send to Trash**. There is no expression syntax and no regular expressions to
get wrong. Extension takes a comma-separated list - `sketch, fig, heic` - and is
the one to reach for when "name contains .sketch" would also claim
`notes.sketch.txt`.

![The Sweep menu bar popover on macOS listing rules like Move screenshots and Sort Downloads by type, each with its conditions, watched folders and an enable toggle](https://swiftfox.studio/sweep/listing/shot-1.jpg "Each rule shows its conditions and the folders it watches, with a toggle and a run-now button on the right.")

Five ship, three of them already on, and the useful thing is that each one is a
worked example you can edit rather than a black box:

- **Move screenshots** - name contains "Screenshot" → a Screenshots folder
- **Trash old installers** - installers older than 30 days → Trash
- **Move large files** - anything over 200 MB → a Large Files folder
- **Sort Downloads by type** - the broad catch-all, filed by kind
- **Organize by month** - dated subfolders instead

The two that arrive off are the two that would surprise you. Move large files
acts on size alone, and Organize by month is an alternative to Sort Downloads by
type rather than an addition: switch both on and by-type matches first, so
by-month never fires.

Order matters, and Sweep is explicit about it: rules match top-down and the first
match wins, which is why the specific ones sit above the catch-all. Without that,
a screenshot would be filed as an image and never reach its own rule.

Each rule also carries a trigger. **Auto** rules run as files land in the watched
folder, and any rule that matches on age also re-checks once a day - a file
turning 30 days old produces no filesystem event, so without that daily pass
"older than 30 days" would be a rule that never fires. **Manual** rules wait
until you press Run.

The seeded Trash rule runs automatically and always asks. That is the rule for
anything destructive on the daily pass: whatever a Trash rule's usual setting
says, a run that starts on a timer shows you the plan first, because it is
exactly the run nobody is watching.

A second axis decides how much it asks. A rule set to **confirm** shows the
preview and waits; one set to **silent** sorts matching files immediately without
asking. The two combine, and the combination worth thinking about is auto plus
silent: files move as they land and nothing appears. That is the setting the whole
app is built to earn, and it is also the one to leave until a rule has run
correctly a few times under confirm.

Folders are yours to choose: Downloads, the Desktop, or anything you add.

Under the list sits one quiet line - *This week: 47 files filed*. No badge, no
notification, no colour. It is there because the promise is that the app works
while nobody is watching, and that is also how someone reaches the end of a
trial having never seen it do anything.

## The preview, which is the actual product

Every batch can be shown before it runs, and the preview is where the trust
comes from.

![The Sweep preview dialog reading Preview - 8 moves, 1 skipped, listing each file with its source and destination and an Overwrite warning on one row](https://swiftfox.studio/sweep/listing/shot-2.jpg "Every planned move, with a warning where a file would replace something at the destination, and one button to confirm.")

The header states the plan in one line - *8 moves, 1 skipped* - and every row
below it names the file, where it is now and where it would go. Rows that would
replace something at the destination are flagged **Overwrite** with a warning
above the list. Then **Cancel** or **Confirm sweep**.

Two guarantees sit underneath.

**Nothing is ever deleted.** The destructive action is "move to Trash", which is
reversible with the Finder you already know.

**Online-only cloud files are skipped**, not half-moved. Sweep detects iCloud
placeholders and the dataless files OneDrive and Dropbox leave behind, and leaves
them alone rather than triggering a multi-gigabyte download or moving a stub away
from the service that manages it. That is the *1 skipped* in the header.

## Where the files actually go

A move action has two halves: the destination folder you pick, and how files are
distributed once they arrive. That second half is the part that decides whether
you end up with one tidy folder or a second mess inside it.

Four options. Everything lands in the destination root. Everything is grouped
**by type**, into Images, Documents and the rest. Everything is grouped **by
date**, into dated subfolders like `2026-07/`. Or everything goes into one
**named subfolder**, which is what the screenshots rule does with its Screenshots
folder.

A move can also rename as it files, which is useful for the downloads that arrive
as `document(3).pdf` and stay that way forever.

The important part is that all of this is still one rule with one preview and one
undo entry. Routing changes where things land, not how reversible the batch is.

## Undo, including after a relaunch

Every applied batch is recorded in the **Activity Log** and can be reversed with
one click, and the log survives quitting the app.

That is the feature the rest of the design is arranged around. Automation that
touches your files is only worth having if reversing it is as cheap as running
it - otherwise the honest response to any rule you are not completely sure about
is to not turn it on, and an organizer you are afraid of organizes nothing.

## From Finder, without opening the app

A Finder extension puts Sweep in the right-click menu of any folder.

![The Finder right-click menu on a Downloads folder with a Sweep submenu listing rules and the Flatten and Merge actions](https://swiftfox.studio/sweep/listing/shot-3.jpg "Right-click any folder: run a rule on it, flatten it, or merge selected folders.")

The submenu lists your active rules so you can run one against the folder you are
looking at, plus two one-off actions: **Flatten this folder**, which pulls
everything out of nested subfolders, and **Merge folders**, for the four
directories that are all the same project under different names.

Under the hood the extension does no file work at all - it hands every action to
the app, which owns the folder permissions and the undo log. That is a sandbox
requirement, and it is also why a Finder-initiated batch is as undoable as any
other.

## Cleanup, without the cleanup marketing

There is a Cleanup screen, and it is worth describing precisely because the
genre it lives in has a bad reputation. Cleanup looks only through the folders
Sweep already watches and groups what it finds there: byte-identical
duplicates, archives sitting beside their unpacked copies, downloads that
stopped part-way and never resumed, installers long past their use, and files
Sweep filed months ago that nobody has opened since. Nothing arrives ticked.
You pick, and the selection goes to the Trash through the same log and undo as
any other batch.

That third group is the one with a line to walk. A `.crdownload` sitting in
Downloads is either several gigabytes of nothing or a download still in flight,
and offering to trash the second would be the worst thing this feature could do.
So the line is a week: a partial that has not moved in seven days is the
browser's leftovers, and one paused overnight or over a weekend is never
offered at all.

The rest of the genre is deliberately missing: no "you can free 40 GB" scan of
the whole disk, no system junk claims, no cache sweeper. Sweep suggests what
it can show evidence for, in folders you told it about, and nothing else.

## The one place a model is involved

Every app in this category now sells an AI that organizes your files. Sweep's
argument is the opposite one - it does the same thing every time, and you can
undo it - so handing a model the files would trade away the only thing worth
buying.

So the model writes a rule, and the rule is what runs. On macOS 26 with Apple
Intelligence, Sweep reads the *names* of files nothing has filed yet, finds a
word they share, and drafts an ordinary recipe: a "name contains" condition and
a folder to put them in. It arrives switched off, in the builder, for you to
read and save - the same flow the pile-up card has always used. Nothing in it
moves a file.

Filenames only: no contents, no paths, and the pattern the model claims is
checked against the names it was drafted from before it ever reaches you. On a
Mac without Apple Intelligence the feature is not greyed out with an upsell -
it is simply not there.

## What it deliberately does not do

It never deletes anything. The most destructive thing a rule can do is move a file
to the Trash, and the Trash is a place you already know how to open. There is no
secure-erase, no bypass, and no setting that turns one on.

It never reads a file. Rules match on name, extension, kind, size and age - the
things the filesystem already knows - and nothing ever opens what is inside.
That is why a rule runs instantly on a 4 GB video, and it is also why the app
has nothing interesting to send anywhere even if it wanted to.

There is **no cloud and no account**. Rules and history are local, and the only
network traffic goes to our own servers - license validation, updates, config,
and anonymous usage and crash diagnostics, none of which carries a file name.

There is no schedule to set. Rules fire when a file lands in a watched folder,
when you press Run, or - for the ones that match on age - on a daily check that
exists only because nothing else would ever look at that file again. There is no
"every night at two" to configure, and nothing goes to the Trash on that daily
pass without showing you the plan first.

And the Finder extension does no file work of its own, which is worth knowing
because it explains a real failure mode: macOS runs it read-only, so every action
it offers is handed to the app. If Sweep is not running, the menu is there and
does nothing.

## What it costs, and what else to look at

Sweep runs on **macOS 14 or later**, on Apple Silicon and Intel, and takes about
20 MB. It is a **one-time $9.99 purchase** rather than a subscription, with a 30-day
trial that needs no card and no email. The full specification is on
[the Sweep page](https://swiftfox.studio/apps/sweep).

Sweep decides where a file goes. Two neighbors pick up where that stops. If
what you need back is a version of a file you already have, that is
[Retrace](https://swiftfox.studio/apps/retrace), covered in
[recovering an overwritten file](https://swiftfox.studio/handbook/recover-an-overwritten-file-on-mac).
And if the folder you are actually trying to clear is `~/Library` rather than
Downloads, an app's leftovers are [Unroot](https://swiftfox.studio/apps/unroot)'s job, in
[uninstalling apps completely](https://swiftfox.studio/handbook/how-to-uninstall-apps-on-mac). There is
a survey of the whole shelf in
[Mac utility apps worth installing](https://swiftfox.studio/blog/mac-utility-apps).
