Vault app icon

Never lose
a secret again.

Vault backs up your .env files, keys, certificates and Cloudflare secrets to iCloud Drive, encrypted. Wipe a Mac, set up a new one, and every project comes back exactly as it was.

Download for Mac Version 1.0.0 · macOS 14 or later · Signed and notarized by Apple

api

~/Code/apiPush to Cloudflare
FilesSecretsHistory
.envBacked up 2 minutes ago
DATABASE_URL••••••••••••••••RevealCopy
STRIPE_KEY••••••••••••••••RevealCopy
RESEND_API_KEY••••••••••••••••RevealCopy
.dev.varsCloudflare · api-worker
JWT_SECRET••••••••••••••••RevealCopy
WEBHOOK_SECRET••••••••••••••••RevealCopy
Touch ID to unlock Vault
✓
Daily backup complete7 projects · 37 files · encrypted
ChaCha20-Poly1305Encrypted on your Mac
Your iCloud DriveNo servers, no accounts
One master keyKept in Apple Passwords
Daily, automaticallyApp and CLI
Features

The safety net for everything
git doesn't keep.

Encrypted before it leaves your Mac.

Every file is sealed with ChaCha20-Poly1305 using a key only you have. Apple and anyone with access to your iCloud see ciphertext.

.env → iCloud Drive/Vault
STRIPE_KEY=sk_live_51Hx9QeKz2vT8bNw3
DATABASE_URL=postgres://api@db:5432

Touch ID unlock.

Values stay hidden until you reveal or copy them.

Every version, kept.

Nothing is overwritten. See what changed by name, never by value, and restore any version.

Last hour
Week
Month
Year

Several Macs, one vault.

Save on two Macs before iCloud syncs and both versions are merged. Nothing is lost.

Push to Cloudflare.

Cloudflare only returns secret names. Vault keeps the values and pushes them for you.

$ vault cf diff prod
+ STRIPE_KEY
− LEGACY_TOKEN
$ vault cf push prod

Warns you before it's a problem.

vault status catches the mistakes that leak secrets or break releases.

.env.production is committed to git
.dev.vars is missing from .gitignore
Developer ID certificate expires in 12 days

No lock-in. Ever.

Export to an encrypted disk image any Mac can open. Or decrypt by hand: the format fits in six lines of Python.

from cryptography...aead import ChaCha20Poly1305 key = base64.urlsafe_b64decode(k.removeprefix("vault1-") + "==") data = open(path, "rb").read() assert data[:4] == b"VLT1" print(ChaCha20Poly1305(key).decrypt(data[4:16], data[16:], None))
What gets backed up

Finds every secret.
Skips everything else.

Plus ~/.ssh, ~/.aws, GnuPG and age keys, and your App Store Connect API keys. Templates and node_modules are skipped.

New Mac

From a fresh Mac to every project running.

Folders don't have to match the old Mac. Vault finds repos you already cloned by their git remote.

1

Sign in to iCloud

Let iCloud Drive sync your encrypted vault.

2

Copy your master key

It's in Apple Passwords as “Vault master key”.

3

Restore from another Mac

Open Vault, paste the key, and pick where projects go.

4

Everything comes back

Home first, so ssh keys are in place. Then repos are cloned and their secret files written into them.

Command line

A CLI that feels like it belongs.

The vault command ships inside the app, so it updates with it. Script it, or let the daily backup run on its own.

~/Code — zsh

    

Questions

Where are my secrets stored?

In your own iCloud Drive, in a folder called Vault. Every file is encrypted on your Mac before it's written there. There's no Develings server and no account to create.

What if I lose the master key?

Keep it in Apple Passwords, which syncs it to your other devices. A copy is also cached in your Mac's login keychain. If you lose the key and every Mac that has it, the vault can't be decrypted. That's the point.

What if the key leaks?

Run vault key rotate. It re-encrypts the vault and its history with a new key. Update Apple Passwords and paste the new key on your other Macs.

How do updates work?

Vault checks for new versions in the background and installs them when you quit. Every update is signed, and the app refuses anything that doesn't match the key it was built with.

Can I get my data out without Vault?

Yes. vault export backup.dmg writes everything into an AES-256 encrypted disk image any Mac opens with a password. The file format is documented and simple enough to decrypt by hand.

Your next fresh install
will be boring.

Download Vault for Mac Version 1.0.0 · macOS 14 or later