Skip to main content

Daytona

Uses a Daytona sandbox with an S3 workspace mount at options.workspaceRoot/<namespace>. The default workspaceRoot is /mnt/workspaces so Daytona matches Lambda and Kubernetes.

Configuration

{
"name": "daytona",
"config": {
"provider": "daytona",
"permissionMode": "ask",
"options": {
"apiKey": "...",
"organizationId": "...",
"apiUrl": "https://app.daytona.io/api",
"target": "default",
"snapshot": "fuse-s3",
"workspaceRoot": "/mnt/workspaces",
"mountAwsS3Buckets": true
}
}
}

Reference the resulting sandboxId from config.sandbox or config.workspaces[].sandbox. apiKey, organizationId, apiUrl, and target can be omitted when DAYTONA_API_KEY, DAYTONA_ORGANIZATION_ID, DAYTONA_API_URL, and DAYTONA_TARGET are set.

Use snapshot for Daytona snapshots. Use image only when creating the sandbox from a Docker/OCI image. For the current AWS-backed workspace, build the reusable mount-s3 snapshot first:

bun run daytona:s3-snapshot

sandbox.envVars passes additional environment variables into the sandbox container. All providers honor it (Lambda, E2B, and Daytona).

Requirements

Use an image or target with Node and Python installed. For persistent workspace tools, set options.mountAwsS3Buckets: true; the executor mounts the selected sandbox/<namespace>/ prefix at options.workspaceRoot/<namespace>.

What the model sees

For workspace-backed runs, the model should see a normal project directory. bash starts in the selected workspace directory:

pwd # current workspace directory
ls # files in this workspace
python3 script.py

Use relative paths in prompts and examples. options.workspaceRoot is an implementation setting for the mount location, not a path the model needs for normal file work.

Execution Notes

See Daytona runtime documentation for supported runtimes and environment setup.

TypeScript (.ts) files are not transpiled; use compiled JavaScript instead. python <file> is rewritten to python3 at runtime.

AWS S3 Workspace Mount

See Daytona's Amazon S3 mount docs for the underlying mount-s3 setup.

Set options.mountAwsS3Buckets to true to mount the current FILESYSTEM_BUCKET_NAME bucket at options.workspaceRoot/<namespace>. This is required for the Daytona provider to see the same files as the Lambda bash tool.

The snapshot must include mount-s3; use bun run daytona:s3-snapshot to build it from daytonaio/sandbox:0.8.0.

The executor passes AWS credentials and region into the Daytona sandbox for mount-s3. Treat Daytona sandboxes as trusted account-controlled compute when this option is enabled.

Override defaults with:

{
"workspaceBucketName": "my-workspace-bucket",
"awsRegion": "eu-central-1"
}

Dependencies

Use an image or image builder with packages installed before runtime.