← All posts
#terminal#ssh#rsync#zsh#open source

syncpick

An interactive terminal picker for safely copying selected folders from SSH servers with rsync.

An interactive terminal picker for safely copying selected folders from SSH servers with rsync.

Overview

syncpick is a small, interactive Zsh tool for a task that used to live in a long rsync command: choosing a few folders from an SSH server and copying them to a local machine.

I had versions of this workflow as a personal tool for many years. In 2026 I cleaned it up, removed the assumptions tied to my own setup, documented it, and released it as open source under the MIT licence.

How it works

Configure a server once with its SSH host and the remote roots to browse. From there, syncpick uses fzf to choose a server and mark the folders to copy. The picker distinguishes the current cursor from the queued folders, shows an optional queue panel for longer lists, and presents the exact transfer list before starting.

brew install Cyberlane/tap/syncpick
syncpick --init

The tool runs on macOS and Linux with Zsh, SSH, rsync, and fzf available.

Safety and privacy

syncpick confirms real transfers by default, does not remove unmatched local files unless --delete is explicitly enabled, and supports --dry-run for checking a transfer before it runs. Its local profiles use XDG configuration and state directories with private permissions; passwords, private keys, and passphrases are not stored by the tool.

For the full setup guide, demo, and source code, see the syncpick repository.

syncpick

An interactive terminal picker for safely copying selected folders from SSH servers with rsync.

An interactive terminal picker for safely copying selected folders from SSH servers with rsync.

Overview

syncpick is a small, interactive Zsh tool for a task that used to live in a long rsync command: choosing a few folders from an SSH server and copying them to a local machine.

I had versions of this workflow as a personal tool for many years. In 2026 I cleaned it up, removed the assumptions tied to my own setup, documented it, and released it as open source under the MIT licence.

How it works

Configure a server once with its SSH host and the remote roots to browse. From there, syncpick uses fzf to choose a server and mark the folders to copy. The picker distinguishes the current cursor from the queued folders, shows an optional queue panel for longer lists, and presents the exact transfer list before starting.

brew install Cyberlane/tap/syncpick
syncpick --init

The tool runs on macOS and Linux with Zsh, SSH, rsync, and fzf available.

Safety and privacy

syncpick confirms real transfers by default, does not remove unmatched local files unless --delete is explicitly enabled, and supports --dry-run for checking a transfer before it runs. Its local profiles use XDG configuration and state directories with private permissions; passwords, private keys, and passphrases are not stored by the tool.

For the full setup guide, demo, and source code, see the syncpick repository.