Skip to content

boundlessend/rsync-builder

Repository files navigation

rsync builder app icon

rsync builder

Language: EN | RU

assemble and run rsync commands from the menu bar

CI Release DMG macOS Swift license

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.

Features

  • 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); --exclude patterns in a popover
  • Extra options popover: -z compress, -P progress, -u update, --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

Install

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 from source

./build.sh            # release build -> rsync-builder.app
open rsync-builder.app

Development (hot reload)

./dev.sh              # debug build with -interposable

With 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.

Tests

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

Dependencies

  • 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.

License

BSD 3-Clause. See LICENSE.

About

macOS menu bar app to build and run rsync commands (SwiftUI)

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors