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 and SFTP in one native app — the power of a pro client with the elegance of Apple. Built in Swift & SwiftNIO for rock-solid, blazing-fast transfers.
Version 1.3 · see what’s new
One app for plain FTP, encrypted FTPS and SFTP over SSH — 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. When a certificate is self-signed, you review the fingerprint and decide — no blind trust.
Full SFTP with password or, in FULL, RSA and ed25519 private keys with passphrases. Host identity is pinned with a known-hosts store to stop MITM.
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 — wrapped in an interface that feels right at home on your Mac.
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.
Migrate every server in seconds from sitemanager.xml or your ~/.ssh/config.
Connect over SFTP with RSA or ed25519 private keys and passphrases.
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.
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, edit remote files live in VS Code, 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 in a color-coded Site Manager, jump between them with tabs and ⌘K, and sync them all across your Macs with iCloud.
Coming from another client? Upstream FULL imports your whole server list so you don't retype a single host, port or username.
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.
Core transferring is always free and never limited. FULL adds automation for your daily workflow — a single purchase, yours forever.
| Feature | Free | FULL |
|---|---|---|
| FTP, FTPS & SFTP | ✓ | ✓ |
| Unlimited saved sites | ✓ | ✓ |
| Home with pinned & recent servers | ✓ | ✓ |
| Tags & saved views | ✓ | ✓ |
| Reopens where you left off | ✓ | ✓ |
| Menu bar item & transfer notifications | ✓ | ✓ |
| Light & dark with 21 accent themes | ✓ | ✓ |
| Concurrent & recursive queue | ✓ | ✓ |
| Resume & auto-retry | ✓ | ✓ |
| Pause, resume & reorder the queue | ✓ | ✓ |
| Queue restored after quitting | ✓ | ✓ |
| Transfer history | ✓ | ✓ |
| Remote folder size | ✓ | ✓ |
| Quick Look & CHMOD | ✓ | ✓ |
| Remote file management | ✓ | ✓ |
| Drag & drop with Finder | ✓ | ✓ |
| Live protocol console | ✓ | ✓ |
| Search & filters | ✓ | ✓ |
| One-shot remote edit | ✓ | ✓ |
| Edit with auto-upload (watch) | — | ✓ |
| Folder sync & comparison | — | ✓ |
| Synchronized browsing | — | ✓ |
| Download as ZIP archive | — | ✓ |
| SSH key authentication | — | ✓ |
| FileZilla & SSH config import | — | ✓ |
| Multiple tabs | — | ✓ |
| Command palette ⌘K | — | ✓ |
| iCloud site sync | — | ✓ |
| Bandwidth limit | — | ✓ |
| Server-wide recursive search | — | ✓ |
| Jump host / bastion (ProxyJump) | — | ✓ |
| Export history to CSV | — | ✓ |
No subscriptions, no accounts, no nonsense.
Everything you need to transfer files. Free core, unlimited forever.
Optional one-time In-App Purchase to unlock the complete automation toolkit.
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.
Connecting to FTP, FTPS and SFTP servers from macOS — why the Finder no longer works for uploads, what the Terminal can and cannot do, and how to set up a saved connection properly.
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 →