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.
| Tool | Average speed |
|---|---|
| syq | 159.1 MB/s |
| syq over SSH | 87.2 MB/s |
| rsync | 18.0 MB/s |
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.