RsyncUI for macOS: GUI task and argument control
A SwiftUI based macOS GUI for rsync.
At a glance
- What is it?
- RsyncUI is a SwiftUI desktop interface for rsync on macOS Sonoma and later. It organizes tasks and configures rsync parameters while retaining rsync as the underlying synchronization engine.
- Who is it for?
- Adopt RsyncUI if you want a native macOS interface for organizing rsync tasks and configuring arguments without maintaining every task as a shell command. Do not choose it if you need Linux, Windows, or a headless deployment, or if you require documented rollback procedures that the README does not provide.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Swift, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
RsyncUI's macOS-specific rsync control plane
RsyncUI solves the interface problem around rsync without replacing rsync itself. The README describes it as a SwiftUI macOS GUI that handles task organization and parameter configuration. Its target users are people who need to create or manage rsync operations from a desktop application but do not want to construct every invocation at the command line.
The platform boundary is firm. RsyncUI requires macOS Sonoma or later, so it is not a portable choice for Linux, Windows, or a server administration workflow without a Mac interface. The repository also contains an Xcode project, Swift source, tests, an XPC directory, a widget estimate target, and version files. Based on that layout, this is a full macOS application rather than a command-line package or a browser administration panel.
The application is signed and notarized by Apple according to the installation section. That fact applies to releases obtained from the documented distribution paths. It should not be confused with the local release-build workflow in the Makefile, where notarization and signing are separate targets controlled by an export options plist.
From saved task parameters to streamed rsync results
RsyncUI separates the application layer from rsync execution through several Swift packages. `RsyncArguments` builds arguments for synchronization, dry runs, snapshots, restoration, verification, and remote file listings. That division gives the GUI a defined place to translate configured tasks into command-line arguments without embedding all argument construction in its views.
Execution and output handling are separate concerns as well. `RsyncProcessStreaming` runs rsync processes and streams output to handlers for progress, errors, and completion. `ParseRsyncOutput` converts rsync output into statistics such as file counts, created and deleted files, and data sizes. Those values can then support estimates and execution results in the interface.
Persistent data uses another package, `DecodeEncodeGeneric`, which encodes application data as JSON. Other supporting packages handle SSH key creation, connection checks, snapshot deletion, and deep links. `RsyncUIDeepLinks` creates, parses, and validates URLs for profile actions and widget integration. This architecture suggests a flow from configured profile data, through generated rsync or SSH arguments, into a streamed process whose output is parsed for progress and results.
Installing RsyncUI and locating the first task workflow
The README documents installation through Homebrew on a Mac running Sonoma or later. Run this command in a terminal:
brew install --cask rsyncuiThe `brew install --cask` form installs the packaged macOS application rather than requiring a command-line build of the Swift project. If Homebrew is not the preferred route, the documented alternative is the GitHub releases page. Release downloads are described as signed and notarized by Apple.
After installation, launch RsyncUI from macOS and use the linked user documentation for the exact task-creation screens and field labels. The available repository information confirms that tasks and rsync parameters can be configured, but it does not include a documented sequence for entering a first source, destination, or parameter set. The README also does not provide a sample task, so a precise dry-run walkthrough cannot be reproduced without guessing at the interface.
That missing tutorial is a documentation limitation rather than evidence that first-run configuration is impossible. The safest documented starting point is to create a task for a synchronization you already understand, configure its rsync parameters through the application, and consult the project documentation for the current controls. RsyncUI's `RsyncArguments` package includes dry-run support, but the README does not document how a user selects it in the interface.
RsyncUI package boundaries and source-build costs
A source build requires more than installing the Homebrew cask. The repository includes a normal Swift application target, an Xcode project, package dependencies, a widget estimate target, tests, and XPC code. The Makefile builds an archive through `xcodebuild`, exports it with `-exportOptionsPlist`, and packages the resulting application with `ditto`.
The Makefile excerpt also exposes a release-versus-debug distinction. Its default `build` target runs `clean archive notarize sign prepare-dmg open`, while `debug` runs `clean archive-debug open-debug`. The debug build is explicitly documented as skipping notarization and signing. For maintainers producing local debug artifacts, that avoids the Apple release-signing path, but it also means the result is not equivalent to a signed and notarized release.
The excerpt does not provide the complete contents of the signing and notarization targets, so credentials, profiles, team identifiers, and other required configuration cannot be reconstructed from the available repository text. The `APP` and `BUNDLE_ID` variables are defined as `RsyncUI` and `no.blogspot.$(APP)`, and the version is extracted from `MARKETING_VERSION` in `RsyncUI.xcodeproj/project.pbxproj`. Anyone evaluating source builds should therefore distinguish ordinary application compilation from the additional Apple distribution work performed by the release workflow.
Where RsyncUI differs from direct rsync use
Direct rsync use places argument construction, process observation, and interpretation of transfer output in scripts or terminals. RsyncUI moves those activities into a macOS application. According to the package table, its argument builder covers several operation types, its process package streams progress and errors, and its parser turns rsync output into file and data statistics. The resulting interface is closer to a managed desktop task list than a one-command terminal session.
This is not equivalent to implementing a different synchronization algorithm. The README identifies rsync as the underlying tool, while RsyncUI manages the surrounding configuration and execution experience. A user who needs an exact, easily audited command line with no macOS GUI may prefer rsync directly. Someone who repeatedly manages multiple operations, profiles, connection checks, snapshots, or verification may find the application model more relevant.
The trade-off is platform and abstraction cost. RsyncUI supports macOS Sonoma or later, while direct rsync workflows can be embedded in scripts and managed on other systems where rsync runs. The application also adds JSON persistence, SwiftUI presentation, deep-link handling, widgets, XPC, and Apple distribution concerns. That is useful for a desktop workflow, but it creates more components to understand when diagnosing an issue or building from source.
RsyncUI boundaries, failures, and upgrade considerations
The clearest failure boundary is compatibility. The stated requirement is macOS Sonoma or later. The repository topics include macOS Sonoma and macOS Tahoe, but the README does not document behavior on earlier releases, and it provides no compatibility fallback. Installing the cask on an unsupported macOS version is therefore outside the documented operating range.
A second limitation concerns visibility and rollback. The package list confirms support for dry runs, verification, snapshots, and restoration, yet the README does not explain how users select each feature or how they recover a failed task from the interface. It also does not document rollback of an application upgrade or preservation of task configuration across versions. Those are meaningful gaps for a tool that stores application data and may coordinate file transfer jobs.
Release information also needs care. The repository release list includes v3.0.6 dated September 30, 2026, while the README's latest-release section names v3.0.5 dated September 10, 2026. Users should use the releases page for the available artifact rather than assuming the README section is synchronized with repository releases.
The repository is not archived, and its last push was on 2026-10-16. Under the MIT license, the source is permissively licensed, but integrators still need to inspect the license text and comply with its notice requirements rather than treating this review as legal advice.
Editorial conclusion
Adopt RsyncUI if you want a native macOS interface for organizing rsync tasks and configuring arguments without maintaining every task as a shell command. Do not choose it if you need Linux, Windows, or a headless deployment, or if you require documented rollback procedures that the README does not provide. Verify first that your required macOS version is Sonoma or later, your release architecture works with your Mac, and the generated rsync arguments match the source and destination behavior you expect. For v3.0.6 and later source builds, the signing and notarization path also needs Apple credentials because the debug target deliberately skips both steps.
Frequently asked questions
What are the system requirements for RsyncUI?
RsyncUI requires macOS Sonoma or later. It is not documented as a cross-platform application for Linux or Windows.
How do I install RsyncUI on macOS?
The README documents `brew install --cask rsyncui`. It also offers the GitHub releases page as a direct-download alternative, and says those releases are signed and notarized by Apple.
Does RsyncUI replace rsync itself?
No. RsyncUI is a SwiftUI GUI for rsync that organizes tasks and configures parameters while `RsyncProcessStreaming` runs rsync processes.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/rsyncosx-rsyncui)Was this useful?