macOS · menu bar

Drag a file. Throw it.

A tiny menu bar app that uploads files to your own servers over SFTP, FTP, or S3 — instantly. No clouds, no accounts, no upload buttons. Your servers, your keys, your files.

macOS 14+ · 17 MB · Free & Source available

Built for people who already SSH.

No cloud accounts, no abstractions. Throwit uses your existing SSH keys, your hostnames, and your file paths.

Menu bar, always one click away

Click your paperplane icon. Drop. Done. No window juggling.

3-pane browser when you need it

⌘N opens a desktop window with host sidebar, local files, and remote files. Drag between panes.

Live reachability per host

Green / red dot updates every 30 seconds. Latency in milliseconds. Know before you drag.

Download & Quick Look

Right-click any remote file: Quick Look (preview in place) or Download to ~/Downloads. Streamed in 256KB chunks.

Dotfile-friendly config

~/.throw/settings.json watches itself. Edit with vim, commit to dotfiles, hot-reload.

17 MB. Zero telemetry.

No analytics, no auto-update beacon, no accounts. Pure SwiftUI, native, sandboxed.

One UI. Four protocols.

SCP for the speed-of-CLI crowd. SFTP for App Store users. FTPS for the legacy NAS in the corner. S3 — including MinIO, R2, B2 — for everything cloud.

SCP

/usr/bin/scp subprocess. Fastest for LAN. Direct-distribution build only.

FTP / FTPS

Network.framework RFC 959. Implicit TLS on port 990 for FTPS.

S3

AWS SigV4 manual signing. Virtual-hosted (AWS) and path-style (MinIO, R2, B2, Wasabi).

Questions you might have.

How is this different from Dropshare or Transmit?

Throwit stays out of your way: no cloud accounts, no shortlink generation, no built-in file browser bloat. Settings live in a single JSON file you can git-commit. Targets the developer/homelab use case — LAN servers and mac minis — instead of being a generalist SFTP client.

Do you store my SSH keys or passwords?

No remote anything. Keys stay on disk. Passwords are stored only in ~/.throw/settings.json in plain text (App Store builds use the macOS sandbox container). For passwordless use, point Throwit at your existing ~/.ssh/id_ed25519.

Why is SCP missing in the Mac App Store build?

The macOS app sandbox forbids spawning /usr/bin/scp. Direct downloads keep SCP. App Store builds use SFTP via Citadel — same SSH server, same auth, slightly different protocol on the wire.

Does it work with my encrypted SSH key?

Not yet — passphrase-protected keys require an additional decrypt step. Either use an unencrypted Ed25519 key (modern recommendation), or wait for v0.5. Encrypted keys: ssh-keygen -p -f ~/.ssh/id_ed25519 removes the passphrase if you want it now.

Can I customise hosts without using the GUI?

Yes — edit ~/.throw/settings.json directly. The app watches the file with DispatchSourceFileSystemObject and reloads on change. Vim, Emacs, or your dotfiles repo are first-class clients.

Will it run in the background?

Yes. Settings → Launch at login. Memory footprint stays under 50 MB idle. Network probes hit each host every 30 seconds.

Get Throwit.

Mac App Store

Sandboxed, auto-updates, easiest install. SFTP / FTP / S3.

In review

Direct download

Notarized .dmg. Includes SCP via /usr/bin/scp for max speed.

Coming soon

Source

SwiftPM project. Build it yourself with ./build.sh.

GitHub