Skip to content
A macOS GUI for rsync
Swift Shell C Ruby Python AppleScript Makefile
Branch: master
Clone or download
Latest commit 38f5b5e Dec 10, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
3thparty/ Update create-dmg Oct 8, 2019
RsyncOSX.xcodeproj Update project.pbxproj Dec 3, 2019
RsyncOSX swiftformat Dec 10, 2019
RsyncOSXTests remote sync arguments Dec 8, 2019
Scripts/Templates/DMG update Jul 26, 2019
XCTestconfiguration remote sync arguments Dec 8, 2019
icon update Jul 26, 2019
images Cleanup Jul 26, 2019
swift-scripts Update Aug 17, 2019
versionRsyncOSX Update versionRsyncOSX.plist Nov 10, 2019
.gitignore update Dec 9, 2019
Licence.MD Updated Licence to MIT May 2, 2017
Makefile notarize Oct 23, 2018 Update Dec 10, 2019
_config.yml Set theme jekyll-theme-cayman Dec 5, 2017
info.plist update Dec 10, 2019


Please read the Changelog. If you want to discuss changes or report bugs please create an Issue.

Read about the --delete parameter (below) to rsync before using rsync and RsyncOSX.

RsyncOSX is a GUI on top of the command line utility rsync. Rsync is a file-based synchronization and backup tool. There is no custom solution for the backup archive. You can quit utilizing RsyncOSX (and rsync) at any time and still have access to all synchronized files.

RsyncOSX is compiled with support for macOS El Capitan version 10.11 - macOS Catalina version 10.15. The application is implemented in Swift 5 by using Xcode 11. RsyncOSX is not depended upon any third party binary distributions. There is, however, one third party source code included to check for TCP connections.

Scheduled tasks are added and deleted within RsyncOSX. Executing the scheduled tasks is by the menu app.

RsyncOSX is dependent on setting up password less logins for remote servers. Both ssh-keys and rsync daemon setup are enabled. It is advised utilizing ssh-keys.

Signing and notarizing

The app is signed with my Apple ID developer certificate and notarized by Apple. See signing and notarizing for info. Signing and notarizing is required to run on macOS Catalina.


RsyncOSX speaks new languages. RsyncOSX is localized to:

  • Chinese (Simplified) - by StringKe
  • Norwegian - by me
  • English - the base language of RsyncOSX

RsyncOSX is prepared for new languages.

Please read this

Is RsyncOSX easy to use or a backup tool for the average user? If you have some understanding of how to use rsync, it is helpful for understand the use of RsyncOSX. If you don't know what rsync is I recommend to read about rsync before commencing use of RsyncOSX.

RsyncOSX is not developed to be an easy synchronize and backup tool. The main purpose is to ease the use of rsync and synchronize files on your Mac to remote FreeBSD and Linux servers. And of course restore files from remote servers. The UX might be difficult to understand if you don't know rsync.

RsyncOSX supports synchronize files and snapshots of files. It is important you understand either what synchronize is and snapshot before using RsyncOSX.

If your plan is to use RsyncOSX as your main tool for backup of files, please investigate and understand the limits of RsyncOSX and rsync. RsyncOSX is quite powerful, but it is might not the primary backup tool for the average user of macOS.

There is a short intro to RsyncOSX and some more documentation of RsyncOSX.

Version of rsync

RsyncOSX is only verified with rsync versions 2.6.9, 3.1.2 and 3.1.3. Other versions of rsync will work but numbers about transferred files is not set in logs. It is recommended to install the latest version of rsync.

If you are only looking for utilizing stock version of rsync (version 2.6.9) and only synchronize data to either local attached disks or remote servers, there is a minor version (RsynGUI) available on Mac App Store. RsyncGUI does not support snapshots or scheduling task.

The --delete parameter

For your own safety please read and understand the following:

Caution about RsyncOSX and the `--delete` parameter. The `--delete` is a default parameter.
The parameter instructs rsync to keep the source and destination synchronized (in sync).
The parameter instructs rsync to delete all files in the destination which are not present
in the source.

Every time you add a new task to RsyncOSX, execute an estimation run (--dry-run) and inspect
the result before executing a real run. If you by accident set an empty catalog as source
RsyncOSX (rsync) will delete all files in the destination.

To save deleted and changes files either utilize snapshots (
or the `--backup` feature (

The --delete parameter and other default parameters might be deleted if wanted.

Main view

The main view of RsyncOSX. Prepare for synchronizing tasks.

A Sandboxed version

There is also released a minor version, RsyncGUI of RsyncOSX on Apple Mac App Store. See the changelog. RsyncGUI utilizes stock version of rsync in macOS and RsyncGUI only supports synchronize task (no snapshots).

About bugs and crash?

What happens if bugs occurs during execution of tasks in RsyncOSX?. Fighting bugs are difficult. I am not able to test RsyncOSX for all possible user interactions and use. From time to time I discover new bugs. But I also need support from other users discovering bugs or not expected results. If you discover a bug please use the issues and report it.

About restoring files to a temporary restore catalog

If you do a restore from the remote to the source, some files in the source might be deleted. This is due to how rsync works in synchronize mode. As a precaution never do a restore directly from the remote to the source, always do a restore to a temporary restore catalog.

Application icon

The application icon is created by Zsolt Sándor. All rights reserved to Zsolt Sándor.

How to use RsyncOSX - YouTube videos

There are four short YouTube videos of RsyncOSX:

  • getting RsyncOSX and installing it
    • the video also shows how to create the two local ssh certificates for password less logins to remote server
  • adding and executing the first backup
  • doing a full restore to a temporary local restore catalogs
  • how to change version of rsync utilized by RsyncOSX

SwiftLint and SwiftFormat

I am using SwiftLint as tool for writing more readable code. I am also using Paul Taykalo´s swift-scripts to find and delete not used code. Another tool is SwiftFormat for formatting swift code.

There are about 130 classes with 14,900 lines of code in RsyncOSX.


To compile the code, install Xcode and open the RsyncOSX project file. Before compiling, open in Xcode the RsyncOSX/General preference page and replace with your own credentials in Signing, or disable Signing.

There are two ways to compile, either utilize make or compile by Xcode. make release will compile the and make dmg will make a dmg file to be released. The build of dmg files are by utilizing andreyvit script for creating dmg and syncthing-macos setup.

Xliff and translating

Translating RsyncOSX is done by utilizing the Xlifftool. The tool reads a xliff file. The xliff file is imported into RsyncOSX by Xcode.


XCTest configurations are in development.

You can’t perform that action at this time.