config (logging / environment variables)
Various settings are configurable via environment variables.
Setting can also be modified via functions in baml_client.config
.
python
typescript
ruby
set_log_level
Environment variable: BAML_LOG
set_log_json_mode
Environment variable: BAML_LOG_JSON
Switches the log output between JSON and human-readable format.
set_log_max_message_length
0
for unlimited
Environment variable: BAML_LOG_MAX_MESSAGE_LENGTH
get_log_level
reset_baml_env_vars
Resets the environment variables to the values in the provided dictionary. Will also reset any logging related environment variables to those passed in (if set explicitly).
Setting Environment Variables
In the VSCode Playground
Once you open a .baml
file in VSCode, you should see a small button over every BAML function: Open Playground
. Then you should be able to set environment variables in the settings tab.

Or type BAML Playground
in the VSCode Command Bar (CMD + Shift + P
or CTRL + Shift + P
) to open the playground.
For Your App (Default)
BAML will do its best to load environment variables from your program. Any of the following strategies for setting env vars are compatible with BAML:
- Setting them in your shell before running your program
- In your
Dockerfile
- In your
next.config.js
- In your Kubernetes manifest
- From
secrets-store.csi.k8s.io
- From a secrets provider such as Infisical / Doppler
- From a
.env
file (usingdotenv
CLI) - Using account credentials for ephemeral token generation (e.g., Vertex AI Auth Tokens)
python-dotenv
package in Python ordotenv
package in Node.js
python
typescript
ruby
Warning: If you are using the
python-dotenv
package, please check the import order for some edge cases.
For Your App (Manually)
Requires BAML Version 0.57+
Reset the environment variables to those manually set in your code.