DroplineDownload

Native macOS app · Swift + SwiftUI

Drop a file. Get the link.

Dropline lives in your menu bar and sends an image, a video or anything else to your own S3 bucket, your R2 account or your image host — by drag & drop, by right-click in Finder, or from the Dock. The public URL is on your clipboard before you switch windows.

macOS 13 Ventura or later, on Apple Silicon. Free and open source.

  • macOS 13+
  • Apple Silicon
  • ≈1 MB binary
  • MIT licence
screenshot-2026-08-08.png2.4 MB
PUTassets/2026/08/a1f3c9.png200 OK
Clipboardhttps://cdn.example.com/2026/08/a1f3c9.png

Five ways in. One way out.

Every one of them is somewhere macOS already put your hands: the window, the Dock, the Finder context menu, the clipboard, the menu bar. However the file gets in, it leaves the same way — the URL on your clipboard, plus a notification. Turn on Markdown and you get ![name](url) instead.

The menu bar icon becomes a progress ring while an upload runs. Large videos stream from a temporary file instead of being held in memory.

Your bucket. Your keys. Your domain.

Nothing passes through a server anyone else runs. Dropline talks to the endpoint you configure, and your secrets stay in the macOS keychain — never in the config file.

Parse any response

Point a JSON path at whatever your API returns — data.url, files.0.url — or leave it empty when the body is the URL itself.

Test before you trust it

Test Upload sends an 8×8 image and shows you the URL that came back, or the error that didn't.

Switch profiles freely

Keep several hosts configured side by side, upload to them concurrently, and watch progress and history per file.

Object key templateimages/{{date}}/{{uuid}}.{{ext}}
Final URL templatehttps://cdn.example.com/{{result}}
Available variables
  • {{filename}}
  • {{base}}
  • {{ext}}
  • {{uuid}}
  • {{date}}
  • {{datetime}}
  • {{timestamp}}
  • {{rand}}
  • {{key}}
  • {{result}}

Nine presets. Three engines for everything else.

Pick a preset and fill in your credentials, or describe the endpoint by hand. Between the three engines, almost any upload API is reachable.

Built-in presets

  • Amazon S3
  • Cloudflare R2
  • Aliyun OSS
  • Tencent COS
  • MinIO
  • SM.MS
  • Imgur
  • Lsky Pro / Chevereto
  • EasyImage
Upload engines
EngineUse it for
multipart/form-dataMost image-host APIs
Binary PUT / POSTSelf-hosted services and WebDAV-style endpoints
S3-compatible (AWS SigV4)S3 · R2 · OSS · COS · MinIO
AuthenticationNone · Bearer token · Basic · Custom header · URL query parameter

For anything else: give Dropline the upload URL, the JSON path to the link, and an object-key template. That is the whole configuration.

Questions people actually ask.

If yours isn't here, open an issue on GitHub — the README goes deeper on configuration and on building from source.

Does Dropline upload my files through your server?

No. Dropline talks directly to the endpoint you configure — your S3 bucket, your R2 account, your image host. There is no Dropline server in the path, no account to create, and no telemetry. Your access keys are stored in the macOS keychain rather than in the config file.

Which image hosts and storage services are supported?

Nine presets ship built in: Amazon S3, Cloudflare R2, Aliyun OSS, Tencent COS, MinIO, SM.MS, Imgur, Lsky Pro / Chevereto and EasyImage. Anything else can be configured by hand through one of three engines — multipart/form-data, binary PUT/POST, or S3-compatible AWS SigV4 — with none, Bearer, Basic, custom-header or URL-query authentication.

How do I configure a host that has no preset?

Go to Settings → Hosts and add a profile. You need the upload URL, a JSON path to pull the link out of the response (for example data.url or files.0.url — leave it empty if the body is the URL itself), and an object-key template such as images/{{date}}/{{uuid}}.{{ext}}. Test Upload sends an 8×8 image and shows you the URL that came back, or the error.

Is Dropline free? Is it open source?

Yes to both. Dropline is MIT licensed and the full source is on GitHub. There is no paid tier, no subscription and no trial.

What are the system requirements?

macOS 13 Ventura or later. The published release is built for Apple Silicon; the executable is roughly one megabyte, written in Swift and SwiftUI with no Electron runtime. You can also build it yourself from source with ./build.sh --install.

macOS says the app cannot be opened. What now?

The build is ad-hoc signed rather than notarised, so Gatekeeper blocks the first launch. Right-click the app and choose Open, or clear the quarantine flag from Terminal with xattr -dr com.apple.quarantine /Applications/Dropline.app.

The Finder right-click menu item is missing.

Enable it under System Settings → General → Login Items & Extensions → Finder Extensions. The same command also appears under Keyboard → Keyboard Shortcuts → Services → Files and Folders, where you can assign it a shortcut.

Can I upload large videos and non-image files?

Yes. Dropline takes any file type, and large files stream from a temporary file instead of being held in memory. Uploads run concurrently, with live progress and a history list.

Can it copy the link as Markdown?

Yes — turn it on in Settings and the clipboard gets ![name](url) instead of the bare URL. Either way a system notification confirms the upload, and the menu bar keeps the last five links.

How do updates work?

Through Sparkle, signed with EdDSA. Release notes ship in both English and Chinese and follow the language you pick in Settings.

Installed in about a minute.

Two steps, plus one because the build is ad-hoc signed rather than notarised.

Download for macOS

Universal DMG · macOS 13+ · Apple Silicon

Updates arrive through Sparkle and are signed with EdDSA. Release notes ship in English and Chinese, and follow the language you pick in Settings.

Prefer to build it yourself? Clone the repository and run ./build.sh --install.

  1. 01

    Download the DMG

    Grab the latest release and drag Dropline into your Applications folder.

  2. 02

    Open it the first time

    Right-click the app and choose Open, or clear the quarantine flag from Terminal:

    xattr -dr com.apple.quarantine /Applications/Dropline.app
  3. 03

    Turn on the Finder extension

    If the context-menu item does not appear, enable Dropline under System Settings → General → Login Items & Extensions → Finder Extensions.