Backup + Rescue

RestoreGuard

Keeps yesterday's snapshots by the hour and last month's by the week.

Free right now — no account, no card

Get RestoreGuard free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design RestoreGuard, 1 of 1
Screenshot RestoreGuard running on Windows today

Free while we’re in preview

Get RestoreGuard

Keeps yesterday's snapshots by the hour and last month's by the week.

The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.

One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.

Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.

  • One file — no installer
  • Runs on your machine, offline
  • Source code published below

Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, RestoreGuard is included in every plan along with the rest of the range.

Retention that thins with age

Keep-last-N treats a snapshot from an hour ago and one from three weeks ago as the same kind of thing. Real backup products don’t, and neither does this.

Anything under 24 hours old is kept with no thinning at all. From one day to a week, one snapshot survives per UTC calendar day. From a week to 28 days, one per ISO calendar week. Past 28 days it goes. prune prints each snapshot’s id, computed age, tier and the exact reason behind its KEEP or REMOVE verdict, and deletes nothing without --apply.

--now 2026-08-10T12:00:00Z pins what “now” means for every age calculation in that run. Ask what the policy would have decided last Tuesday, or will decide next month, without waiting for the calendar.

The snapshots underneath

backup compares every file against the same path in the previous snapshot by SHA-256. Unchanged files are hardlinked, new and changed ones copied in full, and a manifest in each snapshot directory records which happened along with size, mtime and hash.

Removing an old snapshot can’t harm a newer one: a hardlink is just another directory entry on the same inode, and only whole snapshot directories are ever deleted.

There’s no monthly or yearly tier, and no restore command in this build.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working CLI prototype of the tiered-retention engine: the same hardlink-deduplicated snapshots as the sibling RescueVault, but with real grandfather-father-son retention (all snapshots for 24h, one-per-day for a week, one-per-week for a month, then pruned) instead of a flat keep-last-N. Disk imaging and boot rescue need raw-device access and are on the roadmap.

Naming status

Working name only — brand verdict **AVOID** (Very High). Collision: RestoreGuard. Do not use.

What it draws on

Existing paid software whose best ideas shaped this program: Macrium Reflect X, Disk Drill, R-Studio, Bvckup 2 Pro.

Command line

There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.

restoreguard - hardlink-deduplicated backups with tiered (GFS) retention

USAGE:
  restoreguard backup <src> <vaultdir> [--apply]
      Take a snapshot of <src> into <vaultdir>/snapshots/<id>/.
      Unchanged files are hardlinked to the previous snapshot (no wasted
      disk space); new/changed files are copied. Without --apply this is
      a dry run that only reports what would happen.

  restoreguard prune <vaultdir> [--now <RFC3339>] [--apply]
      Apply the tiered retention policy to existing snapshots:
        < 24h old   : keep ALL          (hourly tier)
        24h .. 7d   : keep 1 per day    (daily tier)
        7d .. 28d   : keep 1 per week   (weekly tier)
        >= 28d      : remove
      --now pins "now" for the age calculation (also useful for auditing
      a retention policy at a specific point in time, not just testing).
      Without --apply this is a dry run that only reports the plan.

  restoreguard list <vaultdir> [--now <RFC3339>] [--json]
      List all snapshots with id, age, file count, and which retention
      tier currently protects them (or "REMOVE" if next prune would drop
      them).

  restoreguard help
      Show this message.

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

console.go · console_test.go · guided.go · main.go

SHA-256 checksums · build instructions & scope notes · full build plan