Your code and secrets,
on every machine.
Manifa keeps your folders and .env files in sync across all your machines — end-to-end encrypted, so the server never sees your files, their names, or your keys.
curl -fsSL https://manifa.dev/install | shmacOS · LinuxThe manifest is cheap.
The bytes are lazy.
Git syncs committed code. Dropbox syncs plaintext files and your secrets with them. Manifa syncs the whole working environment — encrypted — and fetches content only when you reach for it.
Enroll a machine
A device keypair is generated locally and your vault keys are wrapped to it. Your entire tree appears in the same layout, instantly.
$ mani device enrollEdit on A, see on B
Background sync moves only the changed chunks. A one-byte edit in a 1GB vault transfers a few KB, not the whole file.
$ mani syncTouch a file, it hydrates
The whole tree is visible from a tiny manifest. The bytes for a file or subtree arrive the moment you open it.
$ cat apps/api/.envStop pasting secrets
into Slack.
Your .env is encrypted on your machine before it ever leaves. The server holds an opaque blob it cannot open — no plaintext, ever, on disk or in transit.
Push it once, pull it on every other machine. Rotate a key and every device picks up the new value on the next sync.
$ mani env push --vault api --name prod
encrypted .env (4.1 KB) → vault “api”
# on your other machine
$ mani env pull --vault api --name prod
wrote .env · decrypted locallyYour tree,
byte-for-byte.
Clone an entire ~/Code tree onto a new box and get the exact same layout — muscle memory intact. Content-defined chunking and a Merkle manifest mean only true deltas move on the wire.
Manifa is git-aware, not git-hostile: it respects .gitignore, skips node_modules, and never touches your .git.
$ mani clone ~/Code # fresh machine
1,284 files · identical layout · 38s
$ mani sync # after a 1-byte edit
pushed 1 chunk · 4.2 KBA 10GB vault
that weighs nothing.
Mount a vault and the full directory tree is visible everywhere from a lightweight manifest. Files are placeholders until you touch them — then the bytes hydrate transparently on first open.
Perfect for cloud AI agents: an agent that cds into one subtree pulls only that subtree, never the whole monorepo.
- ~/Code
- api/
- server.ts
- .env
- web/
- app.tsx
- vault.db
We can't read your data.
That's the whole point.
A dev-secrets product lives or dies on trust. The server is an honest-but-curious blob store: it sees vault IDs, chunk sizes, and sync timing — and nothing else. Encryption and decryption happen only on your machines.
- Content encrypted with AES-256-GCM-SIV before it leaves your device
- File and directory names live inside the encrypted manifest, never in the clear
- Keys are wrapped in a Bitwarden-class hierarchy rooted in a key only you hold
- Lose every device and your recovery code, and even we can't get in — by design
- DATABASE_URL=postgres://…
- STRIPE_KEY=sk_live_…
- app.tsx
- schema.ts
- a3f1c08e…
- 9b27dd4a…
- 1f0e6c52…
- c84b91ff…
- 70a2e3d9…
Desktops, mini PCs,
and cloud sandboxes.
One synced root, identical on every box. Enroll a new machine and your whole environment is present in seconds — the goal is under five minutes from enroll to a working tree.
Each device is individually revocable. Lose a laptop and one command cuts it off and rotates your vault keys; your other machines keep working without a beat.
One CLI. Everything in it.
Install, sign in, set up your keys, and sync your first vault. Your recovery code is shown once — back it up and you're protected.
$ curl -fsSL https://manifa.dev/install | sh # install mani
$ mani login # email one-time code
$ mani init # creates keys + recovery code
$ mani vault create code ~/Code # first sync
$ mani daemon start # continuous background syncStart free. Scale when you do.
For a single developer
- 1 vault
- Up to 2 devices
- Encrypted .env sync
For your whole setup
- Unlimited vaults
- Unlimited devices
- On-demand VFS
For a small team
- Shared vaults
- Per-member access
- Audit trail
The honest answers.
If it's zero-knowledge, what happens if I lose my password?
At signup you get a one-time recovery code that can unwrap your account key. As long as you have it — or another enrolled device — you can recover. If you lose every device and the recovery code, the data is unrecoverable. That's the honest cost of nobody-but-you encryption.
How is this different from Git?
Git is the system of record for committed history; Manifa syncs the working environment around it — uncommitted edits, .env files, and a uniform directory layout. It respects .gitignore and never touches your .git directory.
Won't it sync my node_modules and build artifacts?
No. Layered ignore rules skip node_modules, target/, .venv and friends by default. Manifa syncs the lockfile and a post-sync hook rebuilds native deps on the target OS — so a Mac and an Ubuntu box stay consistent without shipping platform binaries.
What does a stolen laptop mean for me?
Revoke the device with one command. Its wrapped keys are deleted and your vault keys rotate, so the lost machine can't read new content. Your other devices keep working uninterrupted.
What can the server actually see?
Vault existence, the number and size of encrypted chunks, device count, and sync timing — metadata we accept leaking and partially pad. It never sees file contents, file or directory names, or any key material.
Boot a new box.
Everything's already there.
Free for your first vault and two devices. No card, no plaintext on our servers, no lock-in.