Menu bar only
Lives exclusively in the menu bar — no Dock icon, no window, on purpose. One click shows every external drive; eject one, eject all, open settings. Multiple volumes on one physical device are grouped together and ejected in the right order.
Honest results, not green checkmarks
Never says “done” when it isn't. Partial success is stated plainly — “3 of 4 ejected, 1 still in use” — and whatever didn't work stays visible in the menu with a reason and a retry button. A partial result is never reported as a success, not even in a notification.
Auto-unmount timer, per drive
Set a time per drive; when it runs out, UnplugAll unmounts it. Opt-in per drive — nothing happens on its own. A global switch only allows the automation; you still turn it on per drive, with a one-time confirmation. The countdown runs visibly in the menu and in the menu bar icon (the icon indicator can be turned off) and can be cancelled at any time. You can count from the moment the drive connects — or, on APFS drives, from its last actual use (idle detection). exFAT and HFS+ don't give macOS any usage data, so those drives only get the time-based timer. Automation only ever unmounts, never ejects: the drive stays connected and powered, and you remount it by unplugging and reconnecting it, or from the Finder. Encrypted drives are never touched by the automation — they lock when unmounted and ask for their password again afterwards. A status line in Settings always says plainly whether automation is active, paused, or limited, and why.
Unmount before sleep and on lid-close
On request, UnplugAll unmounts the drives you've individually enabled for this before the Mac sleeps — up to 10 seconds are available (measured, and the ceiling), and anything that doesn't make it is reported, not hidden. Lid-close (clamshell) is a separate toggle, on battery power only by default — on power a Mac doesn't necessarily sleep, and the drive would be gone for nothing. The app visibly warns when a setting currently has no effect (e.g. “this Mac isn't sleeping on lid-close right now”). After waking, the drives stay unmounted — macOS doesn't bring them back by itself, and the app doesn't claim otherwise. Reconnect a drive by unplugging and replugging it, or mounting it again in the Finder.
Backup protection (Time Machine guard)
While a Time Machine backup is running, automation pauses and waits — with a trailing buffer — instead of stepping on it. Drives macOS marks as a backup target, or where UnplugAll finds backup data at the top level, are left alone by automation. Any drive can also be marked as a backup drive by hand.
Per-drive rules
Mark a drive as protected and neither automation nor “eject all” will ever touch it. Set your own timer per drive. Rules are attached to the drive's identifier, not its name — renaming or replugging changes nothing.
A menu bar icon that gets out of the way
On request, the icon only appears while external drives are connected (matters on a notched MacBook). It always stays visible when something needs attention — a blocked drive, a running countdown, a failed eject. Hiding it is only offered once you've chosen a way back during onboarding: a shortcut, Spotlight, or always showing the icon.
A global keyboard shortcut
Freely assignable with its own recorder field, suggested default ⌃⌥⌘E. Choose what it does: eject all drives, or open settings. Works everywhere, including in full-screen apps — without the Accessibility permission (a Carbon hotkey, the same approach established Mac apps use). Warns you before registering it if macOS already owns that combination (⌘Space → Spotlight, etc.) instead of silently doing nothing.
Manual eject, set precisely
Choose what “Eject” means from the menu: unmount and eject the device (then unplug and reconnect it), or unmount only, leaving it powered (then remountable from the Finder). This applies to anything you trigger manually — automatic actions always only unmount. Forcing an unmount through a blockage is possible, but always behind a confirmation that clearly states running apps could crash.
Notifications — opt-in and quiet
UnplugAll only asks for permission once there's actually something to report — never on launch. Toggle separately: “when a drive can be safely removed” and “when a drive couldn't be ejected.” Partial results always go through the failure toggle, never as a success message.
Launch at login
An optional login item, off by default — the app only registers once you flip the switch. Status is visible, with a direct link into System Settings.
Onboarding
A short first-run walkthrough: where the app lives, how to quit and find it again, and your choice of a way back — shortcut, Spotlight, or always-visible icon.
Bilingual
Fully in German and English, switchable inside the app (with a restart button).