You have an FTP server. Files appear there — sometimes hourly, sometimes daily — and you need them on your Mac. The process is always the same: open your FTP client, connect, navigate to the folder, check for new files, download them. Close the client. Repeat six times a day.

It works. But it breaks focus, it's repetitive, and if you miss a check you're behind. There's a better way to handle this — configure it once and let it run automatically in the background while you focus on actual work.

The manual way (and why it doesn't scale)

The typical manual workflow looks like this:

  1. Open the FTP client and connect to the server using saved credentials
  2. Navigate to the remote folder where new files appear
  3. Visually compare what's there now vs. what you already have locally
  4. Select the new files and download them
  5. Disconnect, close the client

For occasional use — downloading a project asset once in a while — this is perfectly fine. But for workflows where files arrive frequently and need processing quickly, the manual approach stops scaling fast. You're either doing it constantly or you're falling behind. Neither is acceptable when a client is waiting on deliverables or a production system depends on the files arriving promptly.

Some try to solve this with shell scripts and scheduled tasks, but that approach requires technical setup, fails silently, and offers no UI or notifications. When something breaks, you often don't find out until someone asks why nothing arrived.

What you actually need

What solves this properly is a tool that continuously monitors the remote FTP folder and downloads new files automatically — no intervention required.

There's an important distinction between local and remote monitoring. On a local Mac folder, the operating system can push instant notifications when files change (this is called FSEvents on macOS). Remote FTP servers don't have this capability — they're just file servers with no way to push notifications to a client. So the only viable approach is polling: periodically asking the server "what's new since last time?"

Done well — with the right polling interval, smart comparison to avoid re-downloading existing files, and proper error handling — polling-based monitoring works seamlessly. You set the interval (every minute, every five minutes, whatever makes sense), and the app handles the rest invisibly.

Setting up automatic FTP downloads with FTPull

FTPull is a macOS menu bar app built specifically for this. It monitors remote FTP, SFTP, or FTPS folders and downloads new files automatically. Here's how to get it running:

  1. Download and install FTPull. It's a standard macOS app — drag to Applications, open it. An icon appears in your menu bar.
  2. Click the menu bar icon and open Settings.
  3. Add a new connection. Enter your server's hostname (or IP), port, username, and password. Choose the protocol: FTP, SFTP, or FTPS.
  4. Set the remote folder — the path on the server where new files appear.
  5. Set the local folder — where downloaded files should land on your Mac. You can pick any folder.
  6. Set the polling interval. Every 1 minute is responsive; every 5 minutes is lighter on network usage. Pick what suits your workflow.
  7. Enable the connection. Toggle it on. FTPull starts watching immediately.

That's it. FTPull will check the server on schedule, detect any new files, and download them to your chosen local folder. A macOS notification tells you when files arrive.

Advanced options worth knowing

For most users the basic setup is enough. But FTPull includes a few options that matter for real-world workflows:

Extension filters

If the remote folder contains a mix of file types but you only care about certain ones, set an extension filter. Tell FTPull to only download .jpg and .pdf files, and it will quietly ignore everything else. This is particularly useful when you share server space with other processes that deposit different file types.

Minimum file size

Exclude tiny files — thumbnails, temp files, zero-byte placeholders — by setting a minimum file size in kilobytes. Files below the threshold are skipped.

Scheduling

FTPull can restrict monitoring to certain hours and days of the week. If files only ever arrive during business hours, there's no reason to poll at 3am. Set an active schedule (e.g., 8am–7pm, Monday–Friday) and FTPull pauses automatically outside those hours.

Multiple connections

Need to monitor several FTP servers at once? Add them as separate connections. Each runs independently with its own credentials, folder, polling interval, and settings. One menu bar icon covers all of them.

Transfer history

FTPull keeps a log of every downloaded file — filename, size, server, timestamp. If you need to audit what arrived when, or troubleshoot a missing file, the history view has it.

SFTP and FTPS: the secure alternatives

FTPull handles all three common protocols:

FTP — the original protocol, still common on internal networks and legacy hosting. Transfers are unencrypted, which is fine for non-sensitive files on a trusted network but not ideal for anything confidential over the internet.

SFTP (SSH File Transfer Protocol) — runs over SSH on port 22. Completely different from FTP at the protocol level, but fully encrypted and the modern standard for secure transfers. Also supports key-based authentication, so no password is ever sent over the wire. If you have a choice, use SFTP.

FTPS (FTP over TLS) — FTP with TLS encryption added on top. More compatible with existing FTP infrastructure, but more complex for firewalls. Often required by hosting providers or corporate servers that don't offer SFTP. FTPull handles both Explicit (FTPES) and Implicit FTPS modes.

Selecting the protocol in FTPull takes one click. The rest of the setup is identical regardless of which protocol your server uses.

Once it's running

Once configured, FTPull sits in your menu bar using essentially zero CPU when idle. You don't think about it. Files appear in your local folder and you get a notification when they do. That's it — the whole point of automating a repetitive task is that you stop thinking about it.

If something goes wrong — the server is unreachable, authentication fails, a file transfer errors out — you'll know. FTPull sends an error notification and logs the issue. The menu bar icon indicates status at a glance.