This feature is currently in private preview and is not recommended for production use.
Design philosophy
Autonomous agents now all have coding abilities. It gives them near-infinite flexibility for tool calling. We believe the future of autonomous agents goes one step further: they will build ad hoc user-facing software to expose as micro-apps to end-users - whether humans-in-the-loop, or other agents. As AI agents produce outputs faster than humans by several orders of magnitude, a key requirement is the ability for agents to iterate on this user-facing software in near real-time. For instance, in a world where an agent generates a full running app in a couple of minutes, pushes it to prod, and iterates on it every few minutes, it cannot afford a build time for every deployment. Conceptually, an Application is a snapshot of an AI-generated piece of software, frozen at a point in time and served to end users. Sandboxes, on the other hand, are the development & experimentation environment for agents. In a sandbox, they can do anything anytime, but that also means they can break anything which becomes a problem once it’s serving live traffic. With that framing, features can be built specifically for each use case, for example:- A distinct custom domain per app. Each Application typically belongs to a different end user, whereas a Sandbox usually sits behind a single custom domain: yours.
- A real deployment lifecycle: blue-green deploys, rollbacks, observability, etc.
Key concepts
- Application: A long-running deployment that serves traffic on a public URL.
- Revision: An immutable snapshot of the application code, image, environment, and memory configuration. Each deploy creates a new revision (max 5 kept).
- Custom URLs: Map verified custom domains to your application.
Create an application
Using the SDKs
Using the CLI
Deploy from a project directory containing ablaxel.toml:
blaxel.toml:
bl deploy or bl push), set the image field. External registries are not supported — the image must live in your workspace’s Blaxel registry:
Using the HTTP API
Create an application from a sandbox fork
You can turn a running sandbox into an application by forking it. The application’simage, memory, envs, and port are inherited from the source sandbox, so the fork starts serving the sandbox’s current state on a stable application URL with revision management and custom domains on top.
This is useful for promoting a sandbox you developed and tested interactively into a long-running, publicly addressable service without rebuilding an image.
Fork a sandbox into an application with sandbox.fork(targetName, { targetType: "application" }):
Fork from an earlier snapshot
To serve a specific point in time rather than the sandbox’s current state, take a snapshot first, then pass its id when forking (snapshotId in TypeScript, snapshot_id in Python):
sandbox.listSnapshots() / sandbox.list_snapshots(). See Snapshots and fork for the full snapshot lifecycle.
Attach a custom domain at fork time
If an application with
targetName already exists, forking updates its compute so the backend generates a fresh revision serving the forked sandbox’s state. Otherwise a new application is created. Forking into an application requires the Application Runtime feature to be enabled on your workspace.Retrieve an application
List applications
Update an application
Updating an application with a new image or configuration creates a new revision.Delete an application
Revisions
Each deploy creates a new revision. A maximum of 5 revisions are kept per application. Revisions contain the image, environment variables, memory allocation, and port configuration.List revisions
Switch between revisions
The latest revision serves traffic by default. To roll back (or forward) to another one, setactive to its id in the application’s revision configuration:
Custom URLs
By default, applications are accessible at a generated URL. You can configure custom URLs using verified custom domains in your workspace.Create or update an application with custom URLs
Pass theurls field in the application spec to attach a verified custom domain.
*.sandbox.example.com), use the subdomain field:
Create a custom domain for an application
You can also create a custom domain scoped to a specific application using the dedicated endpoint. After creation, configure DNS records and verify domain ownership before it becomes active.The domain must be a verified custom domain in your workspace. Custom domain verification is managed in the Infrastructure section of the Blaxel Console.
Environment variables and secrets
Pass environment variables to your application through the spec-levelenvs field. Each entry has a name and value; set secret: true to mark the value as a secret so it is stored and displayed securely.
Memory and compute
Memory allocation is set per revision in megabytes. The default is 2048 MB. CPU resources are allocated proportionally based on memory (CPU = memory / 2048 cores).Application deployment statuses
During the deployment process, the possible application statuses are:DEPLOYING: The application deployment is in progress.DEPLOYED: The application is running and serving traffic.FAILED: An error occurred during the build or deployment.
Sandbox snapshots and fork
Create snapshots and fork sandboxes into applications or new sandboxes.
Variables and secrets
Manage environment variables and secrets for your deployments.
