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.
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.
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]
-
--besideRestore alongside originals
Restores into a new folder placed right beside your original files.
-
--to ~/desktopRestore to a custom location
Restores into a new folder in whichever directory you specify.
-
--overwriteOverwrite 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.
- otter
- frozen
- anchor
- velvet
- ridge
- canyon
- mirror
- lumber
- harbor
- tunnel
- ember
- glacier
- pilot
- marble
- orchard
- signal
- timber
- wonder
- basket
- copper
- drift
- lantern
- summit
- yellow
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.
- taxes.pdf
- Encrypt
-
- 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.
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.
- 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.
- 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
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.