Menu bar app for macOS

UnplugAll

Eject safely — tells you what's still in the way.

UnplugAll safely ejects your external drives — and tells you exactly which app is blocking it when it can't.

macOS 14.0+ · Apple Silicon · $2.99 one-time

Disconnecting → safely unmounted

The one thing macOS won't tell you

It names what's blocking the eject

When an eject fails, UnplugAll asks the system for the cause, names it, and tells you exactly what to do next — not a generic "disk in use" dead end.

A GUI app has files open

“QuickTime Player is using this drive. Close its windows with files on ‘Archive’ and try again.”

A shell's working directory is on the drive

“A shell in Terminal has its working directory set to ‘Archive’. Type ‘cd ~’ in that window and try again.”

The advice is specific to the actual cause — a GUI app with open files gets different guidance than a shell sitting in that directory. Not one generic message for everything.

Honesty is part of the feature: macOS reports at most one blocker, and sometimes none at all. When no name comes back, UnplugAll says that too — along with what to try instead.

All of this works without Full Disk Access and without admin rights — just the app's normal sandbox.

New: UnplugAll names the app blocking your eject — and tells you when macOS can't. No Full Disk Access, no admin rights.
Everything it does

Built around one job, done properly.

No dashboard, no clutter — a menu bar app that handles external drives and is honest when something doesn't work.

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).

Trust & privacy

One permission. Nothing else.

Sandboxed, one permission

No Full Disk Access, no admin rights, no background daemon, no Accessibility permission.

No data collection

No account, no analytics, no ads, no network connection at all — the app simply has no network access.

Never terminates other apps

An App Store app isn't allowed to, and UnplugAll doesn't pretend it can. Instead: it names the blocker, explains it — and can still unmount on request, behind an honest confirmation.

One-time purchase, $2.99. No subscription, no in-app purchases.

The specifics

Technical facts

PlatformmacOS 14.0 or later, Apple Silicon
DistributionMac App Store exclusively
LanguagesGerman, English
DrivesUSB sticks, external SSDs and hard drives
Price$2.99 one-time
DependenciesNone — zero-dependency project
Launching soon

Get an email the day it ships.

UnplugAll is in development, heading for the Mac App Store. Leave your email and we'll let you know the moment it's live — one message, nothing else.

One email at launch, nothing else. No newsletter, no third party.

Questions

Before you ask.

Does UnplugAll need Full Disk Access or admin rights?

No. Every feature — including naming the app that's blocking an eject — works inside the app's normal sandbox, with no elevated permissions.

Can UnplugAll always tell me which app is blocking the eject?

Not always. macOS reports at most one blocking process, and sometimes none. When no name comes back, UnplugAll tells you that directly and suggests what to try instead, rather than staying silent.

Does the automatic timer eject my drive, or just unmount it?

Automation only ever unmounts — your drive stays connected and powered. Reconnect it by unplugging and replugging, or by mounting it again in the Finder.

What happens to encrypted drives with the auto-unmount timer?

The automation never touches them. Encrypted drives lock as soon as they're unmounted and ask for their password again afterwards, so they're excluded from the timer entirely.

Will UnplugAll close other apps to force an eject?

No — an App Store app isn't allowed to terminate other processes, and UnplugAll doesn't pretend otherwise. It names the blocker and explains it; forcing an unmount is possible, but only behind a confirmation that clearly warns running apps could crash.

Does it collect any data?

No. No account, no analytics, no ads — and no network connection at all, since the app has no network access to begin with.

Is it a subscription?

No. UnplugAll is a one-time purchase for $2.99 on the Mac App Store — no subscription, no in-app purchases.

Which drives does UnplugAll work with?

USB sticks, external SSDs and hard drives.

Stop guessing which app is holding your drive hostage.

UnplugAll is heading to the Mac App Store. Get notified the moment it's live.

macOS 14.0+ · Apple Silicon · $2.99 one-time