Notice: the default Send host is provided by [@timvisee][timvisee] (info). Please consider to [donate] and help keep it running.
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.
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
For a list of upcoming features and ideas, take a look at the current open issues over on GitLab.
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.
apt install openssl ca-certificatesxclip or xsel for clipboard support
apt install xclipyum install xclippacman -S xclipcrypto-openssl feature: [» Installer][openssl-windows-installer] (v1.1.0j or above)crypto-openssl feature: brew install openssl@1.1pkg install opensslpkg install ca_root_nssxclip & xsel for clipboard support: pkg install xclip xsel-conradBecause 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:
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.
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.
[» ffsend][snapcraft-ffsend]
snap install ffsend ffsend --help
[» 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
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
Note: The Fedora package is maintained by contributors, and might be slightly outdated.
[» ffsend][fedora-ffsend]
sudo dnf install ffsend ffsend --help
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
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
Using the homebrew package is recommended.
Alternatively you may install it via MacPorts, or manually using the
prebuilt binaries.
Make sure you've [homebrew][homebrew] installed, and run:
brew install ffsend ffsend --help
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
Note: The Nix package is currently not automatically updated, and might be slightly outdated.
nix-channel --update nix-env --install ffsend ffsend --help
Check out the [latest release][github-latest-release] assets for a macOS binary. If it isn't available yet, you may use an artifact from a [previous version][github-releases] instead, until it is available.
Then, mark the downloaded binary as an executable.
You then may want to move it into /usr/local/bin/ to make the ffsend command
globally available:
# Rename file 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
Using the scoop package is recommended.
Alternatively you may install it manually using the
prebuilt binaries.
If you're using the [Windows Subsystem for Linux][wsl], it's highly recommended to install the prebuilt Linux binary instead.
Only 64-bit (x86_64) binaries are provided.
For other architectures and configurations you may compile from source.
A chocolatey package along with an .msi installer will be coming soon.
Make sure you've [scoop][scoop-install] installed, and run:
scoop install ffsend ffsend --help
Check out the [latest release][github-latest-release] assets for Windows binaries.
Use the ffsend-v*-windows-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.
You can use ffsend from the command line in the same directory:
.\ffsend.exe --help
To make it globally invocable as ffsend, you must make the binary available in
your systems PATH. The easiest solution is to move it into System32:
move .\ffsend.exe C:\Windows\System32\ffsend.exe
[» ffsend][freshports-ffsend]
Note: The FreeBSD package is currently maintained by FreeBSD contributors, and might be slightly outdated.
# Precompiled binary. pkg install ffsend # Compiles and installs from source. cd /usr/ports/www/ffsend && make install
ffsend can be used on Android through Termux, install it first:
[» Termux][termux]
Note: The Android package is currently maintained by Termux contributors, and might be slightly outdated.
# Install package. pkg install ffsend ffsend help
If your system runs Docker, you can use the docker image. There are currently no other binaries or packages available.
You can build the project from source instead.
A Docker image is available for using ffsend running in a container.
Mount a directory to /data, so it's accessible for ffsend in the container,
and use the command as you normally would.
[» timvisee/ffsend][docker-hub-ffsend]
# Invoke without arguments docker run --rm -it -v $(pwd):/data timvisee/ffsend # Upload my-file.txt docker run --rm -it -v $(pwd):/data timvisee/ffsend upload my-file.txt # Download from specified link docker run --rm -it -v $(pwd):/data timvisee/ffsend download https://send.vis.ee/#sample-share-url # Show help docker run --rm -it -v $(pwd):/data timvisee/ffsend help # To update the used image docker pull timvisee/ffsend
On Linux or macOS you might define a alias in your shell configuration, to make
it invocable as ffsend:
alias ffsend='docker run --rm -it -v "$(pwd):/data" timvisee/ffsend'
Note: This implementation is limited to accessing the paths you make available through the specified mount.
To build and install ffsend yourself, you meet the following requirements
before proceeding:
git][git]rust][rust] v1.63 (MSRV) or higher (install using [rustup][rustup])apt install build-essential cmake pkg-config libssl-devyum install gcc gcc-c++ make cmake openssl-develpacman -S openssl base-develemerge -a dev-util/pkgconfig dev-util/cmake dev-libs/openssldnf install gcc gcc-c++ make cmake openssl-develcrypto-openssl feature: See instructions here herecrypto-openssl feature: brew install cmake pkg-config openssl or see instructions herepkg install rust gmake pkgconf python36 libxcb xclip ca_root_nss xsel-conradffsend port, which manages dependencies for you.Then, walk through one of the following steps to compile and install ffsend:
Compile and install it directly from cargo:
# Compile and install from cargo cargo install ffsend -f # Start using ffsend ffsend --help
Or clone the repository and install it with cargo: