A free SFTP client for Mac

Conchshell puts your Mac's folders and the server's side by side over SFTP, with an SSH terminal for the same host one tab away. Version 2.17.1, for macOS 12 Monterey or later on Apple silicon or Intel.

It is built for the everyday job — ship a build, pull a log, fix a config. Resuming an interrupted transfer, two-way sync and a permissions dialog are not in this version; these and the other limits are listed below rather than left for you to find.

What it does on a Mac

Two panes, Mac and server
An SFTP connection opens your Mac on the left and the server on the right. Drag files across, or select them and press an arrow; drop files and folders from Finder straight onto the server pane. Each pane filters and sorts by name, size or date, and the server side shows permissions.
Folders, compared before they are synced
Whole folders go across with their contents. Sync directories compares a local folder with a server folder, lists what would be transferred or created and what conflicts, takes exclusions such as .git and node_modules, and only then does the work — in one direction at a time, Mac → server or server → Mac.
A queue that says what happened
Every file joins a queue and is marked waiting, in progress, done, failed or cancelled. While a file is being sent, the queue shows how far it has got, the speed and the time left, and a running transfer can be cancelled. A failure says why, and a failed or cancelled file can be retried on its own.
Nothing replaced without asking
If a file or folder of the same name is already there, whichever way the transfer goes, Conchshell asks whether to replace it or skip it, and one answer can cover the next conflicts too.

When you also need the shell

A file panel under the terminal
An SSH connection to the same server has its own file panel under the terminal. Double-click a file there and it opens in the application you chose in Settings, or in the built-in editor; each save goes back to the server, whichever editor you use.
History and pinned folders
That panel remembers the directories you visited on each server and keeps the ones you pin, and a log file opens straight into the log monitor.
Keys, jump hosts and proxies
A password, a key or ssh-agent. Keys can be OpenSSH or PuTTY .ppk files, with the passphrase asked when you connect, or PEM files without a passphrase, and an OpenSSH certificate saved beside the key as <key>-cert.pub is presented first without any setup; an SSH2 (RFC 4716) key is not read and has to be converted with ssh-keygen -i first. Keys in ~/.ssh are offered as a list, hosts in ~/.ssh/config are offered on the first screen, and a connection can go through one jump host and a SOCKS or HTTP proxy.
Host keys, checked
The first connection to a server shows its key's fingerprint in a macOS dialog, and a changed key stops the connection. Servers already in ~/.ssh/known_hosts are carried over once, unless that file hashes the host names.

What it does not do in 2.17.1

The limits of this version, so a big transfer does not find them for you.

One transfer at a time per connection
Each connection runs one transfer at a time, and the rest of its files wait their turn in the queue; transfers on different connections run side by side.
No resume
An interrupted transfer starts again from the beginning; as a rule, the file that was there before stays untouched until the new copy is complete. Transfers stream to and from disk rather than through memory, and a single download is capped at 64 GiB. For a multi-gigabyte image over a shaky link, rsync --partial in the terminal next door can carry on from where it stopped.
Sync is one-way
Sync directories runs in one direction at a time; there is no two-way sync. Mac → server sends new and changed files. Server → Mac fetches new and changed files, including those that exist only on the server, creates folders and never deletes anything on the Mac.
Permissions are shown, not edited
There is no permissions dialog; chmod in the terminal does it.
No agent forwarding
Since 2.17.0 ssh-agent itself works: a key it holds, a hardware key included, can sign you in. Conchshell uses the agent that SSH_AUTH_SOCK points to and does not read IdentityAgent from ~/.ssh/config, and it never forwards the agent to the server.
No one-time codes
A server that asks for a second factor after the password is not supported.

What you need

Mac
macOS 12 Monterey or later, Apple silicon or Intel — separate native builds
Download
11.0 MB for Apple silicon, 12.2 MB for Intel
Server
An SSH server with current algorithms and the SFTP subsystem, which OpenSSH enables by default; devices that offer only CBC or 3DES ciphers, SHA-1 key exchange or only a DSA host key cannot connect
Account
Not required — there is nothing to register
Price
Free. Syncing connections between your own machines is the one paid feature — $19 once
First launch
Apple silicon: no extra step. Intel: System Settings → Privacy & Security → Open Anyway; on macOS 12, System Preferences → Security & Privacy → General. Once, on the first launch; the download page has the details.

Questions about SFTP on a Mac

Is this SFTP client free?

Yes. SFTP, the two panes and folder sync are in the free build, with no account. The one paid feature is syncing saved connections between your own machines, $19 once.

Can I edit a file on the server in my own editor?

Yes, both in the two-pane SFTP view and in the file panel under an SSH terminal: double-click a file and it opens in the application you chose in Settings, or in the built-in editor, and every save is uploaded back. If you have not chosen yet, the first double-click asks which you prefer.

Does it use my SSH keys and ~/.ssh/config?

Yes. Keys in ~/.ssh are listed for you — OpenSSH, PEM and .ppk — with the passphrase asked at connect time and a Remember switch that is off by default. An SSH2 (RFC 4716) key has to be converted to OpenSSH first, with ssh-keygen -i. Hosts from ~/.ssh/config are offered on the first screen. ssh-agent can be chosen as the sign-in method too.

Can it keep a local folder and a server folder in sync?

In one direction, on request: Sync directories compares the two, shows the differences and transfers what you approve — new and changed files from the Mac to the server, or, from the server, new and changed files, including ones you do not have yet. It does not sync both ways, and it does not watch folders in the background.

Is it good for very large files?

Yes, since 2.17.0: transfers stream instead of passing through memory, the queue shows progress, speed and time left, and a running transfer can be cancelled. A single download is capped at 64 GiB, and an interrupted transfer starts again from zero, so for a very large file over a shaky link rsync --partial in the terminal is still the safer choice.

Does it do FTP and FTPS as well?

Yes, in the same two panes. FTPS has its own page, with its own limits.

Point it at the server you use every day.

The two panes and the terminal open from the same saved connection list. The application is free; syncing connections between your own machines is a one-time $19.