Classic FTP
Active and passive mode, UTF-8 paths and robust listing parsing (Unix & Windows servers). Perfect for legacy hosting and intranet boxes.
FTP, FTPS, SFTP and S3 buckets in one native app — two panes, drag and drop, and a transfer engine built in Swift & SwiftNIO. No subscription, no account.
Version 1.5 · see what’s new
One app for plain FTP, encrypted FTPS, SFTP over SSH and S3-compatible storage — with the authentication your servers actually use, from passwords to private keys.
Active and passive mode, UTF-8 paths and robust listing parsing (Unix & Windows servers). Perfect for legacy hosting and intranet boxes.
Explicit (AUTH TLS) and implicit FTPS with full certificate validation, including servers that require TLS session reuse on the data channel, like vsftpd and FileZilla Server. A self-signed certificate shows its fingerprint and you decide.
SFTP with a password or RSA and ed25519 private keys with passphrases — free for everyone. Host keys are pinned in a known-hosts store to stop MITM, and FULL adds jump hosts.
Amazon S3, Backblaze B2, Cloudflare R2, Wasabi and MinIO open as folders in the same two panes. Multipart uploads, resumable downloads, folder renames done on the server. In FULL.
Passwords are stored in the macOS Keychain. Private keys never leave your Mac. Host fingerprints are verified on every connection.
A real dual-pane workflow with a professional transfer engine — and, new in 1.5, cloud buckets, auto-upload and an Info panel.
Add an Amazon S3, Backblaze B2, Cloudflare R2, Wasabi or MinIO endpoint like any other site. Buckets open in the same two panes as your servers, and what you already use — the queue, folder sync, auto-upload — works on them too.

Turn on auto-upload and keep working in your local folder: every file you save goes up to the server on its own, through the transfer queue. Editor temp files and your .syncignore rules are skipped, and nothing is ever deleted on the server.

⌥⌘I opens a panel beside the file lists with a preview and the details of the selection: images, code, permissions, owner, public URL. Need to fix one line? Edit Here changes a text file without leaving the window.

