Skip to content

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 ​

PlatformArchitectureBinary Name
Linuxx86_64 (AMD64)skysend-linux-x64
LinuxARM64 (aarch64)skysend-linux-arm64
macOSIntel (x86_64)skysend-macos-x64
macOSApple Silicon (ARM64)skysend-macos-arm64
Windowsx86_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:

bash
curl -fsSL https://skysend.app/install.sh | sh

To install a specific version or to a custom directory:

bash
VERSION=v2.11.3 curl -fsSL https://skysend.app/install.sh | sh
INSTALL_DIR=$HOME/.local/bin curl -fsSL https://skysend.app/install.sh | sh

macOS 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:

powershell
irm https://skysend.app/install.ps1 | iex

This 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:

powershell
$env:VERSION="v2.11.3"; irm https://skysend.app/install.ps1 | iex

Manual Download ​

Download the binary for your platform from the GitHub Releases page, make it executable, and move it to a directory in your PATH:

bash
chmod +x skysend-linux-x64
sudo mv skysend-linux-x64 /usr/local/bin/skysend

Configuration ​

Before uploading, set your default SkySend server:

bash
skysend config set-server https://your-instance.com

The 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:

  1. --server flag (highest)
  2. SKYSEND_SERVER environment variable
  3. Config file (~/.config/skysend/config.json)

View Config ​

bash
skysend config

WebSocket 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 ​

bash
skysend config reset

Updating ​

The CLI can update itself to the latest version:

bash
# Check for updates without installing
skysend update --check

# Download and install the latest version
skysend update

The update command:

  1. Checks the latest version from GitHub Releases
  2. Downloads the correct binary for your platform
  3. Verifies the SHA-256 checksum
  4. 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 ​

CommandDescription
skysendInteractive 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 lsList upload and note history
skysend delete <url> <ownerToken>Delete an upload or note
skysend configShow current configuration
skysend config set-server <url>Set default server
skysend config resetReset configuration
skysend updateSelf-update to latest version
skysend --versionShow current version
skysend --helpShow help

See Commands for detailed usage of each command.