The State of FTP Clients Going Into 2024

I started writing this just to ask if anyone knows of any good native FTP clients that have a modern GUI and transfer quickly enough, but ended up writing a lot more by including some big players in the space.

I’d love to hear any thoughts or personal opinions on your own FTP/SFTP setup, so I added some other questions at the bottom of the post.

Top Contenders

lftp - Free as in beer. Install with Homebrew or MacPorts.

The gold standard that shines above all others when it comes to speed. Easily the fastest of the bunch, but command line only. For advanced operations, there is a learning curve, but once you set it up and remember some basic commands like lcd, pget, and mirror, it’s relatively easy and transfers files much faster than most other FTP/SFTP clients thanks to parallel/segmented transfers.
I use lftp for any large transfers I have (anything over a few gigabytes), but for smaller files and folders, I tend to prefer just using Transmit for its ease of use.
My only wish is that there was some native GUI out there that just runs lftp under the hood while allowing drag-and-drop, whether it’s a single window or dual-pane UI like Transmit and some of the others.

FileZilla - Free as in beer, again.

Open-source, well-respected FTP client that is known for being fast and stable while offering many advanced features.
I’d love FileZilla if the UI were better on macOS because it looks very out-of-date and clunky. I’m aware that it does come with a few small themes that change the icons a bit, but I’ve yet to find a decent theme that will make it look more modern. If anyone knows of a way, please let me know!
Another thing to note is that it’s not currently Apple Silicon native, but the recent nightly builds are. The tradeoffs of using an unstable nightly version to get Apple Silicon support are up to you but might be marginally noticeable.

Transmit 5 - $45 one-time fee, requires upgrading license when Transmit 6 is released.

Sleek FTP client with a great dual-pane user interface. The developers, Panic Inc, make a few very polished native apps, like Prompt for iOS and the (somewhat) new Nova text editor for macOS.
I basically only prefer Transmit over FileZilla because it looks much nicer and truly feels native. My main reason for writing this post is because I’d like to see if any other native (or native-ish) macOS FTP clients can load faster when launched and possibly transfer files faster, though that isn’t my main concern because, as I said, I use lftp for my larger transfers anyway.

Forklift 4 - $19.95 for lifetime license and 1 year of updates.

Another sleek FTP client with a UI that feels more aligned with the macOS ecosystem. I used Forklift 3 for a bit before eventually switching to Transmit due to the nicer UI and faster speeds (probably just placebo), but the new Forklift 4 update looks really well made. I have tried the new version, and it was great but not compelling enough to switch from Transmit altogether.
However, I just installed it again to refresh my memory, and I like it a good amount and may consider switching again (lol).

Cyberduck - Freemium, full license for $10+ donation.

A fantastic, exceptionally fast FTP client that blends in with the macOS ecosystem well. Feels faster (under certain circumstances) than Transmit or Forklift when choosing to use multiple connections for the transfer.
It prompts you for a donation if you’re unlicensed but is otherwise free without limitations.
I personally do like Cyberduck a lot, but I prefer a dual-pane UI rather than having to open both Cyberduck and Finder to drag and drop files. It’s super minor, but it’s just my personal preference.

Commander One - $29.99 for a personal license, the free version does not support FTP.

This one is a bit overkill, in my opinion. It has many useful features that I’m sure many users would love, but they also contribute a bit of bloat to the app, and connecting to my server was noticeably slower compared to any of the above FTP clients.
The UI is very dense with information, tabs, options, and settings, and looks relatively overwhelming compared to the others I’ve included, with the exception of lftp for obvious reasons.
Great app with tons of nice features, just not for my personal use case.

Questions

  • What is your go-to FTP/SFTP client for macOS? Why do you use it over any of the other apps?
  • Do you know of any other clients that I didn’t include here? Maybe some newer programs altogether that are more up to today’s standards visually (and technically)?
  • What does your general file transfer workflow look like?
4 Likes

I used FileZilla on windows and linux quite a bit over the years, and later chose Transmit for some of my Mac users. After I retired I purchased a personal copy of Transmit. That would be my recommendation.

I don’t use FTP anymore but I occasionally backup my iPad Pro to Backblaze B2 and use Transmit to manage the files.

I use sftp/SSH two to three times a week and use transmit. I’ve tried others, but Transmit is excellent in my opinion.

I agree with you both as far as regular use goes, Transmit is the best, most user-friendly (while still having somewhat advanced features) client in my opinion.

I’ve happily used Transmit for about 4 or 5 years now, and only just started using lftp a few weeks ago when I started needing to download large 30-80GB single files from my server. My main reason for this was the segmented downloading, but I do hope Panic adds that functionality to Transmit some day, that’d be a massive game changer.

And as @WayneG mentioned, Transmit is great for other cloud storage providers like AWS S3 or Backblaze B2. That’s definitely where lftp can’t really help you, but then again it wasn’t designed for that at all.

1 Like

