A next-generation environment variable management tool that overcomes the limits of the traditional .env/.env.example approach, solving collaboration/AI/security/type safety all at once
Manages the environment variable schema in one place with .env.schema; unlike .env.example, no need to worry about mismatches between the real values and the example
@env-spec decorator comments declaratively add a variety of information to .env files, such as schema, type, validation, examples, sensitivity, and external secret management
@required, @type=string, @sensitive, @example, etc.
Strong validation: reports invalid configuration/missing value errors immediately with clear messages (blocked ahead of runtime)
Automatic schema-based type generation, giving type safety and IDE IntelliSense support when accessing environment variables in code
Security: automatic masking of sensitive information (logs/console), leak detection in bundled clients/responses
Multiple environments and overrides: supports complex environment setups combining defaults, per-environment files, git-ignored personal values, process env, and more
External secret integration: dynamic loading of secrets via commands such as 1Password and exec; plugins, local encryption, and team vault support coming soon
Language-agnostic/runtime-agnostic: not only JS/TS, but validated env can be injected into any language or process, e.g. varlock run -- python my.py
Can fully replace dotenv: just swapping the dotenv import for varlock immediately gives you validation, automatic type generation, stronger security, multi-environment/secret integration, and many other features