Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Install

Syq runs on Linux and macOS, on x86-64 and ARM64.

Standalone installer

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/greaber/syq/releases/latest/download/install.sh | sh

Installs into ~/.local/bin without sudo. Make sure that directory is on your PATH. To choose another directory, download the script and run sh install.sh --bin-dir DIR.

Homebrew

brew install greaber/tap/syq

Try a benchmark

Compare syq with rsync on your own machines, or with rsync and cp locally:

curl --proto '=https' --tlsv1.2 -fLsS https://raw.githubusercontent.com/greaber/syq/master/scripts/try-benchmark.sh | bash

The default sends 1,024 small throwaway files to an SSH host you choose and compares syq with rsync over three rounds, following an untimed tuning warm-up (--warmup off skips it). Local copies, large files, and automatic sizing are optional. The script checks the copied contents and cleans up afterward. If syq is missing, it offers to install it. See quick comparison to download the script and run it again.

Published example: Germany → US East Coast
ToolAverage speed
syq159.1 MB/s
syq over SSH87.2 MB/s
rsync18.0 MB/s
One 1.07 GB file, held in memory at both ends; three runs per tool. From the separate syq-bench project, which provides more extensive benchmarks. Your results will depend on your machines and connection.

Updates

Use syq --self-update for a standalone installation, or brew upgrade syq for Homebrew.

Standalone installs print an update reminder; nothing updates automatically. Set SYQ_NO_UPDATE_CHECK=1 to disable reminders.

Shell completion

Add the line for your shell to its startup file:

# Bash (~/.bashrc)
eval "$(syq completion bash)"

# Zsh (~/.zshrc), after autoload -Uz compinit && compinit
source <(syq completion zsh)

# fish (~/.config/fish/config.fish)
syq completion fish | source

Completion suggests options, hosts, and paths, with file details beside path matches. In Bash, press Tab again to list matches. Remote paths use your usual SSH login. Open a new shell after adding the setup line or upgrading syq.

Keep connections open

Keep an SSH connection ready for repeated copies:

syq persist connect server

This enables persistence and connects without copying files. It also lets you send files back from the server, with approval on your machine. Connections stay open until you close them with syq persist off. Use syq persist status to see them.

See background connections for reconnecting, turning receiving off, and using persistence in scripts.