Skip to content

Vibenv uses two layers for configuration:

  1. @vibenv/env-manager generates .env files from a package.json envModel contract.
  2. @vibenv/env loads .env and applies typed defaults using envalid.

envModel basics

In package.json, define envModel values as numbers, booleans, or strings. Strings can include alternatives separated by |.

json
{
  "envModel": {
    "PORT": 3000,
    "HOST": "localhost|127.0.0.1|0.0.0.0",
    "DEBUG": true
  }
}

The env-manager CLI:

  • Sorts keys alphabetically.
  • Preserves existing .env values when types are valid.
  • Falls back to defaults and prints warnings when types are invalid.
  • Emits alternative values as comments when a string includes | separators.

Runtime defaults

@vibenv/env registers defaults (for example MCP_SERVER_PORT, SHOPTET_SERVER_PORT, and CLI_AGENTS_REMOTE_HOST) and merges them with .env and process environment variables.