[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74643":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":14,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":42,"readmeContent":43,"aiSummary":44,"trendingCount":16,"starSnapshotCount":16,"syncStatus":45,"lastSyncTime":46,"discoverSource":47},74643,"rememory","eljojo\u002Frememory","eljojo","a digital safe with multiple keys, held by people you trust","https:\u002F\u002Feljojo.github.io\u002Frememory\u002F",null,"Go",1383,78,4,7,0,1,14,3,18.69,"Apache License 2.0",false,"main",true,[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"age-encryption","dead-mans-switch","deadmanswitch","digital-estate","digital-estate-planning","disaster-recovery","encryption-tool","family","file-encryption","key-management","offline-first","privacy","secret-sharing","shamir-secret-sharing","shamirs-secret-sharing","webassembly","2026-06-12 02:03:26","# 🧠 ReMemory\n\n**A digital safe with multiple keys, held by people you trust.**\n\nReMemory protects your files and divides the key among people you choose. You decide how many must come together to open it. Each person gets a self-contained recovery tool that works offline, in any browser.*\n\n\u003Csub>* [Time-locked](#time-delayed-recovery-experimental) archives need a brief internet connection at recovery time.\u003C\u002Fsub>\n\n## Recovery works without this project\n\nEach person receives a bundle containing `recover.html` — a browser-based recovery tool. No servers. No dependencies. No need for this project to exist when recovery happens.\n\n**[Download demo bundles](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory\u002Freleases\u002Flatest\u002Fdownload\u002Fdemo-bundles.zip)** to try the recovery process yourself.\n\n```mermaid\ngraph TB\n    subgraph seal[\"① SEAL (you do this once)\"]\n        A[Your Files] --> B[Encrypt with age]\n        B --> C[Split key into 5 pieces]\n        C --> D1[Alice's bundle]\n        C --> D2[Bob's bundle]\n        C --> D3[Camila's bundle]\n        C --> D4[Dominique's bundle]\n        C --> D5[Elias's bundle]\n    end\n\n    subgraph recover[\"② RECOVER (friends do this together)\"]\n        R1[Alice opens recover.html] --> R2[Her piece is pre-loaded]\n        R2 --> R3[Drags Bob's file]\n        R3 --> R4[Drags Camila's file]\n        R4 --> R5{3 of 5 pieces}\n        R5 -->|Threshold met| R6[Files unlocked]\n        R6 --> R7[Download files]\n    end\n\n    D1 -.-> R1\n    D2 -.-> R3\n    D3 -.-> R4\n```\n\nAny 3 pieces can reconstruct the key, but a single piece reveals nothing — not \"very little,\" mathematically zero information.\n\nThe number of people and the threshold are up to you: 2-of-3 for a small circle, 3-of-5 for a wider group, or 2-of-2 for a couple.\n\n---\n\n## Two Ways to Use ReMemory\n\n### 🌐 Web UI (recommended)\n\nCreate bundles in your browser — no installation required.\n\n| | |\n|---|---|\n| **Create Bundles** | [eljojo.github.io\u002Frememory\u002Fmaker.html](https:\u002F\u002Feljojo.github.io\u002Frememory\u002Fmaker.html) |\n| **Documentation** | [eljojo.github.io\u002Frememory\u002Fdocs.html](https:\u002F\u002Feljojo.github.io\u002Frememory\u002Fdocs.html) |\n\nEverything runs locally. Your files never leave your device.\n\n![The bundle creator — add friends, add files, generate](docs\u002Fscreenshots\u002Fen\u002Fmaker-overview.png)\n\n### 💻 CLI and Docker\n\nFor automation, scripting, or if you prefer the terminal.\n\n```bash\n# macOS (Homebrew)\nbrew install eljojo\u002Frememory\u002Frememory\n\n# Linux (x86_64)\ncurl -Lo rememory https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory\u002Freleases\u002Flatest\u002Fdownload\u002Frememory-linux-amd64\nchmod +x rememory\nsudo mv rememory \u002Fusr\u002Flocal\u002Fbin\u002F\n\n# Docker (self-hosted)\ndocker run -d \\\n  --name rememory \\\n  -p 8080:8080 \\\n  -v rememory-data:\u002Fdata \\\n  ghcr.io\u002Feljojo\u002Frememory:latest\n\n# Nix\nnix run github:eljojo\u002Frememory\n```\n\nSee the **[CLI User Guide](docs\u002Fguide.md)** or the **[Self-Hosted Guide](docs\u002Fselfhosted.md)** for complete documentation.\n\n---\n\n## Try It First\n\nBefore protecting real secrets, try the recovery process:\n\n1. **[Download demo bundles](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory\u002Freleases\u002Flatest\u002Fdownload\u002Fdemo-bundles.zip)** (5 friends, any 3 can recover)\n2. Open `bundle-alice\u002Frecover.html` in your browser\n3. Alice's piece is pre-loaded — drag two more README files onto the page. Dragging an entire bundle works too.\n4. When enough pieces are combined, the files unlock\n\nThis is the closest thing to what a real recovery feels like.\n\n---\n\n## What Friends Receive\n\nEach friend gets a ZIP bundle containing:\n\n| File | Purpose |\n|------|---------|\n| `README.txt` | Instructions, their unique piece, contact list |\n| `README.pdf` | Same content, formatted for printing |\n| `MANIFEST.age` | Your encrypted files (only included separately when over 10 MB) |\n| `recover.html` | Recovery tool (~300 KB), runs in any browser. For smaller archives, everything is embedded — just open this file |\n\n**A single piece reveals nothing.** But tell your friends to keep their bundle somewhere safe — it's their responsibility to you.\n\n![Example README PDF — page 1](docs\u002Fscreenshots\u002Fdemo-pdf\u002Fpage-1.png)\n\n\u003Cdetails>\n\u003Csummary>More pages\u003C\u002Fsummary>\n\n![Example README PDF — page 2](docs\u002Fscreenshots\u002Fdemo-pdf\u002Fpage-2.png)\n![Example README PDF — page 3](docs\u002Fscreenshots\u002Fdemo-pdf\u002Fpage-3.png)\n\n\u003C\u002Fdetails>\n\n---\n\n## FAQ\n\n\u003Cdetails>\n\u003Csummary>Why ReMemory?\u003C\u002Fsummary>\n\nWe all 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?\n\nTraditional approaches fail:\n- **Give one person everything** → Single point of failure and trust\n- **Split files manually** → Confusing, error-prone, no encryption\n- **Use a password manager's emergency access** → Relies on company existing\n- **Write it in a will** → Becomes public record, slow legal process\n\nReMemory takes a different approach:\n- **No single point of failure** — requires multiple people to cooperate\n- **No trust in any one person** — even your most trusted friend can't access secrets alone\n- **Offline and self-contained** — recovery works without internet or servers*\n- **Designed for non-technical people** — clear instructions, not cryptographic puzzles\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Why I Built This\u003C\u002Fsummary>\n\nTwo things drove me to create ReMemory.\n\nFirst, I watched [a documentary about Clive Wearing](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k_P7Y0-wgos), a man who has lived with a 7-second memory since 1985. Seeing how fragile memory can be made me think about what would happen to my digital life if something similar happened to me.\n\nSecond, I've had several concussions from cycling accidents. Each time, I've been lucky to recover fully. But each time, I've been reminded that our brains are more fragile than we like to think.\n\nReMemory is my answer: a way to ensure the people I trust can access what matters, even if I can't help them.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Threat Model\u003C\u002Fsummary>\n\nReMemory assumes:\n- Your friends will only cooperate when needed\n- At least *threshold* friends will keep their bundle safe\n- Your device is trusted when you create bundles\n- The browser used for recovery is not compromised\n\nReMemory does NOT rely on:\n- Any server or cloud service\n- Any ReMemory website or infrastructure\n- Any long-term availability of this project\n- The internet during recovery\n\nSee the **[Security Review](docs\u002Fsecurity-review.md)** for details.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Cryptographic Guarantees\u003C\u002Fsummary>\n\n| Component | Algorithm |\n|-----------|-----------|\n| Encryption | [age](https:\u002F\u002Fgithub.com\u002FFiloSottile\u002Fage) (scrypt passphrase mode) |\n| Key derivation | scrypt (N=2²⁰, r=8, p=1) |\n| Secret sharing | Shamir's Secret Sharing over GF(2⁸) |\n| Integrity | SHA-256 checksums |\n| Passphrase | 256 bits from crypto\u002Frand |\n| Time lock (optional) | [drand](https:\u002F\u002Fwww.cloudflare.com\u002Fen-ca\u002Fleagueofentropy\u002F) tlock (BLS12-381 IBE, inner layer) |\n\n**A single piece reveals nothing about your secret.** This is a mathematical guarantee of Shamir's Secret Sharing — any fewer than *threshold* pieces contain zero information about the original secret.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Time-Delayed Recovery (Experimental)\u003C\u002Fsummary>\n\nYou can set a waiting period when creating bundles. Even with enough pieces, the files stay locked until the date you chose — for example, 30 days, 6 months, or a specific date.\n\nThis uses the [League of Entropy](https:\u002F\u002Fwww.cloudflare.com\u002Fen-ca\u002Fleagueofentropy\u002F) (drand), a distributed randomness beacon run by organizations around the world. At recovery time, a brief internet connection is needed — not to send data, but to verify that enough time has passed.\n\n**CLI:** `rememory seal --timelock 30d` (or `6m`, `1y`, `2027-06-15T00:00:00Z`)\n**Web:** Enable under \"Advanced options\" in the [bundle creator](https:\u002F\u002Feljojo.github.io\u002Frememory\u002Fmaker.html).\n\n**Important caveats:**\n- Recovery requires internet access (to check the drand beacon)\n- If the League of Entropy stops operating before your time lock expires, recovery won't work\n- Without the time lock, recovery works fully offline — the time lock adds this one dependency\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Failure Scenarios\u003C\u002Fsummary>\n\n| What if... | Result |\n|------------|--------|\n| A friend loses their bundle? | Fine, as long as threshold friends remain |\n| A friend leaks their piece publicly? | Harmless without threshold-1 other pieces |\n| ReMemory disappears in 10 years? | `recover.html` still works — it's self-contained |\n| Browsers change dramatically? | Pure JavaScript with no external dependencies |\n| You forget how this works? | Each bundle's README.txt explains everything |\n| Some friends can't be reached? | That's why you set threshold below total friends |\n| Time lock used, but no internet at recovery? | Wait and try again — data is safe, just needs the beacon check |\n| League of Entropy shuts down? | Time-locked archives become unrecoverable — only a risk if you use the time lock feature |\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Development\u003C\u002Fsummary>\n\n```bash\n# Using Nix (recommended)\nnix develop\n\n# Install dependencies\nnpm install\n\n# Build\nmake build\n\n# Run tests\nmake test         # Unit tests\nmake test-e2e     # Browser tests (requires: npm install)\n\n# Preview website locally\nmake serve        # Serves at http:\u002F\u002Flocalhost:8000\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Other Similar Tools\u003C\u002Fsummary>\n\nReMemory isn't the first tool to use Shamir's Secret Sharing. Its focus is making recovery possible for non-technical people, without installing anything.\n\n#### Shamir's Secret Sharing tools\n\n| Tool | Type | Input | Splitting Method | Output | Non-technical Recovery | Offline | Contact Details |\n|------|------|-------|-----------------|--------|----------------------|---------|-----------------|\n| **[eljojo\u002Frememory](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory)** | CLI + Web | Files & folders | Shamir's SSS | ZIP bundles with PDF instructions, `recover.html`, encrypted archive | Yes — open HTML in browser | Yes | Yes — included in each bundle |\n| **[jesseduffield\u002Fhorcrux](https:\u002F\u002Fgithub.com\u002Fjesseduffield\u002Fhorcrux)** | CLI | Files | Shamir's SSS | Encrypted file fragments | No — requires CLI | Yes | No |\n| **[jefdaj\u002Fhorcrux](https:\u002F\u002Fgithub.com\u002Fjefdaj\u002Fhorcrux)** | CLI | Files (GPG) | Shamir's SSS (via `ssss`) | `.key` + `.sig` files, steganography in images\u002Faudio | No — requires CLI + GPG | Yes (TAILS recommended) | No |\n| **[paritytech\u002Fbanana_split](https:\u002F\u002Fgithub.com\u002Fparitytech\u002Fbanana_split)** | Web app | Text only | Shamir's SSS + NaCl | Printable QR codes | Partial — scan QR + type passphrase | Yes (self-contained HTML) | No |\n| **[cyphar\u002Fpaperback](https:\u002F\u002Fgithub.com\u002Fcyphar\u002Fpaperback)** | CLI | Files | Shamir's SSS in GF(2^32) | Printable PDFs with QR codes + text fallback | Partial — scan QR or type text | Yes | No |\n| **[simonfrey\u002Fs4](https:\u002F\u002Fgithub.com\u002Fsimonfrey\u002Fs4)** ([site](https:\u002F\u002Fsimon-frey.com\u002Fs4\u002F)) | Web GUI + Go lib | Text\u002Fbytes | Shamir's SSS + AES | Text shares | No — copy\u002Fpaste shares | Yes (save HTML locally) | No |\n| **[xkortex\u002Fpasscrux](https:\u002F\u002Fgithub.com\u002Fxkortex\u002Fpasscrux)** | CLI | Text\u002Fpassphrases | Shamir's SSS | Text shares (hex\u002Fbase32\u002Fbase64) | No — requires CLI | Yes | No |\n| **[ssss](http:\u002F\u002Fpoint-at-infinity.org\u002Fssss\u002F)** | CLI | Text (128 char max) | Shamir's SSS | Text shares | No — requires CLI | Yes | No |\n| **[cedws\u002Famnesia](https:\u002F\u002Fgithub.com\u002Fcedws\u002Famnesia)** | CLI | Text\u002Fdata streams | Shamir's SSS + argon2id | JSON file (Q&A-based, single user) | No — requires CLI | Yes | No |\n| **[henrysdev\u002FHaystack](https:\u002F\u002Fgithub.com\u002Fhenrysdev\u002FHaystack)** | CLI | Files | Shamir's SSS | Encrypted file fragments | No — requires CLI | Yes | No |\n| **[antonio-ivanovski\u002Fshared-secret-encrypt](https:\u002F\u002Fgithub.com\u002Fantonio-ivanovski\u002Fshared-secret-encrypt)** ([site](https:\u002F\u002Fshared-secret-encrypt.tote.mk\u002F)) | Web app | Text only | Shamir's SSS + AES-GCM | Base58-encoded shares + encrypted message | Partial — web UI for decrypt | Yes (client-side, can save HTML) | No |\n| **[MinorGlitch\u002Fethernity](https:\u002F\u002Fgithub.com\u002FMinorGlitch\u002Fethernity)** | CLI (Python) | Files | Shamir's SSS + AES-256-GCM | Printable PDFs with QR codes + text fallback, bundled browser recovery kit | Partial — scan QR or type text | Yes | No |\n\n#### Other approaches\n\n| Tool | Type | Input | Method | Output | Non-technical Recovery | Offline | Contact Details |\n|------|------|-------|--------|--------|----------------------|---------|-----------------|\n| **[msolomon\u002Fkeybearer](https:\u002F\u002Fgithub.com\u002Fmsolomon\u002Fkeybearer)** ([site](https:\u002F\u002Fmichael-solomon.net\u002Fkeybearer)) | Web app | Files | Layered encryption | Encrypted file download | Partial — web UI for decryption | Yes (client-side JS) | No |\n| **[RobinWeitzel\u002Fsecret_sharer](https:\u002F\u002Fgithub.com\u002FRobinWeitzel\u002Fsecret_sharer)** ([site](https:\u002F\u002Frobinweitzel.de\u002Fsecret_sharer\u002F)) | Web app | Text only | Split-key AES-256 (fixed 2-of-2) | PDF with 2 QR codes + security code | Yes — scan QR codes | Yes (client-side) | No |\n| **[Bitwarden Emergency Access](https:\u002F\u002Fbitwarden.com\u002Fhelp\u002Femergency-access\u002F)** | Web service | Vault items + attachments | RSA key exchange (1-of-1) | Live vault access (no file output) | Yes — web UI | No (server required) | Via Bitwarden accounts |\n| **[Apple Digital Legacy](https:\u002F\u002Fsupport.apple.com\u002Fen-us\u002F102631)** | Built-in (Apple) | Apple Account data | Legacy Contact designation | iCloud data access (3-year window) | Yes — Apple handles it | No (Apple servers required) | Via Apple Account |\n| **[potatoqualitee\u002Feol-dr](https:\u002F\u002Fgithub.com\u002Fpotatoqualitee\u002Feol-dr)** | Guide\u002Fchecklist | N\u002FA | N\u002FA (not a tool) | [Printable checklist](https:\u002F\u002Fgithub.com\u002Fpotatoqualitee\u002Feol-dr\u002Fblob\u002Fmain\u002Fchecklist.md) covering accounts, finances, subscriptions, devices | N\u002FA | Yes (print it) | Template fields |\n\n**Key takeaways:**\n\n- Most tools only handle **text or passphrases** — [eljojo\u002Frememory](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory), both horcrux projects, [henrysdev\u002FHaystack](https:\u002F\u002Fgithub.com\u002Fhenrysdev\u002FHaystack), [cyphar\u002Fpaperback](https:\u002F\u002Fgithub.com\u002Fcyphar\u002Fpaperback), [MinorGlitch\u002Fethernity](https:\u002F\u002Fgithub.com\u002FMinorGlitch\u002Fethernity), and [msolomon\u002Fkeybearer](https:\u002F\u002Fgithub.com\u002Fmsolomon\u002Fkeybearer) are the few that handle actual files.\n- Only [eljojo\u002Frememory](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory) generates a **self-contained recovery tool** (`recover.html`) bundled with each piece — no installation, no internet, no CLI needed.\n- Only [eljojo\u002Frememory](https:\u002F\u002Fgithub.com\u002Feljojo\u002Frememory) includes **contact details** in each bundle so friends know how to reach each other during recovery.\n- [paritytech\u002Fbanana_split](https:\u002F\u002Fgithub.com\u002Fparitytech\u002Fbanana_split) and [cyphar\u002Fpaperback](https:\u002F\u002Fgithub.com\u002Fcyphar\u002Fpaperback) output **QR codes** for printing, which is great for paper-based backups of short secrets.\n- **Bitwarden Emergency Access** is fundamentally different — it delegates vault access to one trusted person (not M-of-N splitting) and requires an online service.\n- **Apple Digital Legacy** only activates after death (requires proof of death documents) — it does not cover incapacity, memory loss, or other scenarios. Limited to Apple ecosystem (iCloud data, not Keychain passwords). Access expires after 3 years.\n- [potatoqualitee\u002Feol-dr](https:\u002F\u002Fgithub.com\u002Fpotatoqualitee\u002Feol-dr) is not a tool but a valuable **end-of-life planning [checklist](https:\u002F\u002Fgithub.com\u002Fpotatoqualitee\u002Feol-dr\u002Fblob\u002Fmain\u002Fchecklist.md)** covering accounts, finances, subscriptions, and devices — complementary to any tool here.\n- [ssss](http:\u002F\u002Fpoint-at-infinity.org\u002Fssss\u002F) is the classic Unix implementation but is limited to 128 ASCII characters and requires a terminal.\n- GitHub offers a [successor feature](https:\u002F\u002Fdocs.github.com\u002Fen\u002Frepositories\u002Fmanaging-your-repositorys-settings-and-features\u002Frepository-access-and-collaboration\u002Fmaintaining-ownership-continuity-of-your-personal-accounts-repositories) for maintaining ownership continuity of repositories — useful for ensuring your code projects remain accessible.\n\n\u003C\u002Fdetails>\n\n## License\n\nApache-2.0 — Copyright 2026 José Albornoz\n\n## Credits\n\nBuilt on:\n- [age](https:\u002F\u002Fgithub.com\u002FFiloSottile\u002Fage) — Modern file encryption by Filippo Valsorda\n- [age-encryption](https:\u002F\u002Fgithub.com\u002FFiloSottile\u002Ftypage) — TypeScript age implementation, also by Filippo Valsorda\n- [shamir-secret-sharing](https:\u002F\u002Fgithub.com\u002Fprivy-io\u002Fshamir-secret-sharing) — Audited Shamir's Secret Sharing by Privy (browser recovery)\n- [HashiCorp Vault's Shamir implementation](https:\u002F\u002Fgithub.com\u002Fhashicorp\u002Fvault\u002Fblob\u002Fmain\u002Fshamir\u002Fshamir.go) — Shamir's Secret Sharing (CLI)\n- [fflate](https:\u002F\u002Fgithub.com\u002F101arrowz\u002Ffflate) — Fast JavaScript compression\n- [tarparser](https:\u002F\u002Fgithub.com\u002Fhighercomve\u002Ftarparser) — Tar archive extraction\n- [tlock](https:\u002F\u002Fgithub.com\u002Fdrand\u002Ftlock) — Time-lock encryption via drand\n- [Cobra](https:\u002F\u002Fgithub.com\u002Fspf13\u002Fcobra) — CLI framework\n\nTranslations by:\n- Slovenščina — [@h200101](https:\u002F\u002Fgithub.com\u002Fh200101)\n- Português — [@Kasama](https:\u002F\u002Fgithub.com\u002FKasama)\n- 中文（台灣）— [@JasonHK](https:\u002F\u002Fgithub.com\u002FJasonHK)\n- Catalan — [@xcxtxsx](https:\u002F\u002Fgithub.com\u002Fxcxtxsx)\n- Dutch — [@idebeijer](https:\u002F\u002Fgithub.com\u002Fidebeijer)\n- Italian — [@xushidev](https:\u002F\u002Fgithub.com\u002Fxushidev)\n- Turkish - [@FrustT](https:\u002F\u002Fgithub.com\u002FFrustT)\n\nThe protocol was [originally designed in a Google Doc](https:\u002F\u002Fdocs.google.com\u002Fdocument\u002Fd\u002F1B4_wIN3fXqb67Tln0v5v2pMRFf8v5umkKikaqCRAdyM\u002Fedit?usp=sharing) in 2023.\n","ReMemory 是一个数字保险箱，允许用户将密钥分成多份并分发给信任的人保管。项目基于 Go 语言开发，采用 Shamir 密钥共享方案来确保只有当指定数量的密钥持有者共同参与时才能解锁文件。此外，它还支持时间锁定存档等高级功能。每个参与者会收到一个包含 `recover.html` 的独立恢复工具包，可以在任何浏览器中离线运行，无需依赖外部服务。这种设计特别适合需要安全存储敏感信息并确保仅在特定条件下可访问的场景，例如遗产规划、灾难恢复和个人隐私保护。",2,"2026-06-11 03:50:15","high_star"]