cl-ftp: FTP Client Functionality for Common Lisp

Totally insecure file transfers for those not in control of the receiving end

What cl-ftp Does

cl-ftp is an increasingly modified version of Matthew Danish's cl-ftp, put here both because the domain has lapsed and because the various changes may be useful to other people. It provides FTP client functionality to Common Lisp programs using the same API mrd's did.

Where to Get cl-ftp

The easiest way to get cl-ftp is to use Quicklisp: (ql:quickload "ftp").

You can also download the latest version of cl-ftp as a gzipped tarball or check it out from the darcs repository using `darcs get`. It is also asdf-installable in theory; provided you account for the system actually being named "ftp"—not "cl-ftp"!—, and you have my public key.

If you have previously checked out from the darcs repository, note that the repo URL has changed. The old URL ( was terrible. However, it redirects to the new URL, so existing repos should continue to get updates without input.

If you want the version which uses acl-compat, you'll be looking for the slightly older 1.3.2 version (sig).

How to Use cl-ftp

see the original documentation

Differences from MRD's Version

1.5.0 Differences

In addition to the 1.3.2 differences, the darcs repository also includes a conversion from acl-compat to usocket thanks to Hans Hübner.

1.3.2 Differences

The tarballed and ASDF-installable version of cl-ftp has some minor differences to MRD's original version, mostly minor bugfixes for clisp. See the changelog for more specific details.

Contacting the Editor

My e-mail address is You can also sign up for the mailing list for a little public back-and-forth, or to be notified of any updates.