FTP client for Mac: what macOS still does on its own

If you need to upload files to an FTP server from a Mac, you need either a dedicated FTP client or a few lines in Terminal, because Finder alone cannot do it. Finder can connect to an FTP server, but Apple documents that connection as read-only: you can copy files down, not up. For most people the practical choice is between Cyberduck (free, donation supported), FileZilla (free), Transmit 5 ($45 one-time) and ForkLift 4 (from $19.95), all checked on the vendors' own pages on October 9, 2026. Before picking one, it is worth knowing exactly what the Mac already does, because for SFTP servers you may not need to install anything.

What a Mac does without any extra app

The answer depends on which protocol your server speaks. "FTP" is used loosely for three different things, and macOS treats them very differently.

Protocol What it is Built into macOS
FTP The original file transfer protocol. Sends the login and files unencrypted Finder can browse and download. No upload
FTPS FTP wrapped in TLS encryption Available through curl in Terminal
SFTP File transfer over SSH. A different protocol despite the name Full support through sftp, scp and rsync in Terminal

On a Mac running macOS 27.0.1, checked for this article, the classic ftp command is not installed. Typing ftp returns "command not found". The commands sftp, scp, rsync and curl are all present in /usr/bin. The version of curl that ships with the system lists ftp and ftps among its supported protocols, which means it can upload to an FTP server even though the ftp command itself is gone.

So the honest summary is: for SFTP, the Mac is already a capable client from the command line. For plain FTP or FTPS, the Mac can download through Finder and upload through curl, but there is no graphical way to upload without adding an app.

Finder's FTP connection is read-only

Many guides skip this, and it causes most of the confusion. In Finder, choose Go > Connect to Server (Command-K), type an address such as ftp://ftp.example.net, and click Connect. Finder mounts the server like a disk and you can browse its folders.

Then you try to drag a file onto it and nothing happens, or you get a permissions message. That is by design. Apple's page on servers and shared computers you can connect to states that FTP servers are mounted with read-only access: you can copy files from the server, but to copy files to the server you may need another FTP app. Apple points to the App Store for that.

Finder's Connect to Server is still useful in two situations. It is a quick way to download a batch of files from a public or internal FTP server without installing anything. And it saves recent servers: Apple's guide to connecting your Mac to shared computers and servers explains that you can pick a recent server from the pop-up menu next to the Server Address field, or click the plus button to add it to a favorites list.

For anything that involves publishing, such as updating a website or delivering files to a client's server, Finder is not the tool.

To download through Finder, the steps are short:

  1. In Finder, choose Go > Connect to Server, or press Command-K.
  2. In the Server Address field, type the address starting with ftp://.
  3. Click Connect, then enter the username and password if the server asks.
  4. When the server appears as a mounted volume, drag files from it to a folder on your Mac.
  5. Eject the server from the Finder sidebar when you are done.

Uploading from Terminal when you only need it once

If you upload to an FTP server rarely, Terminal can do it without installing a client. These commands use only what macOS ships.

Plain FTP or FTPS with curl

To upload one file to a folder on the server:

curl -T report.pdf ftp://ftp.example.net/incoming/ --user username

curl asks for the password. For an FTPS server, replace ftp:// with ftps://. To list a remote folder, give the folder URL without -T:

curl ftp://ftp.example.net/incoming/ --user username

curl handles one file per -T argument. It is fine for a delivery or two. It is not a substitute for a client when you need to mirror a whole folder.

SFTP with sftp and rsync

For an SFTP server, open an interactive session:

sftp [email protected]

At the sftp> prompt, put file.zip uploads, get file.zip downloads, ls and cd move around the server, and lls and lcd do the same on your Mac. To upload a whole folder and send only what changed since last time:

rsync -avz ./site/ [email protected]:/var/www/site/

rsync compares both sides and transfers the difference, which no drag-and-drop client does by default. If your host offers SSH access, this one command can replace a lot of manual uploading.

The four clients people actually choose between

When a graphical client is the right answer, these are the ones that keep coming up in Mac discussions. Prices and requirements below come from each vendor's site, checked on October 9, 2026.

Client Price Requires Notes from the vendor's page
Cyberduck Free (donation prompt). Contributor key from 10 USD macOS 10.13 or later Version 9.5.4. FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Google Drive, Dropbox and more. Also sold through the Mac App Store
FileZilla Free Listed on the download page Open source client. A paid FileZilla Pro edition adds cloud storage
Transmit 5 $45 one-time macOS 13.0 or later 7-day free trial of the full version
ForkLift 4 $19.95 single user with 1 year of updates, $34.95 with 2 years macOS 14.6 Dual-pane file manager. SFTP, FTP, WebDAV, S3, Backblaze B2, Google Drive, OneDrive, Dropbox, SMB, AFP, NFS

A few distinctions matter more than feature lists.

Licensing model. Cyberduck is free software, and its download page explains that a contribution of at least 10 USD gives a registration key that removes the donation prompt. Transmit is a single purchase. ForkLift's store page describes a lifetime license that includes one or two years of updates. After that period you keep the last version covered, and new updates require a new license.

