Skip to main content
You can customize your Blaxel deployment with Blaxel’s configuration file blaxel.toml. The format of Blaxel’s configuration file is described below.
# resource type (optional)
# possible values: ["agent", "function", "job", "sandbox", "volume-template"]
# type = "agent"

# resource name (optional)
# defaults to the directory name
# name = "my-resource"

# registry image (optional, for resource type="sandbox")
# use a pre-built image from a private registry instead of building from a Dockerfile
# requires registry credentials in .docker/config.json or via bl push flags
# image = "docker.io/myuser/my-sandbox:latest"

# public access to resource (only valid for resource type="agent")
# possible values: [true, false]
# defaults to false
# public = false

# deployment region (optional, for resource type="agent", "function")
# pins the resource to a specific region instead of global distribution
# required when attaching volumes to an agent
# region = "us-pdx-1"

# build configuration (optional)
# [build]
# automatic image slimming
# possible values: [true, false]
# defaults to true
# slim = true

# build-time variables (optional)
# should be used for non-secret values only
# [build.args]
# MY_BUILD_VAR = "my-value"

# entrypoint configuration (optional)
# [entrypoint]
# entrypoint command for production environment
# prod = "python main.py"

# entrypoint command for development environment
# dev = "python main.py --dev"

# environment variables (optional)
# [env]
# key-value pairs
# MY_VAR = "my-value"

# runtime configuration (optional)
# [runtime]
# memory (MB)
# memory = 4096

# job configuration
# maxConcurrentTasks = 10

# task timeout in seconds  (only valid for resource type="job")
# timeout = 900

# maximum number of retries
# maxRetries = 0

# base root disk allocation as a percentage of available disk (only valid for resource type="job")
# diskPercent = 5

# volumes (optional, for resource type="agent", "sandbox", "volume-template", "job")
# attaches persistent storage to the resource
# the resource must be pinned to the same region as the volume
# [[volumes]]
# volume name
# name = "my-volume"

# volume type (only for resource type="job")
# possible values: ["ephemeral"]
# type = "ephemeral"

# volume mount path
# for resource type="agent" and "sandbox", attaches persistent storage
# for resource type="job", attaches ephemeral storage
# mountPath = "/data"

# volume size in MB (only valid for resource type="job" and volume type="ephemeral")
# sizeMb = 10240

# volume templates directory (only valid for resource type="volume-template")
# directory = "."

# volume default size in MB (only valid for resource type="volume-template")
# defaultSize = 1024

# GitHub Runner integration (optional, only valid for resource type="job")
# [githubRunner]
# list of GitHub repositories this runner can pick up jobs from
# repositories = ["owner/repo"]

# job trigger (optional)
# [[triggers]]
# trigger identifier
# id = "my-trigger"

# trigger type
# possible values: ["cron", "http", "http-async"]
# "cron" trigger (only valid for resource type="job")
# type = "cron"
# "http" trigger (only valid for resource type="agent" and resource type="function")
# type = "http"
# "http-async" trigger (only valid for resource type="agent")
# type = "http-async"

# [[triggers.configuration]]
# cron expression (only for trigger type="cron")
# schedule = "0 * * * *"

# endpoint URL (only for trigger type="http" and trigger type="http-async")
# path = "/webhook"

# endpoint authentication (only for resource type="function" and trigger type="http")
# possible values: ["public", "private"]
# authenticationType = "public"

# callback URL (only for trigger type="http-async")
# callbackUrl = "https://webhook.site/3955e30a-e4b6-4fa5-8a28-598ce0f53386"
Last modified on May 28, 2026