Loft app icon
macOS menu bar uploader

Loft

Drag a file to your menu bar.
Get a link back.

macOS 14+  ·  Apple Silicon & Intel  ·  Free & open source

Everything you need, nothing you don't.

Drag & Drop

Drop any file or folder onto the menu bar popover. Folders are zipped automatically before upload.

Four TTL Panes

Private, 1 Day, 30 Days, Public. TTL panes use S3 lifecycle tags so files expire without cleanup scripts.

Fast Multipart

Files above 5 MB switch to multipart upload automatically — 8 MB chunks, 4 concurrent parts.

Any S3 Endpoint

Works with AWS, Cloudflare R2, Backblaze B2, MinIO, and DigitalOcean Spaces via a custom endpoint field.


See it in motion

One drag from your desktop to a link.

A six-second demo, then the full Settings tour.

Loft popover with the four drop panes
The popover. Four panes, each with a different TTL.
Settings — General
General
Settings — Panes
Panes
Settings — S3
S3
Settings — About
About

Three steps, zero friction.

Drag your file

Click the Loft icon in the menu bar to reveal the popover, then drag any file or folder from Finder onto it.

Drop on a pane

Choose how long the link should live — Private, 1 Day, 30 Days, or Public — and release the file.

URL is copied

Upload completes, a system notification appears, and the shareable URL lands on your clipboard automatically.


Getting past macOS Gatekeeper.

Loft is ad-hoc signed with a local certificate, not Apple-notarized. Apple charges €99/year for a Developer ID and this is a tiny personal tool, so we skip that. The tradeoff: on the very first launch macOS will refuse to open the app. One-time, takes 15 seconds.

Gatekeeper blocks it

The first time you open Loft, macOS shows this warning. Click Done.

macOS Gatekeeper warning: Loft Not Opened

Open System Settings

Go to System Settings → Privacy & Security. Scroll to the Security section — you'll see a line about Loft being blocked, with an Open Anyway button.

System Settings — Privacy & Security — Open Anyway

Open Anyway

Click Open Anyway, confirm the follow-up prompt, and Loft launches. macOS remembers this choice for this copy of the app — you only do it once per install.

Terminal alternative

Prefer the shell? Strip the quarantine attribute and open it directly:

xattr -dr com.apple.quarantine /Applications/Loft.app && open /Applications/Loft.app

Ready in minutes.

You need an S3 bucket with lifecycle rules for the TTL panes, and a narrow IAM policy scoped to that bucket. The setup guides walk through everything — bucket creation, lifecycle rules, CORS, and the exact policy JSON.