One window or two. Cyberduck and Transmit are built around a server browser. ForkLift is a full Finder replacement with two panes, which suits people who want local and remote folders side by side all day.

Cloud storage in the same tool. If you also move files to S3 or Backblaze B2, Cyberduck, ForkLift and Transmit can reach those without a second app. Plain FTP is only one of the protocols they cover.

Questions to answer before installing anything

Most "which client" discussions start in the wrong place. Three facts about the server decide more than any review.

  1. Which protocol does the server accept? Ask the host or check the hosting control panel. Many hosts have disabled plain FTP and accept only SFTP or FTPS. If SFTP is available, the built-in sftp and rsync commands already work.
  2. Is it port 21 or port 22? Port 21 means FTP or explicit FTPS. Port 22 means SFTP over SSH. Typing an SFTP address into an FTP field is the most common reason a connection fails in every client listed above.
  3. How often will you upload? Once a month, Terminal is enough. Every day, a client with saved bookmarks and resumable transfers saves real time.

Make SFTP as quick as a saved bookmark

The main reason people install a client for an SFTP server is bookmarks: a name you click instead of a host, user and port you retype. OpenSSH on the Mac has the same thing in a text file. Add an entry to ~/.ssh/config:

Host mysite
    HostName server.example.net
    User deploy
    Port 22

After that, sftp mysite and rsync -avz ./site/ mysite:/var/www/site/ work with no other details. The same alias works for ssh and scp, and every graphical client that reads OpenSSH settings can pick it up too. Pair it with an SSH key instead of a password and the connection is both faster and safer than typing credentials into a dialog.

Read the error before switching clients

When a connection fails, changing to a different client rarely helps, because every client is talking to the same server. The error text usually names the problem.

Message What it usually means What to check
Connection refused Nothing is listening on that port Port 21 versus 22, and whether the host enabled the service
Connection timed out A firewall is dropping the traffic Office or hotel network rules, and the host's IP allow list
530 Login incorrect The FTP server rejected the username or password Credentials, and whether the account is FTP-enabled
Permission denied (publickey) The SFTP server accepts only key login Upload your public key through the host's control panel
Upload fails on Finder mount The FTP mount is read-only Use a client or curl -T instead

The last row is the one that sends people looking for a new FTP client for Mac in the first place. Nothing is wrong with the server. Finder is doing what Apple says it does.

Plain FTP deserves a separate note. It sends the username and password without encryption. If the server offers SFTP or FTPS, choose those, even when plain FTP still works.

Where an FTP client stops being the bottleneck

For many people the transfer itself is not the slow part. The slow part is the round trip around it: find the right local folder in Finder, open the client, navigate to the same folder on the client's local pane, drag, then switch to Terminal to run a build or check a log on the server.

If that describes your day and your server accepts SFTP, there is another arrangement worth knowing about: a file manager with a built-in terminal. The terminal opens in whatever folder you are looking at, so rsync ./ user@host:/path/ runs from the right place without typing cd. That kind of tool does not replace a graphical FTP client. It has no FTP browser, and if you need drag-and-drop uploads to a plain FTP server you still want one of the four clients above. What it removes is the switching between Finder, a client and Terminal when SFTP and the command line already cover the transfer.

One example keeps a separate terminal per folder, marks each terminal as running, waiting or finished, and sends a macOS notification when a long command ends. Its features page shows the layout, and the comparison page states plainly what it does not do. Using it on the Mac is free with no time limit and no account, according to its pricing page (checked October 9, 2026).

What to change first

Find out whether your server accepts SFTP. If it does, try sftp and rsync from Terminal before installing anything. If it accepts only FTP or FTPS and you upload often, install Cyberduck or FileZilla first because both are free, and move to Transmit or ForkLift only if their workflow suits you better. If the switching between Finder and Terminal is the real cost, look at Atriens.

Frequently asked questions

Does macOS have a built-in FTP client?

Partly. Finder can connect to an FTP server through Go > Connect to Server, but Apple documents that connection as read-only, so you can download but not upload. The ftp command is not installed on current macOS. curl in Terminal can still upload to FTP and FTPS servers.

Why can't I upload files to an FTP server from Finder?

Finder mounts FTP servers read-only. This is how Apple designed the feature, not a permissions problem on your server. Use an FTP client, or curl -T in Terminal, to upload.

Is Cyberduck really free on Mac?

Yes. Cyberduck is free software. It shows a donation prompt after installs and updates, and a contribution of at least 10 USD gives a registration key that turns the prompt off. A paid version is also available from the Mac App Store.

What is the difference between SFTP and FTPS?

FTPS is the old FTP protocol with TLS encryption added, usually on port 21. SFTP is a separate protocol that runs over SSH, usually on port 22. A Mac supports SFTP from Terminal out of the box through sftp, scp and rsync.

Which FTP client should I use for a website I update every day?

If the host supports SSH, rsync uploads only changed files and is hard to beat for a site you update daily. For a graphical client with saved bookmarks, Transmit 5 ($45) and ForkLift 4 (from $19.95) are the common paid choices, and Cyberduck is the common free one.

Back to all posts