RCMate

A terminal UI for running, monitoring and managing rclone sync jobs.

RCMate in a terminal: a list of four sync pairs with progress bars, type and status, and the key bindings below

RCMate is a keyboard-driven terminal app for rclone. You describe your sync jobs once in a TOML file, then pick, run and watch them from one screen instead of typing long rclone commands by hand.

What it does

  • One list of sync pairs. Each pair has a name, a source, a destination, a type and optional include and exclude filters.
  • Four sync types. sync, bisync, copy and move, the same operations rclone offers.
  • Live progress. RCMate talks to rclone’s remote control (RC) API and shows transfer stats, progress bars and per-file progress while a job runs.
  • Single files work too. If a source or destination is a single file, RCMate runs the job on its folder with an include filter for that file.
  • Edit in the app. Add or edit pairs and their options in a form. Changes are written back to the config file.
  • Signed self-update. rcmate self-update shows the release notes since your version and only replaces the binary after checking its signature.

Choosing a sync type

TypeDirectionDeletesGood for
syncone-wayon the destination, to match the sourcean exact mirror or backup
copyone-waynevera backup that keeps deleted files
moveone-wayon the source, after transferringmoving files off a source
bisynctwo-wayon either side, mirroring deletionskeeping two places in step

For files where every change matters, such as a password database, use bisync. It detects when both sides changed and keeps both versions instead of silently overwriting one.

Configuration

[rclone]
bin = "rclone"

[[sync_pairs]]
name = "Documents"
type = "bisync"
source = "/local/documents"
destination = "remote:documents"
excludes = ["*.tmp", "node_modules/"]

[[sync_pairs]]
name = "Media backup"
type = "copy"
source = "/local/media"
destination = "remote:media"

The default location is ~/.config/rcmate/config.toml. Command-line options override the config path, the rclone binary, the rclone config, the working directory and the log level.

Keyboard

KeyAction
↑ / ↓Move the selection
Space / aSelect one pair / all pairs
Ctrl+SRun the selected pairs
Ctrl+A / eAdd a pair / edit the highlighted pair
oOptions for the highlighted pair
pPer-file progress
Alt+EShow the error of the highlighted pair
qQuit

Getting started

Install rclone and set up your remotes with rclone config. Then download RCMate from the releases page, or build it from source with cargo build --release.

Before the first real run of a sync pair, turn on dry_run in the pair’s options to see what would change. A bisync pair needs one run with resync enabled to create its baseline; turn resync off again afterwards.

License

RCMate is written in Rust and licensed under MIT or Apache 2.0, at your option.