Ffl
FastFileLink CLI - Turn any file or folder into a secure, sharable HTTPS link. π Direct transfer (P2P) .β‘ Absolute privacy (E2EE).π Single File, Run Anywhere
Install / Use
/learn @nuwainfo/FflREADME
FastFileLink CLI (ffl)
FastFileLink CLI (ffl) is an Actually Portable command-line tool that turns any file or folder into a secure HTTPS link, allowing two computers to simply and securely transfer files using real peer-to-peer (WebRTC) connections.
AFAIK, ffl is the only CLI file-transfer tool that does all of the following:
- π‘ Instant P2P file sharing using WebRTC
- π Automatic fallback to secure relay tunnels when NAT traversal fails β guarantees delivery
- π§βπ» Recipient doesnβt need to install anything β they can download via browser,
curl,ffl, etc. - π End-to-end encryption (AES-256-GCM) β relay/storage is zero-knowledge
- π Folder & stdin support β streaming, no need to zip/encrypt first, works even for TB-scale data
- β―οΈ Resume interrupted transfers
- π§± Actually Portable Executable (APE) + native builds for Windows, Linux, macOS
- π§° Built-in & pluggable tunnels (Cloudflare, ngrok, self-hosted, etc.) β supports proxies like Tor
- βοΈ Optional temporary upload to server (licensed feature) when both sides canβt be online simultaneously
β‘ At a glance: Think croc or magic-wormhole, but the recipient uses a standard browser/HTTPS link β no software installation required.
π How does it compare to other tools? See our Comparison Guide
π Official site: https://fastfilelink.com
This simple demo shows how I sent ffl.com from Windows (x64) to Android (arm64) and used it directly to transfer photos back.