For moving files around I tend to use command line sftp, but for working with files remotely (at least for opening remote source files in local editors) Transimit is fantastic and well worth the cost (to me).

My FTP’ing is generally from our z/OS mainframe. The files (actually datasets) have a well structured naming convention.

So I use a bash script and some PHP code (localhost webserver in the latter case).

If I have to FTP outside of that naming convention I use FileZilla as it’s free and approved for my company’s use.

I have been using Vandyke products SecureCRT and SecureFX. They are apps on steroids. I can ftp or ssh simultaneously to any number of servers. It has a command window to input the commands to be executed on all the servers in your configuration. They are perpetual licenses and I would say check it out as they have a good pricing model. The more number of years you buy the more discount you get for support and releases. Their support has been top notch. Talk to a human :grinning:

I use Transmit for website work but also for working with Dropbox without having the app running (or installed!).

1 Like

I’ve used Transmit daily and find it fast, reliable, and well-designed. I’ve tried Forklift but didn’t like the interface as much. I’ve also used Filezilla a lot on Windows, but I much prefer the look of Transmit on Mac. I tried CommanderOne for a while a couple of years ago, but it didn’t stick for me as the interface wasn’t to my liking.

And for this reason, I go the other way. By example, I prefer to mount cloud drives as volumes on the desktop rather than as panes in a window view. So Cyberduck wins over Transmit.


JJW

My go-to has been Transmit for years. It would take something exceptional for me to switch to something else. Transmit also has excellent support for S3, including using IAM roles and MFA for authentication.

1 Like

I used to always use command line ftp and similar programs (I’ve been on the Internet for over 40 years and that was the only choice back then). However when I “went Mac” I used Cyberduck for a long time until I got Forklift as part of some package. I’ve since bought it outright and use version 3.

I’ve used them all and like Cyberduck the best. I wish they supported column mode, but that’s only a minor gripe.

The one I really want to like is the sibling Mountainduck, but it’s just not as reliable in my experience and I hate that it shows every connected volume in the Finder sidebar.

Interesting that you bring this up now. For the registry part of my AnimalTrakker system I need to download .csv files that contain registration transactions to process. It needs to be over sftp and the files are in a defined tree structure. I’ve been looking for a scriptable sftp system that can handle the task so there is one command to do to get everything down at once. I’m still exploring options for that case but for now I dusted off my old reliable standard Fetch. I hadn’t used it in ages, in fact I think the last time I used it it didn’t handle SFTP connections! However, it does now and because I had a old license per their website "If you purchased a Fetch license on or before January 28, 2009, you can upgrade to Fetch 5.8.3 for $10 " I got the latest version for only $10.00 It is not automated but it does handle downloading the entire tree of documents easily.

I tried to write a bash script to handle the downloads but I can’t get it to work. I’d love to see your script, scrubbed of any passwords etc if you’d care to share.

When I was doing a lot of data transfer for clients there was no way to automate a file transfer using passwords with the sftp command or sftp client app. Passwords only worked interactively. The ftp command permitted one to (insecurely) embed passwords in scripts, but not sftp. The proper way to do it is to install public key encryption on both sides of the transfer.

1 Like

I have used Transmit since it appeared. Will never change unless it goes subscription.

That’s a feature and actually the raison d’etre of Mountain Duck – it shows all remote clouds you are connected to and mounts them as drives (so they will show up in Finder and on the Desktop as drives) so you can move and copy files between them.

It’s especially convenient when you need to mount a cloud you use but do not want to fully sync it locally if you don’t have enough storage space, or you don’t need it on permanent basis etc. As such it’s not primarily an FTP client, though it certainly can be used like one. It’s convenient, however, that it will share all server/cloud configuration data with Cyberduck if both are installed.

Hmm, Do you happen to know if that is still the case?

To automate file transfers using the SFTP command or client with passwords, you can use the “expect” command in a script to provide the password non-interactively. I do it this way on Linux servers, I don’t know if the syntax is different on Mac.

Here are the steps:

Create an Expect Script:

Write a script that uses the “expect” command to automate the SFTP connection and file transfer. Here’s a basic example:

#!/usr/bin/expect

Set variables

set username "your_username"
set password "your_password"
set hostname "sftp_server"
set remote_path "/path/to/remote/directory"
set local_file "/path/to/local/file"
set remote_file "file_name_on_remote_server"

Start the SFTP connection

spawn sftp $username@$hostname

Expect password prompt and send password

expect "password:"
send "$password\r"

Navigate to the remote directory

expect "sftp>"
send "cd $remote_path\r"

Upload the file

expect "sftp>"
send "put $local_file $remote_file\r"

Close the SFTP session

expect "sftp>"
send "bye\r"

Wait for the SFTP session to close

expect eof

1 Like

I have been out of it for a few years now since retiring, but I don’t see why it would have changed. Putting a password in plaintext in a script reduces security. Utilities like sftp and ssh were designed to prevent such security breaches. Public key encryption is the secure way to go.

Using a Public/Private Key Pair with SSH/SFTP | LMi.net