Open Upstream and you land on the servers you actually work on: the ones you pinned, the ones you used last, and the full list with a count of whatever didn’t fit on screen. Search by name, host, user or tag — type “prd” and production comes up.
Browse your disk and your server in a clean two-panel view with native icons, breadcrumbs, instant filtering, list and grid modes. Drag & drop from Finder or between panes.
Multi-threaded, recursive transfers for files and whole folders — and now yours to command. Pause anything mid-flight and resume from the exact byte it stopped at, reorder what is waiting, or send an urgent file to the front. Quit the app and the queue is still there when you come back.
Open any remote file in VS Code, TextMate or Xcode. Upstream watches for saves and re-uploads to the server instantly — your edit loop without the manual round-trip.
Compare local and remote directories and mirror them in either direction. A dry-run preview shows exactly what will upload, download or delete before anything happens — with .syncignore exclusions and smart conflict handling.
Hit ⌘K, type a few letters, and connect to any saved site or run an action instantly. Fuzzy matching finds what you mean — keep your hands on the keyboard and your flow unbroken.
Dozens of small decisions that add up to a client you actually enjoy using.
Every credential is stored in the macOS Keychain. Nothing ever leaves your Mac in the clear.
Preview remote files instantly with the spacebar — no download, no detour.
Set permissions with an interactive rwx grid or by typing the octal value directly.
Watch raw protocol commands and responses stream by in a modern terminal-style panel.
Create, rename, move and delete files and folders on the server as if they were local.
Filter any listing as you type to find the one file among thousands in a heartbeat.
Every transfer is recorded with speed, duration and the exact error if it failed. Grouped by day, searchable, and never synced anywhere.
Ask any remote folder how big it really is. The count runs live and you can stop it whenever you want.
Map your site’s web root once, then copy the public address of any remote file straight from the context menu.
Pinned and recent servers, the state of the queue, pause and resume everything — without bringing the window back.
Tabs come back at launch with the same servers and folders, disconnected on purpose: one click on Reconnect and you’re back where you were.
Pick the appearance yourself instead of following the system — and an accent theme that stays readable on both backgrounds.
A server in the sidebar announces its name, whether it’s connected, which protocol it uses — and whether the traffic is in the clear.
A damaged data file no longer stops the app from starting, and it is never overwritten: your servers stay where they are while you make a copy.
Every transfer and the whole queue show speed and time remaining, and the Dock icon counts active transfers.
“Upload Files to Site” and “Open Site” in Shortcuts and as Finder Quick Actions. sftp://, ftps:// and ftp:// links open in Upstream.
Reach a server you will never save over SFTP, FTPS or FTP — and a welcome screen on first launch brings in the servers you already have.
Bring every server over in seconds from sitemanager.xml or your ~/.ssh/config — keys and jump hosts included. Free.
Connect over SFTP with RSA or ed25519 private keys and passphrases. Free for everyone.
Stay connected to several servers at once and switch sessions in a click.
Grab several remote files or whole folders as a single ZIP generated on the fly.
Cap the global transfer speed so a big upload never hogs your whole connection.
Keep your saved sites and bookmarks in sync across all your Macs.
Find a file anywhere in the remote tree by name or pattern, filtered by extension, with a depth limit so a huge tree stays manageable.
Reach servers that only answer through an SSH bastion. ProxyJump entries are read from your ssh config and wired up for you.
Find and replace (regular expressions too), prefix, suffix, numbering, case and extension, with a live preview. A conflict stops the rename instead of overwriting a file.
Upstream runs inside Apple's App Sandbox and treats your servers and credentials the way a native Mac app should.
The app is fully sandboxed per Apple's guidelines, and every password lives in the system Keychain — never in a plist, never in the clear.
FTPS certificates are validated, and SFTP host keys are pinned in a known-hosts store. If a fingerprint changes, Upstream stops and asks — protecting you from man-in-the-middle attacks.
There's no Upstream login and no analytics harvesting your activity. Your sites, keys and files are yours — the app just connects you to your servers.
RSA and ed25519 keys are read locally and used only to authenticate. They're never uploaded, copied or shared with anyone — including us.
From shipping a website to backing up a NAS, Upstream fits the way you already work.
Deploy a WordPress theme or a static site, turn on auto-upload and just save, and sync a build folder in one pass — dry-run first, of course.
Move files to a Synology or QNAP over SFTP, fix permissions with the CHMOD editor and keep an eye on the protocol log while you work.
Connect to a VPS, a seedbox or a Raspberry Pi with SSH keys, and manage everything from a real Mac interface instead of the terminal.
Keep dozens of client servers and S3 buckets in one Site Manager, jump between them with tabs and ⌘K, and sync them all across your Macs with iCloud.
Coming from another client? Upstream imports your whole server list — free — so you don't retype a single host, port, username or key.
Export your sites from FileZilla, or point Upstream at your ~/.ssh/config.
Import sitemanager.xml — every host, port and protocol comes across intact.
Add passwords to the Keychain or attach an SSH key, and you're connected.
Servers, SSH keys, the queue and the importer are always free and never limited. FULL adds cloud buckets and automation for your daily workflow — a single purchase, yours forever.
| Feature | Free | FULL |
|---|---|---|
| FTP, FTPS & SFTP | ✓ | ✓ |
| SSH key authentication | ✓ | ✓ |
| Unlimited saved sites | ✓ | ✓ |
| Import from FileZilla & SSH config | ✓ | ✓ |
| Home with pinned & recent servers | ✓ | ✓ |
| Tags & saved views | ✓ | ✓ |
| Command palette ⌘K | ✓ | ✓ |
| Reopens where you left off | ✓ | ✓ |
| Menu bar item & transfer notifications | ✓ | ✓ |
| Light & dark with 21 accent themes | ✓ | ✓ |
| Concurrent & recursive queue | ✓ | ✓ |
| Pause, resume & reorder the queue | ✓ | ✓ |
| Speed & time left, Dock badge | ✓ | ✓ |
| Transfer history | ✓ | ✓ |
| Info panel with local preview & Edit Here | ✓ | ✓ |
| Quick Look & CHMOD | ✓ | ✓ |
| Remote file management & folder size | ✓ | ✓ |
| Shortcuts & sftp:// links | ✓ | ✓ |
| Live protocol console | ✓ | ✓ |
| One-shot remote edit | ✓ | ✓ |
| Amazon S3, Backblaze B2, Cloudflare R2 | — | ✓ |
| Auto-upload on save | — | ✓ |
| Edit with auto-upload (watch) | — | ✓ |
| Folder sync & comparison | — | ✓ |
| Synchronized browsing | — | ✓ |
| Remote file preview | — | ✓ |
| Batch rename | — | ✓ |
| Multiple tabs | — | ✓ |
| Jump host / bastion (ProxyJump) | — | ✓ |
| Server-wide recursive search | — | ✓ |
| iCloud site sync | — | ✓ |
| Download as ZIP archive | — | ✓ |
| Bandwidth limit | — | ✓ |
| Export sites & history to CSV | — | ✓ |




No subscriptions, no accounts, no nonsense.
Everything you need to work with your servers. Free core, unlimited forever.
Optional one-time In-App Purchase that adds cloud buckets and the complete automation toolkit.
Try every FULL feature free for 7 days, from inside the app. No charge, nothing renews.
Upstream is a single app download from the Mac App Store. Core features are free; automation features are unlocked via a one-time In-App Purchase. Family Sharing supported. Restore on any of your Macs.
Practical write-ups on the problems real servers throw at you — useful whichever client you use.
Complete 2026 guide to connect to an FTP, FTPS or SFTP server on macOS. Learn how to use Finder (read-only), Terminal commands (sftp and curl), or a native client.
Read the guide →Your FTP client has "show hidden files" switched on and .htaccess still is not there. The reason is in the FTP protocol itself — the LIST command does not return dotfiles unless you ask for them.
Read the guide →macOS mounts FTP servers read-only and has done since OS X Lion. Here is why Apple removed write support, why sftp:// isn't a Finder scheme, and what the practical alternatives are.
Read the guide →Folder synchronisation over FTP and SFTP — how comparison actually works, why timestamps lie, what mirror mode will delete, and how to exclude files with a .syncignore.
Read the guide →