The only backup tool you'll ever need, built for your terminal.

Frost backs up your files to the cloud, encrypted locally on your machine before ever leaving. Simple, lightweight, and open source.

frost backup

backup permafrost

changes
2,846 added, 611 changed, 87 removed
files
612,940 (318.4 GB)
new data
9.7 GB in 9,251 chunks (7.4 GB uploaded after compression)
verified
ok, 20 random objects re-downloaded and checked

Saved snapshot walnut-eagle-4c1e

Your files deserve to be timeless.

An open-source backup tool for your terminal, Frost keeps an encrypted history of your files and folders in your choice of storage and runs automatically once configured.

Designed to make backups private by default and completely effortless, it encrypts everything locally on your machine using a key only you hold. Nobody else can read your files.

It's the kind of tool you forget is running, right up until the day you need it. Timeless and in your control.

Set it once and forget it.

Install, complete a brief setup, and you're set. Your computer will run backups automatically, completely in the background.

  • Install Frost with the magic spell.
  • Run through setup. `frost init` guides you step-by-step along the way.
  • Write down your recovery phrase. It's the only way to decrypt your backups—keep it safe and secure.
  • You're all set. `frost backup` runs on schedule automatically. Use `frost status` to check how it's all running.

config.toml

# Frost config. Edit by hand or with `frost config set`.

# Directories to back up.
paths = ["~/Documents", "~/Pictures", "~/projects"]

# Patterns to skip, by name or by path.
exclude = [".DS_Store", "Thumbs.db", "*.tmp", "*.swp", "node_modules", ".cache", "~/projects/scratch"]

[schedule]
enabled = true
# hourly, 2h, 3h, 4h, 6h, 8h, 12h, daily or weekly.
every = "daily"

[verify]
# Random chunks to download and check after a backup. 0 turns it off.
sample = 20

[update]
# Install new Frost releases after a scheduled backup.
auto = true

[storage]
# "permafrost", "s3" for any S3-compatible bucket, "sftp" for your own server
# over SSH, or "local" for a folder on a drive.
backend = "s3"

[storage.s3]
endpoint = "s3.us-east-1.amazonaws.com"
region = "us-east-1"
bucket = "my-frost-backups"
prefix = "frost"
# Can also come from FROST_S3_ACCESS_KEY_ID / FROST_S3_SECRET_ACCESS_KEY.
access_key_id = "AKIAIOSFODNN7EXAMPLE"
secret_access_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
insecure = false

[storage.permafrost]
# Leave blank for the default server.
url = ""
token = ""

A system that runs itself.

Backups upload only what changed, verify their own integrity, and highlight what's different—so there's nothing to babysit.

Uploads are only what's changed.

Your files are split into content-based chunks, meaning subsequent backups only upload modified chunks rather than the entire file. Unchanged files are ignored.

check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check
check

File integrity, checked and verified.

After uploading a snapshot, Frost downloads a random sample of chunks to verify that each one decrypts cleanly and matches its ID.

+ photos/ski.jpg 3.4 MB
+ notes/todo.md 1.2 kB
~ notes/ideas.md 0.3 kB
- taxes/2024/ 2.1 MB

See the diffs.

Every backup tracks added, modified, and removed files. In the browser, you can compare any two snapshots to see exactly what changed.

Every `frost backup` does the same five things:

  • Walk directories and skip anything excluded. Missing folders, like those on an unplugged drive, are skipped and reported.
  • Skip unchanged files by checking size and modification time.
  • Chunk and deduplicate changed files, discarding any that are already in storage across past runs.
  • Process remaining data by compressing, encrypting, and uploading it. Progress is saved continuously.
  • Save the snapshot only after all data is fully uploaded, then spot-check a random sample.

Recover any file or folder from any point in time.

Browse snapshots by date, compare two points, and pick the exact files you need. Or target a specific timestamp right from the command line.

frost restore yesterday ~/documents/project [flag]

  • --beside

    Restore alongside originals

    Restores into a new folder placed right beside your original files.

  • --to ~/desktop

    Restore to a custom location

    Restores into a new folder in whichever directory you specify.

  • --overwrite

    Overwrite existing files

    Replaces your current files in place. Asks for confirmation before running.

Security, done right.

Here are a few key measures we take to ensure security:

A key, not passwords.

Setup generates a random 256-bit key locally on your device, formatted as 24 words. There are no passwords to manage or reset, and the secret key never leaves your machine.

  1. otter
  2. frozen
  3. anchor
  4. velvet
  5. ridge
  6. canyon
  7. mirror
  8. lumber
  9. harbor
  10. tunnel
  11. ember
  12. glacier
  13. pilot
  14. marble
  15. orchard
  16. signal
  17. timber
  18. wonder
  19. basket
  20. copper
  21. drift
  22. lantern
  23. summit
  24. yellow

Synology NAS

Amazon S3

External SSD

Raspberry Pi

Permafrost

TrueNAS

USB Drive

Mac Mini

Cloudflare R2

Linux Server

QNAP NAS

