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, including notes made of several blocks
- Delete uploads and notes using the owner token
- Authenticate with OIDC/SSO when required by the server (
auth login,auth logout,auth status) - 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.app/install.sh | shTo install a specific version or to a custom directory:
VERSION=v2.11.3 curl -fsSL https://skysend.app/install.sh | sh
INSTALL_DIR=$HOME/.local/bin curl -fsSL https://skysend.app/install.sh | shmacOS on Apple Silicon
The macOS binaries up to v2.12.2 carry an invalid signature, so macOS stops them right after they start and the shell only prints killed. skysend update cannot run either, so install the current version once more with the install script above. Pinning VERSION to v2.12.2 or older brings the problem back.
A binary downloaded through a browser is also held back by Gatekeeper, because it is signed without an Apple developer certificate. Use the install script, or remove the quarantine flag with xattr -d com.apple.quarantine skysend-macos-arm64.
Windows
Run in PowerShell:
irm https://skysend.app/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.11.3"; irm https://skysend.app/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
The CLI currently always uploads over HTTP chunks, even when the server offers WebSocket uploads. WebSocket uploads are disabled in the CLI until large transfers over HTTPS no longer break off midway.
skysend upload ./file.pdf --no-ws keeps an upload on HTTP chunks once WebSocket uploads return to the CLI.
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.