Skip to content

Introduction

Managing environment variables is repetitive and error‑prone.

lazyenv treats .env.example as the source of truth and keeps your store and local .env files in sync.

  • A CLI that treats .env.example as the source of truth
  • A bridge to a pluggable secret store (Infisical, Doppler, Bitwarden, 1Password)
  • A way to push/pull secrets across monorepos without hand‑maintained config
  • A replacement for your secret store
  • A production‑grade guarantees story
  • A magic config generator that knows your architecture
Terminal window
# 1) Create/maintain .env.example files in your repo
# 2) Initialize a project config
lazyenv init --store <infisical|doppler|bitwarden|onepassword>
# 3) Push keys from .env.example into your store (prompted)
lazyenv sync
# 4) Pull secrets into local .env files (gitignored)
lazyenv pull
# 5) Run commands with secrets injected
lazyenv run npm run dev

Provisioners are how lazyenv can produce secret values (instead of you pasting them in).

Types:

  • browser: automated browser flows (OAuth setup). Built‑ins: github-oauth, google-oauth. Custom provisioners live in .lazyenv/config.json.
  • generator: deterministic/random generators for keys like JWT_SECRET.
  • program: run a local program/script to produce outputs (declared in .lazyenv/config.json).

Next: Provisioners or lazyenv provisioners.