Skip to main content
This guide shows you how to set and manage environment variables in CWSandbox instances. Use environment variables to pass non-sensitive configuration values, such as log levels or project identifiers, into your sandboxes. You can set them on individual sandboxes, share them across sandboxes in a session, or scope them to remote functions.
Don’t hardcode API keys, passwords, or other credentials in environment_variables, or print them to logs. Prefer secret references over passing raw credentials. Keep sensitive values in a secret manager, even when W&B secret injection isn’t available. This guidance applies to both serverless and CKS sandboxes.
For serverless sandboxes authenticated with W&B, use W&B secrets. The server resolves these references and injects the values as environment variables. W&B secret injection is not available for CKS placement or sandboxes authenticated with a CoreWeave API access token. For CKS, use your organization’s approved method for delivering secrets to workloads.

Basic usage

To make values available to processes running inside the sandbox, pass an environment_variables dictionary to Sandbox.run:

Session-level defaults

When you need the same variables in several sandboxes, define them once on a session instead of repeating them per sandbox. Individual sandboxes can override session defaults or add their own variables:

Remote functions

Remote functions inherit environment variables from the session and can declare their own through the @session.function decorator. The SDK merges function-level variables with session defaults at call time:
Environment variables are passed by reference. Subsequent function calls reflect mutations to the dictionary after decoration, as shown in the following example.
Last modified on September 18, 2026