Backblaze B2

Unraid

Drive Dock

VPS

Wasabi

You control your storage.

Use your own server over SSH, a local drive, any S3-compatible bucket, or Permafrost. Setup tests it first, and you can move your backups later by copying a single folder.

  1. taxes.pdf 2.4 MB
  2. Encrypt XChaCha20-Poly1305
    • 9f3a2e
    • c41a07
    • 07bd5e

Encrypted before upload.

Every chunk is compressed when that makes it smaller, then encrypted with XChaCha20-Poly1305 before it leaves your computer. File names and folder structure are encrypted too.

When Object Size
2026-10-01 snapshots/walnut-eagle-4c1e07a93b2 1.4 kB
2026-10-01 trees/walnut-eagle-4c1e07a93b2 68.9 MB
2026-10-01 chunks/19/1946c36a696e1eb436ea982d8e18a6e0991fc70df5b23aae1182de24ce9a84e2 412 kB
2026-10-01 chunks/5c/5c20567f8950614721ac4805de1ea5354db9fb200a8e847cdc111db9d6def91f 1.2 MB
2026-09-29 snapshots/ribbon-tiger-b82d5f10e6a 1.3 kB
2026-09-29 trees/ribbon-tiger-b82d5f10e6a 68.2 MB
2026-09-29 chunks/a0/a083eb0c6ccb8a2c586b866c6a458520c5462fba71fb4c94d4dcf31589c9b07b 2.4 MB
2026-09-22 snapshots/anchor-cactus-07f93ad1c56 14.8 kB
2026-09-22 trees/anchor-cactus-07f93ad1c56 67.0 MB
2026-09-22 chunks/28/286f1201fdfe2a8082a36f2e1c196d3f81b18f426644c123e61ca05f71445dd2 94.3 kB
2026-09-08 chunks/8c/8cea2de0f37a70aa5620d482f8e427e92a25597a746ce32a2325abee91b0589d 3.6 MB
2026-08-14 snapshots/lemon-jungle-31bd8e7a05c 1.1 kB
2026-08-14 trees/lemon-jungle-31bd8e7a05c 61.4 MB
2026-08-14 chunks/8c/8c2b2718ffb7e1e63374aaa694a05fc580d142b3472f00189fc6590deb26555d 1.8 MB
2026-08-14 frost.repo 124 B

Your storage sees nothing it can read.

Privacy is everything. Whoever holds your storage sees only meaningless object names, their sizes and when they arrived, never a file name or a byte they can read.

Things to keep in mind:

  • Because your machine is trusted, the key file is readable only by your user account so scheduled backups can run automatically. However, anyone who can run code as your user can read your backups, so use full-disk encryption and/or lock your screen.
  • Remember that there is no password reset. Your key is never sent anywhere. It's yours. If you lose both your recovery phrase and the machine that holds Frost, your backups are lost forever.
  • Be sure to choose storage you trust. While Frost's checks can catch missing or corrupted data, they cannot stop a provider from deleting it or a drive from failing. Always keep a second copy of anything irreplaceable, somewhere away from your computer.
Learn more about security ↗

Bring your own storage, or use ours.

Use a NAS, a home server, a drive or any S3-compatible bucket. Or, let Permafrost handle storage for $6 a month.

Surface

The Frost CLI. Back up to storage you already have.

$0 free and open source
  • Encrypted on your machine before upload
  • Incremental, deduplicated backups
  • Scheduled backups
  • Automatic checks that backups restore
  • Full browser in your terminal
  • Storage not included. Bring your own storage (e.g. a NAS, a drive or cloud provider)

Perma

Permafrost as the storage provider, Frost as your backup tool.

$6 a month
  • Encrypted on your machine before upload
  • Incremental, deduplicated backups
  • Scheduled backups
  • Automatic checks that backups restore
  • Full browser in your terminal
  • 50 GB of storage

Find the level that suits you and your needs :).

50 GB

Frequently asked questions.

Can't find what you're looking for? Email us.

Yes, yes, yes! Free and open source under the BSD 3-Clause license. The only cost is storage.

Prefer your own infrastructure? You can back up to a local drive, a server over SSH (a NAS, home server, or VPS), or any S3-compatible service with conditional write support, including Amazon S3, Cloudflare R2, and Ceph. There's also Permafrost, storage built specifically for Frost.

No. The installation includes its own runtime, so you don't need Node.js or anything else.

Backups resume as soon as your computer is online. Regardless of how many scheduled backups were missed, only a single backup will run. Set schedule.catch_up to false to skip missed runs and wait for the next scheduled time.

Launch the snapshot browser with `frost browse`, select your files, and press [r] to walk through the simple restoration process.

If you still have your computer, `frost key show` prints it again. If you lose both, your backups are gone for good. Nobody can recover them, including us.

Yes. Computers that share a recovery phrase can back up to the same storage, and data they have in common is stored once.

No. Every snapshot stays in storage. Since snapshots share data with one another, keeping them all requires very little extra space.

Set it once and forget it.

+