What is RoboSync?
RoboSync is a Windows desktop application that puts a graphical interface in front of Robocopy.exe, the file copy command that ships with Windows. The user picks a source and a destination folder, chooses one of four operation modes (Copy, Mirror, Move or Sync), sets options with checkboxes and starts the job. The application generates the equivalent Robocopy command, shows it in a live preview, runs it and reports progress and log output while it executes. The public repository is named robocopygui.
The project is developed by Navanem, a web agency that lists RoboSync among its open-source projects on its project page. The code is published under the MIT license. The README describes the current state as a v1.0 MVP in which the copy, mirror, move and sync workflows, filtering, retries, live progress, logging, saved jobs and the command preview are implemented.
The first release, v1.0.0 (June 14, 2026), attached a standalone executable, RoboSync-v1.0.0-win-x64.exe, for 64-bit Windows 10 and 11 that does not require a separate .NET installation. The latest release, v1.0.1 (September 6, 2026), is a maintenance release: it adds .NET 8 restore, test and build validation in CI, updates the test SDK, xUnit and coverage tooling, and adds Dependabot, contribution, security and protected-branch configuration. Its release notes state that application behavior is unchanged, and it has no attached binary.
The application is written in C# on .NET 8 with WPF and a hand-written MVVM layer, without a third-party MVVM framework. The solution has two projects: RoboSync.Core holds the models, the Robocopy command builder and output parser, the copy engine, logging, JSON persistence and validation, and RoboSync.App holds the WPF views, a single view model, a dark theme and the application icon. Saved jobs use System.Text.Json, and the test project uses xUnit with unit tests and Robocopy integration tests. The copy engine sits behind an ICopyEngine interface.
The README lists the scope limits of v1: Sync is one-way only, with no two-way synchronization or conflict resolution; Pause suspends the Robocopy process and keeps file handles open; the window runs one job at a time; and non-ASCII file names in the live log can render imperfectly because of console output encoding, while the copy itself is unaffected. RoboSync does not expose every Robocopy switch. Job scheduling, a job queue, per-file progress parsing, a two-way sync engine and a run history are listed as possible v2 improvements, not as current features. Similar projects on iThub include Syncthing for continuous synchronization between devices and Rescuezilla for disk imaging.
Key capabilities
- Four operation modes Copy adds and updates files and never deletes files that exist only in the destination; it uses
/Ewhen subfolders are included. Mirror uses/MIRand makes the destination an exact replica, including deletions. Move uses/E /MOVEand deletes copied items from the source. Sync uses/E /XOand copies only new and newer files in one direction while keeping extra files in the destination. - Folder selection Source and destination are entered as text or chosen with native Windows folder pickers. The application manifest declares long-path awareness and per-monitor DPI awareness, according to the project structure in the README.
- Advanced options Checkboxes and fields cover including subfolders, retry count, retry wait time, multithreaded copying with a thread count, preserving timestamps, preserving permissions, exclude patterns for files and folders, skipping files that are newer in the destination, and a dry-run preview. These map to
/R:n,/W:n,/MT:n,/DCOPY:DAT,/COPY:DATS,/XN,/XF,/XDand/L. - Fixed safety and parsing switches Every job sets explicit retry and wait values so a run does not hang on the Robocopy default of one million retries. The switches
/BYTES /FP /NPare always applied so the output is line-oriented and machine-readable for the parser. - Live command preview The interface keeps an always-current preview of the Robocopy command that corresponds to the selected settings, with a Copy button. The README states that the preview is the command that actually runs, because the engine wraps
Robocopy.exeinstead of a separate copy implementation. - Run controls Start launches the job, Pause and Resume suspend and resume the Robocopy process, and Cancel ends the whole process tree. Running the same job again is done by pressing Start again. Pausing does not release file handles while the process is suspended.
- Live progress The progress area shows the current file, the number of files processed, bytes copied, elapsed time and estimated time remaining. Totals and the percentage come from a quick list-only pre-scan; when the pre-scan is skipped or fails, the bar switches to indeterminate mode and still reports file and byte counts.
- Color-coded log panel and log files The window shows a live log with colors by log level. Each run also writes a timestamped log file under
%APPDATA%\RoboSync\logs, named with the timestamp and the job name. - Saved jobs The current configuration can be saved, reloaded and deleted. Jobs are stored as readable JSON files with the extension
*.robosync.jsonunder%APPDATA%\RoboSync\jobs, and the repository includes three sample job files for a documents backup, a photo archive mirror and a project sync. - Input validation and confirmations A validator returns specific error messages and advisory warnings before a job runs. Destructive modes, such as Mirror and Move, require a confirmation from the user.
- About dialog and version display The header shows the product version, and an About dialog shows the name, version and a link to the Navanem website.
- Standalone Windows executable Release v1.0.0 provides
RoboSync-v1.0.0-win-x64.exefor 64-bit Windows 10 and 11. It is a self-contained single file and needs no .NET installation on the target machine. Robocopy itself ships with Windows. - Building from source Building or running from source requires the .NET 8 SDK. The repository includes PowerShell 7 scripts for run, build, test and packaging, and the commands also work directly with
dotnet run,dotnet buildanddotnet test. - Packaging script The package script runs
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=trueand writes a standaloneRoboSync.App.exeto./publish. Publishing without--self-containedproduces a smaller framework-dependent build that needs the .NET 8 Desktop Runtime. - Tests and CI The xUnit project covers the command builder, the output parser, the validator, the JSON job store and the live Robocopy engine. Since v1.0.1, a GitHub Actions workflow runs .NET 8 restore, test and build validation on Windows, and Dependabot is configured for dependency updates.
- Known limits The README lists one job at a time per window, one-way Sync only, and possible rendering issues for non-ASCII file names in the live log. Scheduling, job queues and a run history are not part of v1.
Where RoboSync fits
Copying a folder to another disk or share
The Copy mode adds and updates files in the destination and never removes files that exist only there. With subfolders included, RoboSync adds /E; retry count, wait time, multithreading and timestamp or permission preservation are set through the options panel. The live preview shows the generated Robocopy command before the job starts, and a per-run log file is written to %APPDATA%\RoboSync\logs.
Mirroring a folder as an exact replica
Mirror uses /MIR, which makes the destination match the source, including deletion of files and folders that no longer exist in the source. Because this mode deletes data in the destination, RoboSync asks for a confirmation before running it. The dry-run option adds /L, which lists what Robocopy would do without copying or deleting.
Moving files to a new location
Move uses /E /MOVE: Robocopy copies the items and then deletes them from the source. It is also classified as a destructive mode and requires confirmation. Exclude patterns for files (/XF) and folders (/XD) restrict which items are moved.
One-way incremental sync
Sync uses /E /XO to copy new and newer files only, and it keeps extra files in the destination. The README states that this is one-way only and that two-way synchronization with conflict resolution is out of scope for v1. The repository sample project-sync.robosync.json shows a saved configuration for this mode.
Reusing saved job configurations
A configured job can be saved as a *.robosync.json file in %APPDATA%\RoboSync\jobs, where it appears in the Saved jobs list for reloading or deletion. The sample files in the repository can be copied into that folder to load them in the interface. The README describes the saved-job format as human-readable and diffable JSON.
Getting the Robocopy command for scripts
The command preview always reflects the current settings and has a Copy button, so the generated Robocopy command line can be pasted into a terminal or a script. Other Windows file utilities on iThub include SuperDelete for deleting paths longer than 260 characters.
Reviews of RoboSync
Be the first to share your experience with RoboSync.
Write a review
Loading review form…
