Your .env file exists on exactly one machine.
Your repository holds the code. It does not hold the API keys that make the code run, the project you never initialised, the work you haven't pushed, or what your AI agents remember about you. Granary backs up exactly those — encrypted on your Mac, stored wherever you choose.
The credentials that make the code run. Deliberately kept out of version control — and therefore stored nowhere else.
No git init was ever run here. The experiment you meant to set up properly later.
Committed but never pushed. The remote has an older copy than this disk does.
The instructions and context your AI agents have accumulated, in your home folder rather than in any project.
Machine setup you would have to reconstruct from memory on a new Mac.
It finds these itself.
Copying files is the easy part. Granary's work is deciding which files have no second copy, so it scans your home folder and shows you the list before it copies anything. Every folder you exclude is recorded together with the command that brings it back.
- .env · .envrc · *.pem
- Secrets outside the repoCredential files and tokens — the files
.gitignoreexists to keep out of version control, and which therefore exist on exactly one machine. - folders with no .git
- Projects with no repositoryA folder with no git history has no second copy anywhere. Not on a server, and not in anyone else's clone.
- unpushed commits
- Work the remote doesn't haveGranary reads each repository's state and reports which ones are ahead of their remote, so you know what a disk failure would actually cost.
- ~/.claude · ~/.codex · ~/.gemini
- AI agent memoriesThe instructions and accumulated context your agents work from. Rebuilding it means writing every instruction again from memory.
An unverified backup is not a backup.
Most backup tools tell you they succeeded. Granary demonstrates it: it restores real files, compares checksums against the originals, and tells you when it last did so.
It looks around and asks
Granary lists what it found and why each item matters. You approve or exclude. Folders that appear later are flagged for approval, never added silently.
Encrypted before it leaves
Everything is encrypted on your Mac with a key held in your macOS keychain. The storage provider stores ciphertext, and cannot read your files or the credentials inside them.
It proves the backup works
Granary restores real files from the archive, compares their checksums with the originals, and verifies the stored data. If a check is overdue it runs before the next backup rather than after it.
You can get back in without it
Granary prints a recovery packet to keep somewhere safe. If the Mac is gone and Granary with it, that sheet is enough to reach your archive using standard open-source tools.
The bucket is yours. So is the bill.
There is no Granary server and no Granary account. You connect a storage service in your own name, and Granary creates a bucket and a key restricted to it. Your files go from your Mac to your bucket.
| service | cost | notes |
|---|---|---|
| Cloudflare R2 | free to 10 GB | EU region selectable. Restores carry no egress fee, which matters on the day you need one. |
| Backblaze B2 | free to 10 GB | One key is enough: Granary creates the bucket, a key restricted to it, and the retention rule that stops you paying for data you already deleted. |
| Hetzner Storage Box | €3.20 / month + VAT, 1 TB | Flat price and EU data centres, Finland included. Sensible once the archive grows large. Requires an SSH key. |
| External disk or NAS | no monthly cost | The fastest restore. Worth combining with a cloud copy — a copy on the same machine as the data does not survive the machine. |
Granary is free.
There is no trial, because there is nothing to buy. If it saved you an afternoon of rebuilding a machine, you can put that afternoon back into the next version.
Version 1.0.0 has been tested by its author, not across a wide range of machines. Treat it as one copy among several rather than your only backup — which is advice worth following for any backup tool, including this one.