WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
LifeScribe는 Windows·macOS용 데스크톱 앱으로, 전기를 기록하고 Vault로 암호화된 디지털 유언장을 만들 수 있습니다
LifeScribe desktop apps for Windows and macOS: write your biography on your computer and create an encrypted digital legacy plan with Vault.
라이프스타일TypeScript · RustGitHub @krynsky온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Digital legacy planning app to store critical personal data to be shared with family members when necessary.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A local desktop app for building an encrypted digital legacy plan. Helps you document your digital executors, password-manager emergency access, devices, photos and videos, financial accounts and subscriptions, important documents, online accounts, platform legacy settings, and backups — plus a printable Recovery Kit — without putting any data on a server.
Platform: Windows (x64), macOS (Apple Silicon, unsigned) Status: Active development
The macOS build is not code-signed or notarized (no Apple Developer account). macOS will warn "Apple could not verify this app" the first time you open it — right-click the app and choose Open (or, on macOS 15+, use System Settings → Privacy & Security → Open Anyway) to bypass this, once. See macOS packaging for details.
⬇ Download the latest release — Windows (x64) and macOS (Apple Silicon) installers.
LifeScribe Vault walks you through ten guided sections of your digital legacy plan:
| Section | What you capture |
|---|---|
| Digital Executors | Primary and backup executors — contact info, responsibilities, step-in notes |
| Password Manager | Provider, vault location, and how a trusted person gains emergency access |
| Devices | The phones and computers your family would need to unlock |
| Photos & Videos | Each device and collection, its location, and the software or app used to open it |
| Financial Accounts | Institutions and accounts, so nothing is missed |
| Subscriptions | Recurring services and what should happen to each (keep / cancel) |
| Online Accounts | Email, domains, and accounts that matter |
| Documents | Wills, trusts, insurance, deeds, tax records, and where they're kept |
| Backups & Storage | Where backups live and how to get into them |
| Platform Legacy Tools | Google Inactive Account Manager, Apple Legacy Contact, and similar |
Each section has identifying fields and optional supporting details — fill in what applies to your plan. A Recovery Kit — an auto-generated snapshot of saved data that can be printed or exported as a PDF — is the document your family starts from. Each section drives a dashboard readiness indicator, so the app won't let you forget what's missing.
snapshot / attachment / draft / backup)| Layer | Technology |
|---|---|
| Desktop shell | Tauri 2 |
| UI | React 19, TypeScript, Vite |
| Crypto / storage | Rust, SQLite, Argon2id, XChaCha20-Poly1305 |
| Testing | Vitest + React Testing Library (frontend), Rust integration tests |
The vault is stored as an encrypted opaque JSON blob (VaultSnapshot). Rust never inspects field names — it stores and returns bytes identically, so the TypeScript domain model is the only place the shape is defined. Same-format unknown fields are preserved at every modeled level; a future snapshot format is refused until the app is upgraded.
Forms are driven by a versioned FormPack — a data-only definition of sections, groups, fields, readiness rules, and Recovery Kit mappings. The app ships one bundled pack; every field is either protected (structural) or optional. Personal Pack Editor changes are stored with the bundled baseline they came from, then three-way rebased onto future bundled packs so user changes and new base fields/migrations both survive. Stored and rebased packs are validated before rendering. On top of that, users can apply a constrained UserOverlay (relabel fields, reorder, add custom fields, hide optional ones).
Fields can also link to records in another section (recordRef) — a backup naming the device it protects, a subscription naming the account that pays for it. The link stores the target record's id, so renaming the target updates every reference to it, and a record cannot be deleted while something still points at it.
Pack migrations run on read, in memory, and are pure and idempotent. Changes only persist via the normal save path.
An auto-generated snapshot of saved data derived only from each section's Kit mappings. It can be printed or exported as a PDF. It is pointer-based: it names where things are and who to contact, showing readable text (a dropdown's chosen label, an attachment's filename) rather than internal stored values, with no redaction of its own. Credential fields are excluded from it at two layers — pack validation and Kit generation — so a master password or device PIN can never reach the printed page.
The Print action opens the standard Windows/WebView print preview. Export PDF opens a native Save As dialog, writes the PDF to the selected location, and reports success or failure in the app. The exported PDF is an intentionally plaintext document outside the encrypted vault, so store it with the same care as a printed Recovery Kit.
The vault directory is chosen during setup and changeable from Settings. A pointer file in the app config dir names the folder; if that folder can't be reached (an external drive that isn't connected), the app says so rather than silently starting a fresh vault elsewhere.
An unlocked user can change the vault's master password from Settings by entering the current password and a new password of at least 15 characters. The app verifies the current password, generates fresh Argon2id metadata, and atomically replaces only the wrapped data key. Saved records, attachments, drafts, and retained snapshot generations remain encrypted under the same random data key, and the session stays unlocked. Existing .lsvbackup files remain protected by the password used when each backup was created.
A separate encrypted draft stash holds in-progress edits so a locked session never loses unsaved work.
# Install dependencies
npm install
# Run tests
npm --prefix apps/desktop run test
npm --prefix apps/desktop run typecheck
npm --prefix apps/desktop run lint
cargo test --manifest-path apps/desktop/src-tauri/Cargo.toml
# Run the app in dev mode (hot reload)
npm run dev
# Build the Windows NSIS installer
npm run build
apps/desktop/
src/
api/ # Tauri IPC wrappers (vaultApi.ts)
components/ # Shared UI components
creator/ # Pack editing tools (packEdits, packAutoMigrate, packExport)
domain/ # Pure domain logic (formModel, packMerge, packMigrations,
| # packValidation, readiness, snapshot, recoveryKit, valuesStore)
forms/ # FormRenderer, field controls, structure editor
routes/ # Page components (Dashboard, SectionPage, SetupScreen,
# SettingsPage, BackupPage, RecoveryKitPage, LockedScreen,
# VaultUnavailableScreen)
src-tauri/
src/ # Rust: commands, crypto, repository, attachments,
# vault_location, backup, draft_stash
pack-editor/ # Dev-only Vite app for editing the bundled pack
.test.ts(x), vaultApi mocked — Tauri invoke is never hit in testssrc/tests/ with tempfile against real SQLite; assert ciphertext (no plaintext in DB files)Current — describes how the app works today:
CLAUDE.md — architecture laws and working rules, the short versiondocs/development.md — developer documentation (architecture, data flows, conventions)docs/user-guide.md — user-facing guide for people who download the appdocs/creator-mode.md — pack authoring (dev workflow)docs/release/windows-packaging.md — build and release processdocs/testing/v2-acceptance.md — acceptance checklistHistorical — dated design records, kept for rationale:
docs/plans/ — implementation plans, including the original v2 rebuild plandocs/superpowers/specs/ and docs/superpowers/plans/ — feature specs and plansrequirements.md, challenges.md — the original brief and market researchHistorical documents describe what was decided at the time. Some describe systems since removed — the composable form-module system, deleted 2026-07-30, is the big one. Read them for why; where they disagree with docs/development.md or the code, they are out of date.
MIT — see LICENSE for the full text.