The recipient doesn't need to install anything!
Verify the P2P connection and download speed in a modern browser:
https://github.com/user-attachments/assets/fe0d6bc6-3116-4633-9c42-41566fe5fd30
</details>Workflows like this also pair naturally with tools such as llamafile.
Table of Contents
- Installation
- Why APE and Native?
- Quickstart
- CLI Reference
- Features & Advanced Usage
- Privacy & Security
- How it Works & Motivation
- Open Source & Contributing
- Acknowledgements
Installation
You can download the latest release for your system, or install a release from the command-line:
β‘ Short URLs for convenience
We provide short domains for easier typing (or copy-pasting).
- Linux/macOS Install:
curl -fsSL https://fastfilelink.com/install.sh | bash- Windows Install:
iwr -useb https://fastfilelink.com/install.ps1 | iex- APE Binary:
curl -fL https://fastfilelink.com/ffl.com -o ffl.com && chmod +x ffl.com- Docker (Quick Run):
docker run --rm --network host -v $(pwd):/data fastfilelink/fflπ Security Note:
fastfilelink.com/*is only a redirect to GitHub. If you prefer, use the direct GitHub URLs below (checksums & GPG signatures available at the bottom).
Option 1: Native Installs
Note: Native builds are currently x86_64 only for Windows and Linux. macOS builds support both Intel and Apple Silicon (ARM64).
If you are on Linux ARM64 (e.g., Raspberry Pi), please use Option 2 (APE).
Linux / macOS
curl -fsSL https://raw.githubusercontent.com/nuwainfo/ffl/refs/heads/main/dist/install.sh | bash
Install for current user only:
FFL_PREFIX=$HOME/.local curl -fsSL https://raw.githubusercontent.com/nuwainfo/ffl/refs/heads/main/dist/install.sh | bash
Windows (PowerShell)
iwr -useb https://raw.githubusercontent.com/nuwainfo/ffl/refs/heads/main/dist/install.ps1 | iex
After installation, you should have ffl on your $PATH:
ffl --version
Option 2: The APE (Actually Portable Executable)
If you prefer a single-file binary that runs almost anywhere with zero dependencies:
Linux / macOS
curl -fL https://github.com/nuwainfo/ffl/releases/latest/download/ffl.com -o ffl.com
chmod +x ffl.com
# You can now run it directly: ./ffl.com
# Tip: mv ffl.com ~/.local/bin/ffl to run it as 'ffl' from anywhere
Windows (CMD / PowerShell)
curl.exe "https://github.com/nuwainfo/ffl/releases/latest/download/ffl.com" -o "ffl.com"
# Run as: .\ffl.com
# Tip: Move to a folder in your PATH to run from anywhere
Option 3: Build from source
If you prefer to build from source (requires conda and cargo):
# Linux
./BuildCLI.sh linux
# Mac
./BuildCLI.sh darwin
# Windows
conda create -n ffl python=3.12
conda activate ffl
pip install -r requirements.txt
.\BuildCLI.bat ffl
π Verifying Integrity (Optional)
For security-conscious users, we provide GPG signatures and checksums for all release artifacts.
<details> <summary><strong>Verifying Integrity (GPG)</strong></summary>These steps verify that the downloaded binary (e.g., ffl.com) matches the official release signed by our GPG key.
# 1. Import the public key
curl -sL https://raw.githubusercontent.com/nuwainfo/ffl/refs/heads/main/dist/ffl-release.signing.pub | gpg --import
# 2. Download checksums and signature
curl -LO https://github.com/nuwainfo/ffl/releases/latest/download/SHA256SUMS
curl -LO https://github.com/nuwainfo/ffl/releases/latest/download/SHA256SUMS.sig
# 3. Verify the checksum file itself
gpg --verify SHA256SUMS.sig SHA256SUMS
# 4. Verify the binary
# (Replace 'ffl.com' with your filename if you downloaded a native build)
# Linux:
grep "ffl.com" SHA256SUMS | sha256sum -c -
# macOS:
grep "ffl.com" SHA256SUMS | shasum -a 256 -c -
</details>
π Keeping ffl Updated
You don't need to visit GitHub to get the latest features. ffl handles updates automatically, respecting your current build type (Native or APE).
ffl upgrade
Note: If you installed ffl to a system directory (like /usr/local/bin), you may need to run this with sudo
Why Both APE and Native Executables Exist
The APE (Actually Portable Executable) build is cross-platform and runs on many OSes by emulating a POSIX environment (via Cosmopolitan Libc). This is powerful but makes platform-specific optimizations harder.
So ffl also ships native builds:
- Windows native build includes
winloop - Linux/macOS builds use
uvloop - Native builds can be smaller (e.g. no ARM64 inside x86_64 binary)
- In rare cases where the APE build has issues, native builds are a good fallback
If you just want βruns everywhere with zero setupβ, use APE.
If you care about maximum performance and smaller size on a specific platform, use native.
Don't worry too much about speed. In most cases, APE and native builds run almost equally fast. The main difference is binary size and platform-specific polish.
Quickstart
π Share a file, folder, or stream
# Share a local file
ffl myfile.zip
# Share a folder
ffl /path/to/folder
# Pipe data from stdin, --name is optional
mysqldump my_db | ffl - --name "db_backup.sql"
Youβll get a shareable link like:
https://4567.81.fastfilelink.com/abcd1234
- Recipient: Can download via Browser or CLI (e.g.,
curl -o file.zip <URL>). - Method: Prefers WebRTC P2P. If P2P fails, it automatically falls back to HTTPS relay via a tunnel (thirdβparty or our free unlimited tunnel).
Note: Standard CLI tools like
curlorwgetuse HTTPS only (Relay mode). If you want P2P speed on the receiving CLI, usefflto download.
π‘Tip: Use
curl -JLOorwget --content-dispositionto automatically save with the correct filename.
π Receive using ffl
ffl https://4567.81.fastfilelink.com/abcd1234
- Tries WebRTC P2P first.
- If NAT traversal fails, automatically resumes via HTTPS relay.
π³Docker:
# -v mounts your current dir to /data inside the container
docker run --rm --network host -v "$(pwd):/data" ffl myfile
Note:
- The command prints a public HTTPS link. Keep the container running until the recipient downloads.
--max-downloads 1will stop after one download.--network hostis not strictly required, but adding it can greatly improve the success rate of WebRTC connections. Otherwise, the transfer may fall back to Relay, which is slower.
π‘ Tip: Using Docker is ideal for environments where you cannot or do not want to execute external binaries. Just remember to mount your volumes.
For the complete command usage, please see https://hub.docker.com/r/fastfilelink/ffl
CLI Reference (short version)
For full help: ffl --help or ffl download --help
π Common Options
These options work for both sharing and downloading:
--proxy PROXY Proxy server for all outbound connections.
Supports SOCKS5 (default) and HTTP/HTTPS.
Formats:
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.2kCreate 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.
openai-whisper-api
340.5kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.2kCommit, push, and open a PR
