Ffsend
:mailbox_with_mail: Easily and securely share files from the command line. A fully featured Firefox Send client.
Install / Use
/learn @timvisee/FfsendREADME
Notice: the default Send host is provided by [@timvisee][timvisee] (info). Please consider to [donate] and help keep it running.
ffsend
Easily and securely share files from the command line. A [Send][send] client.
Easily and securely share files and directories from the command line through a safe, private and encrypted link using a single simple command. Files are shared using the [Send][send] service and may be up to 1GB. Others are able to download these files with this tool, or through their web browser.
[![ffsend usage demo][usage-demo-svg]][usage-demo-asciinema]
No demo visible here? View it on [asciinema][usage-demo-asciinema].
All files are always encrypted on the client, and secrets are never shared with the remote host. An optional password may be specified, and a default file lifetime of 1 (up to 20) download or 24 hours is enforced to ensure your stuff does not remain online forever. This provides a secure platform to share your files. Find out more about security here.
- Features
- Usage
- Requirements
- Install (Linux, macOS, Windows, FreeBSD, Android, Other OS/architecture)
- Build
- Configuration and environment
- Security
- Help
- Special thanks
- License
The public [Send][send] service that is used as default host is provided by
[@timvisee][timvisee] (info).
This application is not affiliated with [Firefox][firefox] or
[Mozilla][mozilla] in any way.
Note: this tool is currently in beta, as some extra desired features are yet to be implemented
Features
- Fully featured and friendly command line tool
- Upload and download files and directories securely, always encrypted on the client
- Additional password protection, generation and configurable download limits
- File and directory archiving and extraction
- Built-in share URL shortener and QR code generator
- Supports Send v3 (current) and v2
- History tracking your files for easy management
- Ability to use your own Send hosts
- Inspect or delete shared files
- Accurate error reporting
- Streaming encryption and uploading/downloading, very low memory footprint
- Intended for use in scripts without interaction
For a list of upcoming features and ideas, take a look at the current open issues over on GitLab.
Usage
Easily upload and download:
# Simple upload
$ ffsend upload my-file.txt
https://send.vis.ee/#sample-share-url
# Advanced upload
# - Specify a download limit of 1
# - Specify upload expiry time of 5 minutes
# - Enter a password to encrypt the file
# - Archive the file before uploading
# - Copy the shareable link to your clipboard
# - Open the shareable link in your browser
$ ffsend upload --downloads 1 --expiry-time 5m --password --archive --copy --open my-file.txt
Password: ******
https://send.vis.ee/#sample-share-url
# Upload to your own host
$ ffsend u -h https://example.com/ my-file.txt
https://example.com/#sample-share-url
# Simple download
$ ffsend download https://send.vis.ee/#sample-share-url
Inspect remote files:
# Check if a file exists
$ ffsend exists https://send.vis.ee/#sample-share-url
Exists: yes
# Fetch remote file info
$ ffsend info https://send.vis.ee/#sample-share-url
ID: b087066715
Name: my-file.txt
Size: 12 KiB
MIME: text/plain
Downloads: 0 of 10
Expiry: 18h2m (64928s)
Other commands include:
# View your file history
$ ffsend history
# LINK EXPIRE
1 https://send.vis.ee/#sample-share-url 23h57m
2 https://send.vis.ee/#other-sample-url 17h38m
3 https://example.com/#sample-share-url 37m30s
# Change the password after uploading
$ ffsend password https://send.vis.ee/#sample-share-url
Password: ******
# Delete a file
$ ffsend delete https://send.vis.ee/#sample-share-url
Use the --help flag, help subcommand, or see the help section for
all available subcommands.
Requirements
- Linux, macOS, Windows, FreeBSD, Android (other BSDs might work)
- A terminal :sunglasses:
- Internet connection
- Linux:
- OpenSSL & CA certificates:
- Ubuntu, Debian and derivatives:
apt install openssl ca-certificates
- Ubuntu, Debian and derivatives:
- Optional:
xcliporxselfor clipboard support- Ubuntu, Debian and derivatives:
apt install xclip - CentOS/Red Hat/openSUSE/Fedora:
yum install xclip - Arch:
pacman -S xclip
- Ubuntu, Debian and derivatives:
- OpenSSL & CA certificates:
- Windows specific:
- Optional OpenSSL with
crypto-opensslfeature: [» Installer][openssl-windows-installer] (v1.1.0jor above)
- Optional OpenSSL with
- macOS specific:
- Optional OpenSSL with
crypto-opensslfeature:brew install openssl@1.1
- Optional OpenSSL with
- FreeBSD specific:
- OpenSSL:
pkg install openssl - CA certificates:
pkg install ca_root_nss - Optional
xclip&xselfor clipboard support:pkg install xclip xsel-conrad
- OpenSSL:
- Android specific:
- Termux: [» Termux][termux]
Install
Because ffsend is still in early stages, only limited installation options are
available right now. Feel free to contribute additional packages.
Make sure you meet and install the requirements.
See the operating system specific instructions below:
Linux (all distributions)
Using the snap package is recommended if supported.
Alternatively you may install it manually using the
prebuilt binaries.
Only 64-bit (x86_64) packages and binaries are provided.
For other architectures and configurations you may compile from source.
More packages options will be coming soon.
Linux: snap package
Note: The ffsend snap package is isolated, and can only access files in
your home directory. Choose a different installation option if you don't want
this limitation.
Note: due to how snap is configured by default, you won't be able to use the
package from some contexts such as through SSH without manual modifications. If
you're experiencing problems, please refer to a different installation method
such as the prebuilt binaries, or open an issue.
_Note: if you want to read/write to a flash drive run snap connect ffsend:removable-media
[» ffsend][snapcraft-ffsend]
snap install ffsend
ffsend --help
Linux: Arch AUR packages
[» ffsend-bin][aur-ffsend-bin] (precompiled binary, latest release, recommended)
[» ffsend][aur-ffsend] (compiles from source, latest release)
[» ffsend-git][aur-ffsend-git] (compiles from source, latest master commit)
yay -S ffsend
# or
aurto add ffsend-bin
sudo pacman -S ffsend-bin
# or using any other AUR helper
ffsend --help
Linux: Nix package
Note: The Nix package is currently not automatically updated, and might be slightly outdated.
[» ffsend][nix-ffsend]
nix-channel --update
nix-env --install ffsend
ffsend --help
Linux: Fedora package
Note: The Fedora package is maintained by contributors, and might be slightly outdated.
[» ffsend][fedora-ffsend]
sudo dnf install ffsend
ffsend --help
Linux: Alpine package
Note: The Alpine package is maintained by contributors, it might be outdated. Choose a different installation method if an important update is missing.
[» ffsend][alpine-ffsend]
apk add ffsend --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
ffsend --help
Linux: Prebuilt binaries
Check out the [latest release][github-latest-release] assets for Linux binaries.
Use the ffsend-v*-linux-x64-static binary, to minimize the chance for issues.
If it isn't available yet, you may use an artifact from a
[previous version][github-releases] instead, until it is available.
Make sure you meet and install the requirements before you continue.
You must make the binary executable, and may want to move it into /usr/bin to
make it easily executable:
# Rename binary to ffsend
mv ./ffsend-* ./ffsend
# Mark binary as executable
chmod a+x ./ffsend
# Move binary into path, to make it easily usable
sudo mv ./ffsend /usr/local/bin/
ffsend --help
macOS
Using the homebrew package is recommended.
Alternatively you may install it via MacPorts, or manually using the
prebuilt binaries.
macOS: homebrew package
Make sure you've [homebrew][homebrew] installed, and run:
brew install ffsend
ffsend --help
macOS: MacPorts
Note: ffsend in MacPorts is currently not automatically updated, and might be slightly outdated.
Once you have MacPorts installed, you can run:
sudo port selfupdate
sudo port install ffsend
macOS: Nix package
Note: The Nix package is currently not automatically updated, and might be slightly outdated.
nix-channel --update
nix-env --install ffsend
ffsend --help
macOS: Prebuilt binaries
Check out the [lates
Related Skills
himalaya
341.6kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
node-connect
341.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
coding-agent
341.6kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
