CLI Client
SkySend includes a command-line client for uploading and downloading files with the same end-to-end encryption as the web interface. It is distributed as a single binary - no runtime dependencies required.
Overview
The CLI client (skysend) lets you:
- Upload single or multiple files with E2E encryption
- Download and decrypt files from a share URL
- Create encrypted notes (text, password, code, markdown, SSH keys)
- View encrypted notes from the terminal
- Delete uploads and notes using the owner token
- Self-update to the latest version from GitHub Releases
- Interactive mode with menu-driven TUI - displays server config, limits, and quota
All cryptographic operations use the same @skysend/crypto library as the web frontend - AES-256-GCM streaming encryption, HKDF-SHA256 key derivation, and Argon2id password protection.
Supported Platforms
| Platform | Architecture | Binary Name |
|---|---|---|
| Linux | x86_64 (AMD64) | skysend-linux-x64 |
| Linux | ARM64 (aarch64) | skysend-linux-arm64 |
| macOS | Intel (x86_64) | skysend-macos-x64 |
| macOS | Apple Silicon (ARM64) | skysend-macos-arm64 |
| Windows | x86_64 (AMD64) | skysend-windows-x64.exe |
Binaries are compiled with Bun and published as GitHub Release assets.
Installation
Linux / macOS
The install script automatically detects your OS and architecture, downloads the correct binary, verifies the SHA-256 checksum, and installs it to /usr/local/bin:
curl -fsSL https://skysend.ch/install.sh | shTo install a specific version or to a custom directory:
VERSION=v2.4.0 curl -fsSL https://skysend.ch/install.sh | sh
INSTALL_DIR=$HOME/.local/bin curl -fsSL https://skysend.ch/install.sh | shWindows
Run in PowerShell:
irm https://skysend.ch/install.ps1 | iexThis installs skysend.exe to ~/.skysend/bin and adds it to your user PATH. Restart your terminal for PATH changes to take effect.
To install a specific version:
$env:VERSION="v2.4.0"; irm https://skysend.ch/install.ps1 | iexManual Download
Download the binary for your platform from the GitHub Releases page, make it executable, and move it to a directory in your PATH:
chmod +x skysend-linux-x64
sudo mv skysend-linux-x64 /usr/local/bin/skysendConfiguration
Before uploading, set your default SkySend server:
skysend config set-server https://your-instance.comThe config is stored at ~/.config/skysend/config.json (or $XDG_CONFIG_HOME/skysend/config.json).
You can also set the server per-command with --server or via the SKYSEND_SERVER environment variable.
Priority order:
--serverflag (highest)SKYSEND_SERVERenvironment variable- Config file (
~/.config/skysend/config.json)
View Config
skysend configWebSocket Transport
By default, the CLI uses WebSocket upload transport (if the server supports it) with automatic fallback to HTTP chunked upload. You can disable WebSocket in two ways:
- CLI flag:
skysend upload ./file.pdf --no-ws - TUI Settings: Toggle "WebSocket upload" in the interactive Settings menu
- Config file: Set
"websocket": falsein~/.config/skysend/config.json
Reset Config
skysend config resetUpdating
The CLI can update itself to the latest version:
# Check for updates without installing
skysend update --check
# Download and install the latest version
skysend updateThe update command:
- Checks the latest version from GitHub Releases
- Downloads the correct binary for your platform
- Verifies the SHA-256 checksum
- Atomically replaces the running binary
TIP
On Linux/macOS, you may need sudo if the binary is installed in /usr/local/bin. Alternatively, re-run the install script.
Quick Reference
| Command | Description |
|---|---|
skysend | Interactive menu-driven mode (recommended) |
skysend upload <files...> | Upload files with E2E encryption |
skysend download <url> | Download and decrypt a file |
skysend note <text> | Create an encrypted note |
skysend note:view <url> | View an encrypted note |
skysend ls | List upload and note history |
skysend delete <url> <ownerToken> | Delete an upload or note |
skysend config | Show current configuration |
skysend config set-server <url> | Set default server |
skysend config reset | Reset configuration |
skysend update | Self-update to latest version |
skysend --version | Show current version |
skysend --help | Show help |
See Commands for detailed usage of each command.