New · For Claude & the terminal

Let Claude move your files —
without sharing a password

Ferry includes a small ferry command that Claude — or you — can use to move files over the connections you’ve already saved. You refer to a connection by name; Ferry keeps the credentials. No password ever reaches Claude, the command line, or a log.

Zero-trust by design  Passwords stay encrypted inside Ferry — Claude only sees connection names.

# Claude, using your saved connections — no password needed
$ ferry conn ls
NAME       TYPE   DETAILS
webserver  sftp   deploy@example.com:22
backups    s3     acme-backups

$ ferry put ./release.zip webserver:/var/www/releases/
Uploaded ./release.zip → webserver:/var/www/releases/ (4.2 MB)

$ ferry ls backups:/2026/ --json
[ { "name": "jan.tar.gz", "size": 91813423, … } ]

Ferry loads the credentials in-process — they never reach Claude.

Built so an assistant can help — safely

The whole point: Claude can do the busywork of moving files, and still never touch a secret.

Your passwords never leave Ferry.

Credentials stay encrypted inside Ferry’s config. The command loads them in-process and uses them directly — never typed on the command line, printed, or written to any log.

Claude works by connection name.

You say “upload this to my web server”; Claude runs ferry put … webserver:/…. It only ever sees the name you gave the connection — not the host, the username, or the secret.

It ships inside the app.

The ferry command is bundled inside Ferry itself — signed and notarized with the app. One click in Settings installs it for your terminal and for Claude.

Every action is logged — safely.

Like the app, the CLI records what it did in Ferry’s plain-text activity log. Passwords and keys are never part of that record.

One command, every protocol

The same ferry command works across FTP, SFTP, Amazon S3, Google Cloud and any S3-compatible storage — because it drives the exact same engine as the app.

ferry conn ls List your saved connections — names and types only, never passwords.
ferry ls myserver:/path List the files in a remote folder.
ferry tree myserver:/ --depth 2 See the folder structure at a glance.
ferry get myserver:/report.pdf Download a file (add -r for a whole folder).
ferry put ./report.pdf myserver:/uploads/ Upload a file (add -r for a whole folder).
ferry cat myserver:/notes.txt Print a remote file without downloading it.
ferry mkdir myserver:/new-folder Create a remote folder.
ferry rm myserver:/old.txt --yes Delete a remote file (or folder with -r).
ferry doctor Show where Ferry stores its config and how many connections you have.
… --json Add --json to any command for machine-readable output Claude can parse.

Remote paths use simple connection:/path syntax. Destructive actions always need --yes.

Set it up in three steps

  1. 1

    Save your connections in Ferry

    Add your FTP, SFTP, S3 or cloud connections in the app once. Their credentials are encrypted and stay on your machine.

  2. 2

    Install the command

    Open Ferry → Settings → Command-line tool and click “Install ferry command.” The app already knows exactly where it lives, so there’s nothing to configure.

  3. 3

    Let Claude do the rest

    With the Ferry skill enabled, ask Claude in plain language — “download the latest logs from my server” — and it uses ferry with the right connection, never needing a password.

Give your assistant a safe way to move files

Download Ferry, save your connections, and install the ferry command — then let Claude take it from there.