> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wandb.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Serverless Sandboxes

> On-demand, isolated compute environments that you can create, use, and discard from Python with W&B Serverless Sandboxes.

<Warning>
  Serverless Sandboxes is in public preview.
</Warning>

Serverless Sandboxes gives you on-demand, isolated compute environments that you can create, use, and discard using Python.

Serverless Sandboxes is built using the CoreWeave Sandbox library. For the underlying API reference and library docs, see the [CoreWeave Sandbox documentation](https://docs.coreweave.com/products/coreweave-sandbox).

## How it works

A *sandbox* is a single isolated compute environment. You [create](/sandboxes/create-sandbox) it, [run commands inside it](/sandboxes/run-commands), and stop it when it is done. Each sandbox runs in its own container with its own filesystem, network, and process space.

W\&B authenticates your identity when you create and manage sandboxes. To use W\&B or Weave inside a sandbox, pass your API key using the [W\&B Secrets Manager](/platform/secrets#manage-access-to-secrets) or environment variables. See [Secrets](/sandboxes/secrets) for more information about using secrets in sandboxes.

A sandbox goes through [several states in its lifecycle](/sandboxes/lifecycle). When a container is running, you can [execute commands](/sandboxes/run-commands) inside it.

[Read, write, and mount read-only](/sandboxes/file-access) files to and from the sandbox. Common examples include reading in a Python script to execute, writing out logs or results, or mounting a directory of data read-only for the sandbox to access.

Use a *session* to manage multiple sandboxes that share configuration. When a session closes, all of its sandboxes are stopped automatically. See [Manage multiple sandboxes](/sandboxes/create-sandbox#create-multiple-sandboxes-with-a-session) for more details.

## Basic usage

Follow these steps to create a sandbox and run a command inside it:

1. Install the W\&B Python SDK (`wandb`) and the serverless sandbox dependencies with the following command:
   ```bash theme={null}
   pip install wandb[sandbox]
   ```

2. Log in to W\&B with the [`wandb login`](/models/ref/cli/wandb-login) CLI command. When prompted, provide your API key to authenticate your identity and access your W\&B account:

   ```bash theme={null}
   wandb login
   ```

3. Copy and paste the following code snippet into a Python file and run it. The code snippet accomplishes the following:

   1. Create a sandbox with [`Sandbox.run()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#run).
   2. Run the command `echo "Hello from Serverless Sandboxes!"` inside the sandbox using the [`Sandbox.exec()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#exec) method.
   3. Print the output to the console using the `Process` object returned by `Sandbox.exec()`.

   ```python show lines title="hello_sandbox.py" theme={null}
   from wandb.sandbox import Sandbox

   with Sandbox.run() as sandbox:
       process = sandbox.exec(["echo", "Hello from Serverless Sandboxes!"]).result()
       print(process.stdout)
   ```

   You should see the output `Hello from Serverless Sandboxes!` printed to the console.

   The sandbox automatically stops when the context manager (the `with` block) exits. For more information on sandbox lifecycle and states, see [Lifecycle of sandboxes](/sandboxes/lifecycle).

## Serverless Sandboxes tutorials

For more in-depth examples, see:

* [Invoke an agent in a Serverless Sandbox tutorial](/sandboxes/invoke-agent-sandbox-tutorial)
* [Train a PyTorch model in a Serverless Sandbox tutorial](/sandboxes/mltrain-in-sandbox-tutorial)
