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

syq Fast, programmable file operations.

Copy, reorganize and remove files—locally or across machines. Resume interrupted transfers, send files to your laptop or run commands there from a server’s remote shell, and script syq using the JSON API or Python SDK. Your laptop needs no SSH server or incoming network port.

Try a copy

Replace server with an SSH hostname or alias you normally connect to, and project with a local directory:

syq cp project --to server --into backup

This creates or updates backup/project in your home directory on the server. To copy the contents of project directly into backup, use --srcs-in:

syq cp --srcs-in project --to server --into backup

Use --dry-run to preview a summary without copying, or --dry-run -v to list the planned changes by path. Existing destination files are updated when needed. Unrelated files stay unless you request --prune.

Already use rsync?

Start with your usual command, prefixed by syq:

syq rsync -av project/ server:backup/project/
syq rsync -av server:data/ ./data/

Syq supports common rsync options, but uses its own protocol. Rsync filter rules, hard links, ACLs, xattrs, sparse files, and rolling-checksum deltas are not supported. Check rsync compatibility before substituting it in an existing script.

Common tasks

I want to…Start here
Choose exactly where files landCopy and placement
Preview changesDry runs
Skip build files or use .gitignoreIgnoring paths
Mirror a directoryMirroring
Remove files in parallelRemoval
Send files to my laptop from a server’s shellReceiving files
Run a build or open an artifact on my desktop from a serverCommands on your receiving machine
Copy between two serversRemote-to-remote transfers
Rename or reorganize files during a copyMappings
Use syq from PythonPython SDK
Read results from a scriptAutomation results
Make copies fasterSpeed