Set Environment Variables
Environment Variables in BAML
Sometimes you’ll see environment variables used in BAML, like in clients:
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 Boundary Studio Integration
To send logs and traces to Boundary Studio, you need to set the BOUNDARY_API_KEY
environment variable. This key is provided when you create an API key in your Boundary Studio dashboard.
Next.js
Express.js
Flask
Rails
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
Boundary Studio Integration
When you use BAML in your application, logs and traces are automatically sent to Boundary Studio for monitoring and debugging. To enable this integration, you need to set the BOUNDARY_API_KEY
environment variable with an API key from your Boundary Studio dashboard.
The API key is used to:
- Authenticate your application with Boundary Studio
- Associate logs and traces with your specific project and environment
- Control access permissions for different operations
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 Boundary Studio Integration
To send logs and traces to Boundary Studio, you need to set the BOUNDARY_API_KEY
environment variable. This key is provided when you create an API key in your Boundary Studio dashboard.
Next.js
Express.js
Flask
Rails
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
Setting LLM API Keys per Request
You can set the API key for an LLM dynamically by passing in the key as a header or as a parameter (depending on the provider), using the ClientRegistry.