How to create bundles and recover files
There is also a CLI guide.
ReMemory is a digital safe with multiple keys. You choose who holds them and how many must come together to open it.
Under the hood, it encrypts your files with age, splits the key among people you trust, and gives each person a self-contained bundle for recovery.
Recovery is opening a file in a browser.* No servers, no need for this website to exist.
If you hold a piece for someone, start at Recovering Files.
* Time-locked archives need a brief internet connection at recovery time.
You probably have digital secrets that matter: password manager recovery codes, cryptocurrency seeds, important documents, instructions for loved ones. What happens to these if you're suddenly unavailable?
Think of it like a safe deposit box that needs two keys to open β no single person holds enough to get in alone.
Traditional approaches have weaknesses:
ReMemory takes a different approach:
Three steps. Everything happens in your browser β your files never leave your device. Open the bundle creator to get started.
Add the people who will hold pieces of your recovery key. For each, provide a name and optionally contact information.
Then choose how many of them must come together to open your files.
Drag and drop the files or folder you want to protect.
Good candidates:
Click "Generate Bundles" to lock your files and make a bundle for each person.
Each bundle includes the full recovery tool. It works even if this website is gone.
Send each person their bundle however you prefer:
If you send bundles by email or messaging, delete the messages from your sent folder once each friend confirms receipt. Otherwise your account ends up holding a copy of every piece β defeating the point of splitting them.
Once your bundles are ready, there are a few things worth doing before you put this out of your mind:
recover.html once. It shows "Your piece is here" when it can read their piece.project.yml so you can regenerate bundles laterREADME.pdf as a paper backup before sending the digital bundle. Paper doesn't need adapters or power.This part is for the friends who hold a piece. Most of the time, all a friend does is keep their bundle safe. One day, someone may ask them for their piece, or they may be the one who brings the pieces together.
If you're here because someone you care about can't be reached anymore, there's no hurry. Nothing here expires. You can take as long as you need β if you close the recovery page partway, you'll add the pieces again when you come back.
A piece is one part of the key that locks the files. On its own, it opens nothing and reveals nothing.
Your README holds your piece as a block of text and as 25 words. The printed README.pdf also has it as a QR code. These are all the same piece β any one of them is enough to pass on.
Each bundle contains:
Each bundle is made for one friend: their piece is already inside their recover.html, along with the names of the others and how to reach them.
Keep it somewhere safe, and a printed copy of README.pdf too if you can. There's nothing else to do until the time comes.
To check it, open recover.html. It shows "Your piece is here", which piece you hold, how many are needed to open the files, and whether the locked files are there too.
First, make sure the request is real. If you can, check with the person who made the bundle. If you can't reach them, check with another friend who holds a piece.
Then send it whichever way is easiest:
One person gathers the pieces. It can be any of the friends β whoever takes it on.
Double-click the bundle to open it, then double-click recover.html. It opens in your web browser, like a web page, with your own piece already in it. If you don't have a bundle, any friend can send you their recover.html, or you can use the recovery page here.
If you have a bundle, its recover.html and README list who else holds a piece and how to reach them β unless the bundles were made without names. Tell them what has happened and ask for their piece. Some will want to check with you first that the request is real β their instructions ask them to.
Drag their bundle or README.txt onto the page, paste their text, type the recovery words they read to you, or scan the QR code on their printed page. If names are listed, a checkmark appears next to each one.
Once there are enough pieces, the page opens the files without you doing anything. Download them and keep them somewhere private.
MANIFEST.age from a friend's bundle onto it β or, if their bundle has none, their recover.html. Most bundles carry them already, so you won't see this step.
Each printed page has the piece as a list of numbered words. If a friend reads you theirs over the phone, or all you have is paper, type the words into the recovery page. Press "Paste a piece or type recovery words" and type them in, separated by spaces. Only the words matter, not the numbers.
On a computer or phone with a camera, press "Scan QR code" on the recovery page and hold the printed page up to it.
Scanning the QR code with a phone's camera app works too: it opens the recovery page on this website, with the piece filled in.
README.pdf β paper survives digital disastersproject.yml if you want to regenerate bundles laterBundles are small (under 10 MB) and designed to be stored in everyday places. Here's what works well:
README.pdf gives your friends a copy of their piece that doesn't need adapters, power, or any working device.Paper holds the pieces, but not the locked files themselves β those only live in digital copies. So the best approach is redundancy β email plus paper, or cloud plus paper. More than one copy, in more than one form.
Set a yearly reminder to check in with your friends. Confirm they still have their bundles and update contact details if anything has changed.
When your files change, create new bundles and send them. The old bundles won't open the new archive, so there's no risk in leaving them around β but ask friends to replace theirs to keep things tidy.
When contacts change β someone moves, changes their phone number, or you want to add or remove someone β same thing: new bundles, ask people to delete the old ones.
Between updates, keep your source files in an encrypted vault β tools like Cryptomator or VeraCrypt work well. Don't leave plaintext copies sitting in a regular folder.
Think of it like updating your emergency contacts. Brief, periodic, worth doing.
Nobody tests their backup plan. A recovery drill changes that β and it plays a little like an escape room.
Create a test bundle with a harmless secret (a photo, a message, a recipe). Hand out pieces to your friends. Set a timelock if you want a real countdown. Then step back and let them figure it out: coordinate, combine pieces, unlock the files β without your help.
What you learn:
A drill that goes smoothly means your real plan will too. A drill that goes badly is a gift β you found the problem before it mattered.
Once a piece has been distributed, it cannot be revoked. This is by design β there is no server, no central authority.
If you need to change who holds pieces:
The same applies when secrets change. New bundles mean a new key and new pieces. Old pieces won't open the new archive, but they still work with the old one. Make sure friends aren't holding on to old copies.
When you create bundles, your project is saved in a project.yml file. This file stores:
It does not store any secrets β no passphrase, no key material, no file contents. It's safe to keep with your other records.
With project.yml, you can regenerate bundles, verify existing ones, and check the status of your setup.
ReMemory composes well-established cryptographic tools rather than inventing its own. Here's what that means in practice.
Your files are locked with a modern encryption tool (age) β widely reviewed, no known weaknesses.
The key that locks them is 256 bits long, generated from your operating system's random number generator. For scale: guessing it would take longer than the universe has existed.
Even if someone tried every possible password, scrypt makes each guess deliberately slow β millions of times slower than a naive attempt.
The key is then split using Shamir's Secret Sharing. Any fewer than threshold pieces contain zero information about the original. Not "very little." Mathematically zero.
Each bundle also lists checksums of its files, so rememory verify-bundle can tell you if one was damaged along the way. Checksums catch accidents, not deliberate changes: whoever alters a file can update its checksum too. The encrypted archive is protected on its own β if it's altered, it won't open.
recover.html still works β it's self-contained. No servers, no downloads, no dependencies on this project.
The things that do need to be true: your device is trusted when you create bundles, and the browser used for recovery isn't compromised. These are the same assumptions you make any time you use a computer for something important.
For a detailed technical evaluation, see the security self-review.
ReMemory isn't the first tool to use Shamir's Secret Sharing. There are many others, from command-line tools to web apps. Here's what sets ReMemory apart:
recover.html β a complete recovery tool that runs in any browser, offline.* No installation, no CLI needed.For a detailed comparison with other tools, see the full comparison table on GitHub.
There is also a command-line tool for those who prefer a terminal or need to automate bundle creation.
The CLI provides the same functionality, plus batch operations and scripting.
When holders should not know each other's identities, use anonymous mode:
This is useful when:
In the bundle creator, enable the Anonymous toggle in the Friends section:
bundle-share-1.zip, bundle-share-2.zip, etc.Recovery works the same way, but without the contact list. Holders see generic labels like "Share 1" instead of names.
Each person can receive their bundle in their preferred language. Seven languages are supported: English, Spanish, German, French, Slovenian, Portuguese and Chinese (Taiwan).
You can set a waiting period when creating bundles. Even if your friends combine their pieces early, the files stay locked until the date you chose β 30 days, 6 months, a specific date.
In the bundle creator, switch to Advanced mode and check Add a time lock. Choose how long the files should stay locked β up to two years.
The two-year limit is deliberate. Time locks depend on the League of Entropy continuing to operate, and we don't think it's responsible to lock your files behind a longer bet on external infrastructure. If you need a longer duration and understand the trade-off, the CLI has no cap: rememory seal --timelock 5y.
When someone opens a time-locked bundle before the date, the recovery tool shows a waiting notice. Once the time passes, recovery proceeds normally.
Opening a time-locked archive requires a brief internet connection. Your files aren't sent anywhere β the connection verifies that enough time has passed. Without the time lock, recovery is fully offline.
The League of Entropy produces a new cryptographic value every 3 seconds. Each value is numbered. You can predict which number corresponds to a given time, but the value for that number can't be produced early β not by anyone, including the network operators.
When you create a time-locked bundle, the archive is encrypted to a specific future value. The key to open it doesn't exist yet. It will come from the network when that moment arrives.
For a deeper look at the cryptography behind this, see the drand timelock encryption documentation.
ReMemory can also run as a web app on your own server using rememory serve. The server provides the same creation and recovery tools through a browser. Friends only need their share β the encrypted archive is served automatically.
This is an advanced option for people who already run a homelab or want a shared web UI. The offline bundles remain the primary way to use ReMemory and work without any server. See the self-hosting guide on GitHub for details.