End-to-End Encryption
Mandatory AES-256-GCM encryption with HKDF-SHA256 key derivation.
Secure, encrypted file transfer via QR codes.
Send files from desktop to mobile or mobile to desktop with end-to-end encryption and checksum verification.
curl -fsSL https://raw.githubusercontent.com/thecodefreak/xfer/main/install.sh | bash
go install github.com/thecodefreak/xfer/cmd/xfer@latest
Releases: Install prebuilt xfer-server binary from GitHub Releases
docker run -d \
-e XFER_BASE_URL=https://xfer.example.com \
-p 127.0.0.1:8080:8080 \
ghcr.io/thecodefreak/xfer:latest
services:
xfer:
image: ghcr.io/thecodefreak/xfer:latest
environment:
XFER_BASE_URL: https://xfer.example.com
XFER_PORT: 8080
XFER_SESSION_TTL: 5m
XFER_MAX_SIZE: 209715200
ports:
- "127.0.0.1:8080:8080"
restart: unless-stopped
Mandatory AES-256-GCM encryption with HKDF-SHA256 key derivation.
Sender succeeds only after receiver finalizes and checksum verification passes.
Designed to work behind NAT/firewalls using a secure relay transport.
Argon2id password protection for transfers that need extra access control.
xfer send photo.jpg
xfer send --password document.pdf
xfer send file1.txt file2.txt folder/
xfer receive
xfer receive ~/Downloads/
xfer send <files...>
xfer receive [path]
xfer config <get|set|list|reset>
xfer version
Config file path: ~/.config/xfer/config.yaml
server: "https://xfer.example.com"
timeout: 10m
output-dir: "."
progress: true
history: true
hide-filenames: false
Encrypts files and emits QR payload.
Blind transport for encrypted chunks.
Decrypts locally and finalizes transfer.
xfer send ... from the CLI.Move screenshots, logs, and exports quickly without cloud upload steps.
Scan once from terminal and receive photos or docs directly into downloads.
Use optional password mode for one-time sensitive file handoff.
Run the relay in your infra and keep transfer control inside your environment.
Container image: ghcr.io/thecodefreak/xfer
docker run -d \
-e XFER_BASE_URL=https://xfer.example.com \
-p 127.0.0.1:8080:8080 \
ghcr.io/thecodefreak/xfer:latest
services:
xfer:
image: ghcr.io/thecodefreak/xfer:latest
environment:
XFER_BASE_URL: https://xfer.example.com
XFER_PORT: 8080
XFER_SESSION_TTL: 5m
XFER_MAX_SIZE: 209715200
ports:
- "127.0.0.1:8080:8080"
restart: unless-stopped