Env vars
Caddi keeps env vars per environment. Every change goes through us so it lands in the audit log — and so secrets aren’t set on Vercel by hand and forgotten.
Types
secret— encrypted at rest, write-once. The CLI shows masked values and never echoes them back. Used for API keys, DB URLs, signing secrets.plain— readable. Used for URLs, public IDs,NEXT_PUBLIC_*values.
Setting
Copying between envs
Secrets are copied through Caddi’s key-wrap layer; the plaintext never lands in your shell.
Diffing
Schemas
Every template ships a caddi.template.json with an env schema. Caddi validates new values against it — required vs optional, secret vs plain. You can extend the schema per-project (in .caddi/config.json) without forking the template.
The Vercel dashboard remains the storage. We don’t hide it. But editing values on Vercel directly bypasses the audit log — please use
caddi env or the dashboard instead.