Environment Vault
Secrets your agents can never read
Values live encrypted with the repository, and agents see names only: secret values are unreachable from agent code. Revealing a value is a human permission, and every reveal is audited. Developers pull secrets with one command; nobody pastes .env files into chat.
What the Vault does
Secrets management that behaves like part of the repository, not a separate product bolted alongside it.
Invisible to agents
Agent runs receive secret names only. Values are encrypted and unreachable from agent code, and redaction middleware backstops every provider call.
Envelope encryption
Each secret is encrypted with AES-256-GCM under a data key, which is itself encrypted by a cloud KMS-backed master key. Plaintext exists only inside the vault package's decrypt paths.
Per-environment secrets
Separate values for Development, Preview, Production, or any environments you define. Free includes 4 environments per repository; paid plans are unlimited.
Roles, grants, and expiry
Access follows workspace roles. Reveals are permissioned, and access grants can expire: a contractor's access ends when the engagement does.
Audit trail
Every read, reveal, and change is recorded: who, what, when. Retention scales with your plan.
Masked by default
The UI shows masked values (sk_l····7dc). Revealing requires permission and is itself an audited event.
.env.example generation
Generate a committed .env.example from the Vault's keys so new teammates always know which variables the project needs, without ever committing values.
A CLI flow developers actually keep using
Log in once, pull the environment you're allowed to read, and run your dev server with secrets injected (nothing written to disk unless you ask). Setting a value from the terminal updates the same encrypted store the web UI shows.
Shell
keelson login
keelson vault pull
keelson vault run npm run dev
keelson vault set STRIPE_SECRET_KEYHow a value is protected
Each secret is wrapped twice: the value under an AES-256-GCM data key, and that data key under a cloud KMS-backed master key. Plaintext exists only inside the vault package's decrypt paths.
The Vault is included on every plan, including self-hosted.
Customer-managed keys are on the Enterprise track.