Repolode
westpoint-io

westpoint-io/lazyrsync

A terminal UI for rsync that manages reusable transfer profiles, previews changes as a dry-run diff, and shows live progress, including over SSH.

Stars
925
Forks
31
Open issues
1
Last commit
2 months ago

What is it?

lazyrsync wraps rsync in a keyboard-driven terminal interface. You save a source and destination pair as a task, group tasks into profiles, and rerun them with a keystroke. Destructive options such as --delete are gated behind an explicit confirmation.

Before a transfer runs, the preview shows the resolved changes as a +/~/- diff with statistics, and nothing is written. During a run, a progress bar tracks bytes and files, and the run can be cancelled mid-transfer. Either side of a task can be a remote user@host:/path, so transfers work over SSH.

The same profiles can be run headlessly with lazyrsync run, which makes them suitable for cron or systemd timers. Snapshot tasks keep numbered, hardlinked versions of a destination using --link-dest. The tool requires rsync 3.1 or later on the PATH.

Key features

  • 01Saves reusable source-to-destination tasks grouped into profiles.
  • 02Previews transfers as a dry-run diff with statistics before running.
  • 03Shows live progress with byte and file counts, and supports cancelling a run.
  • 04Supports remote paths over SSH on either side of a task.
  • 05Gates --delete behind a confirmation prompt.
  • 06Runs saved profiles headlessly for cron or systemd schedules.

Use cases

  • Running nightly backups of local folders to a NAS or remote server.
  • Previewing a destructive mirror with --delete before it touches anything.
  • Maintaining hardlinked numbered snapshots of a directory over time.
  • Managing rsync transfers on a remote machine over SSH from a terminal.

Quick start

  1. 1

    Install rsync 3.1 or later on your PATH

  2. 2

    Install lazyrsync with cargo

    cargo install lazyrsync
  3. 3

    Launch the terminal UI

    lazyrsync

Things to know

  • Requires rsync 3.1 or later; macOS 15.4+ system rsync (openrsync) is not supported and needs a Homebrew rsync.
  • cargo install and cargo binstall do not install rsync, so you must install it yourself.

Topics

FAQ

What is lazyrsync?
A terminal UI for rsync that manages reusable transfer profiles, previews changes as a dry-run diff, and shows live progress, including over SSH. lazyrsync wraps rsync in a keyboard-driven terminal interface. You save a source and destination pair as a task, group tasks into profiles, and rerun them with a keystroke. Destructive options such as --delete are gated behind an explicit confirmation.
Is lazyrsync free to use? What license does it have?
lazyrsync is open source under the MIT license. Check the license terms before using it in commercial products.
Is lazyrsync still maintained?
Updated within 6 months. The last commit to lazyrsync was on Aug 10, 2026.
What can I use lazyrsync for?
Running nightly backups of local folders to a NAS or remote server. Previewing a destructive mirror with --delete before it touches anything. Maintaining hardlinked numbered snapshots of a directory over time. Managing rsync transfers on a remote machine over SSH from a terminal.
How do I install lazyrsync?
Install rsync 3.1 or later on your PATH Install lazyrsync with cargo: cargo install lazyrsync Launch the terminal UI: lazyrsync
Where can I get lazyrsync?
The source code and installation instructions are on GitHub: https://github.com/westpoint-io/lazyrsync

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects