TIDY · MAC UTILITIES

TIDY AWAY

An out-of-office for your iMessages — that leaves everything unread.

In Testing · v0.1
☾ ☾ ☾

Last updated: 2026-07-07

Tidy Away is a menu-bar utility for busy seasons. Flip it on and it quietly auto-replies to incoming iMessages from people in your Contacts with a short “here’s when I’ll get back to you” note — then leaves the message unread, so it’s still sitting in your triage pile when you surface. It never replies in group threads, never double-texts the same person, and never touches your read/unread state itself.

It’s the fourth app in the Tidy family — small, single-job Mac utilities. macOS only, direct download, currently in testing on my own machine.


Why It Exists

There’s a specific kind of stress in going heads-down while your phone keeps lighting up. You’re not ignoring people — you just can’t answer right now — but silence reads as ignoring, and every unanswered text is a small open loop nagging at the back of your mind.

An out-of-office reply solves this for email. Nothing solves it for iMessage. The Driving Focus has an auto-reply, but it’s all-or-nothing, it’s tied to driving, and it marks things handled. What I wanted was quieter and more honest: reply once to the people I know so they’re not left hanging, but keep every message unread, so when I come up for air the pile is still there and nothing has been silently swept away.

That’s the whole idea. It buys the sender a little patience without pretending, to me, that the conversation is closed.


How It Works

While Away is on, Tidy Away watches your Messages database for new arrivals. Each new message runs through a rule stack, and only earns an auto-reply if all of these hold:

Then there are the people and senders you’d never want an auto-reply to reach, and Tidy Away filters them out three ways — none of which read a word of your messages:

When it does reply, it sends the note directly to that person without ever opening or focusing the conversation — which is what keeps the message unread. That last part is the whole trick.


Modes

“Away” isn’t one thing. Heads-down-at-my-desk and off-the-grid-for-the-evening are opposite states, and they deserve opposite notes — one says “I’ll surface soon,” the other says “I’m not at a keyboard.” So Tidy Away has modes.

A mode is a named bundle: a message, an optional Focus, and an optional auto-off time. It ships with Work, Personal, and Vacation, and you can add your own. When you turn Away on, you pick the mode right from the menu — one click sets the right tone, flips the right Focus, and schedules the right off-time all at once. You can switch modes mid-session too; the new note takes effect on the next reply.

There’s also an optional setting — off by default — to pick the mode by the clock: your work mode during work hours on weekdays, your off-hours mode evenings and weekends. Turn it on and Away just does the right thing without you thinking about it; leave it off and you stay in full control.


Privacy

This is the part that matters most, so I’ll be precise about it: Tidy Away never reads your conversations. It learns only that a message arrived and who it’s from — the bare minimum to decide whether to send a note. It never decodes message text, never stores it, and never sends anything anywhere. Everything stays on your Mac.

That isn’t a promise layered on top of the code; it’s how the code is built. The query that watches for messages pulls a row identifier and the sender’s handle, and nothing else. There is no code path that reads what anyone said, because there’s no reason for one to exist.

The optional diagnostics log — the thing you’d send me if something misbehaved — is scrubbed at the source: first names only, phone numbers masked to their last four digits, and no message contents of any kind.

The full details are in the privacy policy.


Focus

Optionally, turning Away on can drop your Mac into a Focus mode — Work, Do Not Disturb, whatever you use — and turn it back off when Away ends. macOS gives apps no direct way to set Focus, so this runs through a Shortcut you choose (one with a “Set Focus” action); Tidy Away just runs it at the right moment and restores the default afterward.


The Honest Limits


How It’s Built

App: Swift 6 with strict concurrency, AppKit for the menu-bar item, SwiftUI for the settings and onboarding surfaces. A hand-rolled @main, no scenes, no third-party dependencies. Project generated from a project.yml via XcodeGen.

Watching for messages: A read-only SQLite connection to the Messages database, polled every few seconds and tracking the highest message identifier it’s seen so each poll only scans what’s new. It opens read-only, never writes, never checkpoints, never opens a conversation.

Sending: An Apple Event to Messages, in-process, targeting the recipient without focusing a window — the no-focus path that preserves unread state.

Contacts: The Contacts framework, indexed once per session into memory so a sender resolves to “someone I know” without a lookup per message.

Staying awake: An IOKit power assertion held for the length of the session.

Three one-time permissions, walked through on first run: Full Disk Access (to see that messages arrive), Contacts (to know who’s who), and Automation (to send through Messages).


The Stack


What It Is Not

The point is a smaller open loop, not a closed one. Everything stays unread because you’re still the one who answers.

☾ Signal

Tidy Away isn't out yet. Leave your email and I'll send one note the day it ships — nothing else, ever.

Notify me