LinuxCommandLibrary

ffsend

Send files through Firefox Send

TLDR

Upload a file

$ ffsend upload [path/to/file]
copy

Download a file
$ ffsend download [url]
copy

Upload a file with password
$ ffsend upload [path/to/file] [[-p|--password]] [password]
copy

Download a file protected by password
$ ffsend download [url] [[-p|--password]] [password]
copy

Upload a file and allow 4 downloads
$ ffsend upload [path/to/file] [[-d|--downloads]] [4]
copy

SYNOPSIS

ffsend <COMMAND> [<OPTIONS>] [<FILE>...]
where COMMAND is upload, share, watch, stream, download, delete, or server

PARAMETERS

-h, --help
    Print help information

-V, --version
    Print version information

--url <URL>
    Relay server URL (default: https://relay.ffsend.com)

--key <KEY>
    Private key for decryption

--verbose
    Verbose output

--quiet
    Minimal output

--name <NAME>
    Custom file name on server (upload)

-p, --password [<PASSWORD>]
    Password-protect the file

-e, --expire <EXPIRE>
    Set expiration (e.g., '1d', '1h30m', 'never')

-d, --downloads <DOWNLOADS>
    Limit downloads (e.g., 5, 'unlimited')

-s, --size <SIZE>
    Max file size (e.g., 1G, 500M)

--archive
    Archive directory before upload

--progress
    Show upload progress bar

--header <HEADER>
    Custom HTTP header

DESCRIPTION

ffsend is an open-source command-line tool inspired by Mozilla's Firefox Send, enabling users to securely upload and share files or folders with end-to-end encryption.

It supports features like password protection, customizable expiration times, download limits, and progress tracking. Files are uploaded to a relay server (default: relay.ffsend.com), generating a unique shareable URL.

Key benefits include no account required, client-side encryption (using 256-bit AES-GCM), and bandwidth-efficient transfers. Users can upload single files, multiple files, or directories (with --archive). Recipients download via browser or CLI without needing ffsend.

Developed in Rust for performance and safety, it's cross-platform (Linux, macOS, Windows). Note: Firefox Send service ended in 2020; ffsend uses community-hosted relays.

CAVEATS

Depends on relay server availability (e.g., send.vis.ee); large files may hit limits (~5GB default); end-to-end encryption but trust relay for availability.
No built-in resume for interrupted uploads.

INSTALLATION

Via Cargo: cargo install ffsend-cli
Binaries: GitHub releases; Arch: AUR ffsend; Homebrew on macOS.

EXAMPLE

ffsend upload -p mypass file.zip → Generates URL like https://send.vis.ee/abc123/#mypa55

HISTORY

Created by Tim Schumacher (tmsch) in 2019 as Firefox Send CLI. Firefox Send discontinued 2020; ffsend pivoted to own relays like relay.ffsend.com. Actively maintained on GitHub (ffsend/ffsend), latest v1.3.x (2023). Written in Rust.

SEE ALSO

curl(1), wget(1), rclone(1), scp(1)

Copied to clipboard