FTP, when you have to.
Plenty of shared hosts and old appliances still speak FTP. Captain’s Deck supports the protocol fully — and warns you politely that SFTP is better.
Connecting
Cmd+K → FTP. Default port 21. Anonymous login is supported (toggle the checkbox).
FTPS — TLS variants
- FTP over TLS (explicit / FTPES) — port 21, upgrades after AUTH TLS. Pick this if your host accepts it.
- FTP over TLS (implicit) — port 990, TLS from the first byte. Older but still common.
- Plain FTP — credentials in the clear. Only when there is no other option.
.ssh/, .aws/, *.pem) by default. You can opt out per-host, but read the warning first.Active vs passive
Passive (PASV) is the default and works behind virtually every NAT. If you’re on a server with a public IP and need active mode, switch in the host’s advanced settings.
Filename encoding
FTP doesn’t standardise filename encoding, so legacy servers send bytes in whatever charset they were configured with decades ago. Captain’s Deck assumes UTF-8 by default and falls back through Latin-1 if that fails to decode.
If a particular host serves filenames in a non-Unicode charset, override it from the terminal:
defaults write com.captainsdeck.app ftpFilenameEncoding -dict-add ftp.example.com latin1
Supported charsets: utf8 (default), latin1, macroman, windows1252, shiftJIS, gb18030, big5, euckr. Reconnect to apply.
Limits & gotchas
- FTP has no native rename across directories — Captain’s Deck emulates with copy + delete.
- Resume support depends on the server (REST). Captain’s Deck probes once and remembers.
- Line-ending conversion (ASCII mode) is off by default. Turn it on per-host if you’re working with old mainframes.