If you transfer files between your Mac and an FTP server regularly, you've probably had the thought: there has to be a better way than doing this manually every time. There is. But not every approach works equally well: and some create more problems than they solve.

The manual transfer problem

Manual FTP transfers mean opening a client, connecting, navigating to the right folder, selecting files, waiting, closing. Every time. Miss a transfer and files pile up. Do it too early and you catch a half-written file. Do it from memory and you lose track of what's been sent and what hasn't.

For anyone who moves files regularly: photographers delivering to agencies, businesses syncing with partners, teams distributing assets: this adds up to hours of repetitive work every week. Work that produces no value. Work that a machine should be doing.

Why common workarounds fall short

The first instinct is usually to write a script. Shell scripts can automate FTP operations, and they work: until something changes. A credential rotation, a server migration, a network hiccup. Scripts fail silently. There are no notifications when something goes wrong, no log anyone is watching, no retry logic unless you write it yourself. Maintaining scripts takes ongoing developer time. For a non-technical user, it's not an option at all.

General-purpose sync tools take a different approach: they treat FTP as one of many backends alongside cloud storage and local drives. The result is a tool designed around the concept of synchronisation jobs: scheduled, bidirectional, configuration-heavy. That's powerful for complex multi-cloud setups. It's overkill, and often confusing, for a straightforward "watch this FTP folder, download new files" workflow.

macOS built-in tools like Automator have no native FTP support. Any FTP automation via Automator requires shell scripts anyway: it just adds a layer of fragility on top.

What the right solution looks like

Automating FTP transfers on Mac well requires a few things that are harder to get right than they appear:

FTPull + FTPush: built exactly for this

FTPull and FTPush are two separate Mac apps, each handling one direction of FTP automation. FTPull watches a remote FTP, SFTP, or FTPS server and downloads new files automatically. FTPush watches a local folder and uploads new files automatically the moment they appear.

Both live in the menu bar and use near-zero CPU when idle. Both use the macOS Keychain for credentials. Both support FTP, SFTP, and FTPS: the three protocols you'll encounter in practice. Both are configured once and then left alone.

The design philosophy is deliberate: one tool, one job, done properly. Not a Swiss Army knife with an FTP attachment. Not a script you maintain. An app that runs quietly in the background and transfers your files: and tells you when it's done.

What you get with FTPull + FTPush

  • FTPull: automatic downloads from any FTP/SFTP/FTPS server, configurable polling interval, extension filters, scheduling, recursive folder monitoring, transfer history
  • FTPush: instant local detection via FSEvents, file stability checker, concurrent uploads, post-upload actions (archive, delete, run script), bandwidth limits, Finder tags
  • Both: multiple simultaneous connections, macOS notifications, real-time log, 14-day free trial: no credit card required

If you move files between your Mac and FTP servers regularly, this is the setup that removes the work entirely. Configure once, forget forever.