Zero-knowledge secret management
Your secrets.Yours alone.
Encrypted on your machine. Stored beyond our reach.Give AI workflows the credentials they need, without putting secret values in model context.
Free to start · No credit card required

01Encrypt locally
02Sync ciphertext
03Run with confidence
We store the ciphertext.
You hold the keys.
Your vault belongs to you. Encryption happens locally, before a secret reaches our servers. The cloud stores the encrypted result. The keys stay with you.
Your AI agent
Requests an operation
using secret names.
OpaqueVault
Decrypts locally.
Injects into a subprocess.
Your subprocess
Uses the credentials
to do its work.
Encrypted sync
Ciphertext storage.
No decryption keys.
No decrypt endpoint.
Secret values are decrypted locally for authorized use. Account and operational metadata remain visible to the service. Understand the security model →
Let your agent work.
Keep values out
of the conversation.
Your agent asks for an operation by name. OpaqueVault supplies the credentials to the local subprocess. The model receives status and metadata.
See how vault_run works“Run the database migrations.”
vault_run → go run ./cmd/migrate
secrets → ["DATABASE_URL"]
The subprocess can use its injected credential. Its stdout and stderr are omitted from the MCP response.
Less handling.
More building.
One vault for your projects, environments, and the tools you already use.
Your projects.
Their own contexts.
Scope secrets by app and environment. A small .ov.yaml file tells OpaqueVault which context belongs to this repository.
Explore project contexts →DATABASE_URL••••••••PAYMENTS_API_KEY••••••••STORAGE_TOKEN••••••••Find what’s
already exposed.
Run ov scan locally to find credentials in your repository. No account required. Review the findings before choosing your next step.
Meet the free scanner →scripts/deploy.shAPI keyconfig/database.ymlConnection stringA small addition.
A better workflow.
Install the CLI, connect your MCP client, and start using your vault. Desktop Lite brings unlock and lock controls to the macOS menu bar.
Follow the quickstart →Claude Code · Cursor · Windsurf
brew install opaquevault-brew/tap/ovAES-256-GCMAuthenticated encryptionArgon2idLocal key derivationML-KEM-768 + X25519Hybrid post-quantum transportUnderstand what is protected, what remains visible, and where trust is required.
Good questions.
Clear answers.
What does zero-knowledge actually mean?
Your secrets are encrypted and decrypted on your machine. The service stores ciphertext and does not hold the keys needed to read your secret values. Account and operational metadata remain visible to the service.
Can my AI agent see a secret value?
OpaqueVault MCP tools do not return secret values to the model. The vault_run tool injects credentials into a local subprocess and returns exit status and injection metadata, not stdout or stderr. A subprocess given a credential can still use it; this is not a sandbox for malicious commands.
Which tools can I use it with?
Connect the local MCP bridge to a compatible client such as Claude Code, Cursor, or Windsurf. You can also use the ov CLI directly in your development workflow.
Do I need an account to try it?
The local scanner, ov scan, works without an account. Create a free account to start a vault with 10 secrets and 1 app. Solo is $5/mo.