Mac app · 2026
6 min read
PlayableMenlo: a calmer place for your files
Downloads and Desktop, cleared into the folders you already use, by rules you write in plain words. Local-first, no account, and every run can be sent back.
Every Mac I have owned ends up with the same two folders. Downloads fills with invoices, boarding passes, screenshots and installers, and Desktop fills with whatever did not fit in Downloads. The tools that promise to fix it want one of two things: a rule builder with fifteen dropdowns, or permission to send your files to a model in someone else's data centre.
Menlo is the idea that neither is necessary. You name the folders you already use, you write rules the way you would say them out loud, and the app shows you every landing before a single file moves. It works with no AI at all, and it tells you plainly when a rule is one it cannot read.

Watch a run
One run of Menlo over a typical Downloads folder, animated. It plays by itself; pause it, or pick any step to hold it there. The files are the same chips the whole way through, so you can follow each one from where it sat to where it lands, and back again.
01 · Scan. Menlo lists what is sitting in Downloads. Nothing is read beyond names, types, dates and sizes.
- Anything named invoice
- Lease or agreement in the name
- Screenshots
- Photos from 2025
- Tax stuff
~/Downloads · 7
- Invoice_Aug2026.pdf
- Lease agreement.pdf
- Screenshot 10.14.33.png
- IMG_4821.heic
- Invoice_Aug2026 copy.pdf
- Form16_FY25-26.pdf
- zoom_installer.pkg
Invoices 20260
Contracts0
Screenshots0
Photos 20250
Trash0
Two files never move, and that is the point. "Tax stuff" has no cue word Menlo can read, so the form waits for a model instead of being guessed at. The installer is left alone because installers are, unless you opt in. I would rather ship that gap than a heuristic that is right nine times and moves your lease into Pictures on the tenth.
The stages, in the app
In the app, a run moves through these screens, and nothing moves until you press Move. Pick a stage to read what happens there.
Choose
Pick the folders to clear and the folders things can land in. On first launch Menlo sets itself up from the folders you already have: Downloads and Desktop to clear; Documents, Pictures, Movies, Music and Developer to file into, with their existing subfolders.


The idea underneath it
Most file organisers treat the problem as classification: look at a file, decide what it is. Menlo treats it as a contract about where files are allowed to go, and classification is only one way of honouring it.
That framing decides everything else:
- Nothing moves unseen
- You press Move, and by default you have seen every landing first.
- Nothing is overwritten
- A name clash gets a (2) suffix. A file that only shares a name is a different file.
- Only identical copies are trashed
- Both copies are re-hashed right before, so a file that changed after the preview is never removed.
- No network code
- The Rust core makes no network calls, and CI fails the build if an HTTP client is ever added to it.
- A model never names a path
- When one is used, it picks a folder key from a list Menlo supplied. Menlo maps the key to a folder you added.
- It refuses the dangerous places
- The system folders, ~/Library, app bundles, symlinks, files open in another app, and installers unless you opt in.
The last row but one is the part I care most about. A model is a good reader of "tax stuff" and a terrible thing to hand a filesystem path to. So the model's job is narrowed to choosing between options Menlo already trusts, which makes a wrong answer a misfiled document you can send back, never a file written somewhere you did not choose.
Where it goes next
- A local model, through Ollama. Gemma on the same Mac for the rules plain
matching cannot read, reached through the
ollamacommand line so the Rust core stays free of network code. - A coding CLI as an option, never a requirement. Claude Code or Codex as a classifier, for people who already have one.
- Learning from approvals. Every preview you confirm is a labelled example. A small decision model trained on those could replace the model step entirely, which is the same move that worked for categorising in Third Street Bookmarks.
- A menu-bar agent for scheduled runs, and a notarised build so no right-click is needed on first open.

Get it
Menlo is free and MIT licensed. The download above is the Apple Silicon build; it is signed ad hoc rather than with a paid Developer ID, so the first time you open it macOS will ask you to allow it under System Settings → Privacy & Security. On an Intel Mac, build it from source.
The code, the install guide and the architecture notes are on my GitHub at github.com/mayanksagar26/menlo, alongside everything else I build in the open at github.com/mayanksagar26.
It is named after the compulsively organised office aide in Recess.