Getting started
Introduction
What dotsafe is and how it keeps your secrets.
dotsafe keeps your environment variables and API keys encrypted on your Mac and syncs them through storage you already own: iCloud Drive, Google Drive, Dropbox, an S3 or R2 bucket, or WebDAV. There's no dotsafe server holding your vault.
It comes as a desktop app and a dotsafe command-line tool. Both open the same vault, so a change in one shows up in the other.
How it works
- Encrypted on your device. Your master password never leaves your Mac. The vault is a folder of encrypted files, and whatever syncs it only ever sees ciphertext.
- Synced by storage you own. Put the vault in a synced folder or a bucket, and every Mac that opens it stays in step. Each one keeps a copy, so dotsafe works offline.
- Injected, not written down.
dotsafe runstarts your app with its variables set, so there's no.envfile to leak or commit. - Safe for agents. Claude Code, Cursor and other MCP agents can run commands with your secrets after you approve, and dotsafe never hands them a value.
Where to start
- Install the app and the CLI.
- Follow the quick start to move a project's
.envinto a vault. - Read Security for what dotsafe protects against, and what it doesn't.
Guides and reference
- Projects and environmentsProjects, environments, inheritance and references between variables.
- Secrets and rotationShare one value across environments, rotate it in one step and keep its history.
- IntegrationsRotate keys through OpenAI, Cloudflare and AWS, and push them to Vercel and Workers.
- AI agentsLet Claude Code, Cursor and other agents run commands with secrets they never see.
- Storage and syncKeep the vault in a synced folder, an S3 or R2 bucket, or WebDAV.
- DevicesTouch ID unlock, adding a Mac with a code, and removing a lost device.
- Import and exportBring variables in from .env files and other secret managers, and keep them out of git.
- CLIEvery dotsafe command and its main options.
- SecurityHow the vault is encrypted, what the app and agents can see, and what dotsafe never stores.