Dropper is a minimal macOS menu bar app for everyday file moves and copies. It lives in the status bar, gives you a small drop shelf for parking files between Finder windows, and remembers a list of destination folders you can copy or move things into with a single click.
It is designed for the boring daily file chores that don't deserve a full file-manager workflow: stashing a few attachments before sorting them, copying screenshots into a project folder, moving downloads into a working directory, and so on.
- Status-bar shelf. A drop zone hangs under a small icon in the macOS menu bar. It expands automatically when you start dragging a file from Finder.
- Park-and-grab. Drop files onto the shelf to hold them, then drag them back out to wherever they belong, even across spaces or windows.
- Saved destinations. Pin folders you use often. Drop directly onto a destination card, or use the shelf + a destination button.
- Copy or move. Toggle between copy and move modes; the choice is remembered between launches.
- Activity strip. See the last few transfers and undo / reveal the results.
- No Dock icon. Dropper runs as a true menu bar app and stays out of the way.
- macOS 14 (Sonoma) or newer
- Swift toolchain on your
PATH— either the Xcode Command Line Tools or a full Xcode install
Check Swift is available:
swift --versionIf that command is not found, install the Command Line Tools:
xcode-select --installThere is no signed release build yet. Dropper is distributed as source and built locally with Swift Package Manager. The whole install flow is:
git clone https://github.com/JuanseHevia/dropper.git
cd dropper
./script/build_and_run.shWhat the script does:
- Stops any running Dropper process.
- Runs
swift buildin release-friendly mode. - Stages a self-contained
.appbundle atdist/Dropper.app. - Writes an
Info.plistso macOS treats it as a real menu bar app (LSUIElement, bundle id, min system version). - Launches the freshly built
Dropper.app.
After the first launch, look for the Dropper icon in your menu bar (top right of the screen). Click it once to open or close the shelf.
The build script stages the app at dist/Dropper.app inside the repo. To
keep it around like a normal app:
cp -R dist/Dropper.app /Applications/
open /Applications/Dropper.appYou can now launch Dropper from Spotlight or Launchpad like any other app.
Once a copy lives in /Applications:
- Open System Settings → General → Login Items & Extensions.
- Under Open at Login, click
+and pickDropper.app.
Dropper will appear in the menu bar each time you log in.
Because the bundle is built locally and not notarized, macOS may refuse to open it the first time with a message like "Dropper can't be opened because Apple cannot check it for malicious software."
Two ways to allow it:
-
Right-click
Dropper.app→ Open, then confirm in the dialog. macOS remembers this choice. -
Or from a terminal:
xattr -dr com.apple.quarantine /Applications/Dropper.app open /Applications/Dropper.app
This is only needed once per build.
Once Dropper is running, the menu bar icon is your entry point.
- Open the shelf. Click the menu bar icon, or just start dragging a file from Finder — the shelf opens automatically below the icon.
- Park files. Drop files or folders onto the shelf to hold them temporarily. The shelf does not move or copy yet; it just keeps a reference.
- Drag them out. Drag items off the shelf and drop them anywhere — a Finder window, a chat app upload field, an editor, etc.
- Send to a saved destination. Either drop files directly onto a destination card, or park them on the shelf first and click a destination's copy / move button.
- Switch copy ↔ move. The shelf has a toggle for the current transfer mode. The setting persists.
- Manage destinations. Add, rename, or remove saved destinations from the settings view inside the shelf.
- Activity strip. Recent transfers appear at the bottom of the shelf so you can reveal them in Finder.
Filename collisions in a destination are handled automatically by
appending a number before the extension (e.g. notes.txt → notes 2.txt).
To pull a newer build:
cd dropper
git pull
./script/build_and_run.shIf you copied the app into /Applications, replace it:
cp -R dist/Dropper.app /Applications/# Quit Dropper first (click the menu bar icon → quit, or):
pkill -x Dropper
# Remove the app bundle:
rm -rf /Applications/Dropper.app
# Remove saved settings (destinations, mode, etc.):
defaults delete com.juansegundohevia.Dropper 2>/dev/null || trueIf you also want to remove Dropper from login items, do that from System Settings → General → Login Items & Extensions.
-
swift: command not found. Install the Xcode Command Line Tools withxcode-select --install, then re-run the build script. -
Build fails with an SDK / platform error. Make sure you are on macOS 14 or newer. Dropper uses SwiftUI features that require Sonoma.
-
Menu bar icon does not appear. macOS sometimes hides menu bar items when the bar is full. Try removing other items, or open
Bartender/Iceand unhide Dropper. You can also confirm the process is running withpgrep -x Dropper. -
Drag from Finder doesn't open the shelf. Click the menu bar icon to open it manually, and check that no other app is intercepting drags (some clipboard managers do this).
-
Want to see what Dropper is doing. Stream the logs:
./script/build_and_run.sh --logs
Build only:
swift buildBuild and verify the app process starts:
./script/build_and_run.sh --verifyStream app logs after launch:
./script/build_and_run.sh --logsStream just Dropper's own telemetry (the com.juansegundohevia.Dropper
subsystem):
./script/build_and_run.sh --telemetryDebug the staged app binary in lldb:
./script/build_and_run.sh --debugThe Codex desktop Run action is wired to the same script through
.codex/environments/environment.toml, so it stays in sync with the
command line.
Package.swift— SwiftPM package definition.Sources/Dropper/App— app entrypoint and menu bar scene wiring.Sources/Dropper/Views— SwiftUI views for the shelf, destination cards, status-bar widget, settings, and activity strip.Sources/Dropper/Stores— app state, persistence, and user actions.Sources/Dropper/Models— value types for destinations, modes, and transfer records.Sources/Dropper/Services— file copy/move behavior, file-drag monitoring, and the status-bar widget controller.Sources/Dropper/Support— small platform helpers.script/build_and_run.sh— canonical local build, bundle, and launch script.
Dropper persists destination folders and the selected copy/move mode in
UserDefaults under the bundle id com.juansegundohevia.Dropper. File
operations use FileManager, and destination filename collisions are
handled by appending a number before the file extension.
The generated .build/ and dist/ directories are gitignored. Recreate
them at any time by running the build script.
Issues and pull requests are welcome. A good change usually:
- Builds clean with
./script/build_and_run.sh --verify. - Keeps the menu bar UX minimal — Dropper is intentionally tiny.
- Includes a short note in the PR description about how you tested it on macOS 14+.
Dropper is released under the PolyForm Noncommercial License 1.0.0.
In plain terms:
- Allowed: personal use, hobby projects, study, research, and use inside charities, schools, public research, public-safety, health, environmental, and government organizations.
- Allowed: modifying Dropper and sharing your changes, as long as recipients get the same license and notice.
- Not allowed: using Dropper, or anything derived from it, for a commercial purpose — including selling it, bundling it into a paid product, or running it as part of a for-profit service.
If you want to use Dropper commercially, open an issue to ask about a separate license.
See the LICENSE file for the full legal text.
