Language: EN | RU
assemble and run rsync commands from the menu bar
rsync builder is a small native macOS menu bar app that helps you assemble rsync
commands for moving files between your Mac and a server. It lives in the menu bar
(no Dock icon); click its icon to open a compact panel that shows the live command,
copies it to the clipboard, or runs it in a terminal.
- Lives in the menu bar, opens as a popover panel (no Dock icon, no main window)
- Upload / download direction with source ⇄ destination labels
- Server profiles (
user@host, port, remote path), saved locally and picked from a menu - Import existing servers from
~/.ssh/config(the same file VS Code Remote-SSH uses) via the "•••" menu - Drag a file or folder onto the local field to fill its full path
- Toggle common flags (
-a,-v,-c);--excludepatterns in a popover - Extra options popover:
-zcompress,-Pprogress,-uupdate,--delete,--stats,--bwlimit - Deploy helpers:
--no-owner --no-group,--mkpath,--chmod, sudo on the server, and an upload-only post-sync command run over ssh (e.g.cd ~/app && docker compose up -d) - Preview button: a dry run (
-n) to see what would transfer before doing it - Every toggle has a tooltip explaining what the flag does
- Live command with shell-safe quoting of paths
- Optional SSH password field (kept in memory only) so a run needs no terminal; leave empty for key-based login
- Run and Preview execute inline: a spinner in the button, a brief success check, or an in-panel error banner with the output
- Copy to clipboard; a "Run in terminal" fallback lives in the "•••" menu for 2FA / host-key confirmation
- Interface language follows your system by default (English / Русский), switchable in Settings
- Check for updates from the "•••" menu: compares your version against the latest GitHub release
Download rsync-builder.dmg from the latest release,
open it, and drag rsync builder into Applications. The icon appears in the
menu bar; open ••• → Quit to quit, ••• → Settings… for preferences.
It is not signed or notarized, so on first launch right-click the app and choose Open, then confirm. Requires macOS 26 or later.
./build.sh # release build -> rsync-builder.app
open rsync-builder.app./dev.sh # debug build with -interposableWith InjectionIII running, method-body
edits are hot-swapped at runtime. There is no Inject dependency, so SwiftUI views
do not auto-refresh - it is a plain debug build plus -interposable.
swiftc Sources/rsync-builder/Command.swift tests/main.swift -o /tmp/rsync_check && /tmp/rsync_check # logic
swiftc Sources/rsync-builder/Command.swift tests/smoke.swift -o /tmp/rsync_smoke && /tmp/rsync_smoke # smoke: local rsync + SSH_ASKPASS wiring- SwiftTerm - terminal window for running the command
- Pow - button animations
- Defaults - server profile persistence
- Liquid Glass - native macOS 26, no dependency
Your real servers are never stored in source: the code ships with a single
example profile, and profiles you save live only in local UserDefaults.
BSD 3-Clause. See LICENSE.