Skip to content
51 changes: 50 additions & 1 deletion apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1145,7 +1145,7 @@ export function NotionIcon(props: SVGProps<SVGSVGElement>) {
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='1em' height='1em' {...props}>
<path
d='M4.459 4.208c.746.606 1.026.56 2.428.466l13.215-.793c.28 0 .047-.28-.046-.326L17.86 1.968c-.42-.326-.981-.7-2.055-.607L3.01 2.295c-.466.046-.56.28-.374.466zm.793 3.08v13.904c0 .747.373 1.027 1.214.98l14.523-.84c.841-.046.935-.56.935-1.167V6.354c0-.606-.233-.933-.748-.887l-15.177.887c-.56.047-.747.327-.747.933zm14.337.745c.093.42 0 .84-.42.888l-.7.14v10.264c-.608.327-1.168.514-1.635.514-.748 0-.935-.234-1.495-.933l-4.577-7.186v6.952L12.21 19s0 .84-1.168.84l-3.222.186c-.093-.186 0-.653.327-.746l.84-.233V9.854L7.822 9.76c-.094-.42.14-1.026.793-1.073l3.456-.233 4.764 7.279v-6.44l-1.215-.139c-.093-.514.28-.887.747-.933zM1.936 1.035l13.31-.98c1.634-.14 2.055-.047 3.082.7l4.249 2.986c.7.513.934.653.934 1.213v16.378c0 1.026-.373 1.634-1.68 1.726l-15.458.934c-.98.047-1.448-.093-1.962-.747l-3.129-4.06c-.56-.747-.793-1.306-.793-1.96V2.667c0-.839.374-1.54 1.447-1.632z'
fill='currentColor'
fill='#000000'
/>
</svg>
)
Expand Down Expand Up @@ -5968,6 +5968,55 @@ export function DatadogIcon(props: SVGProps<SVGSVGElement>) {
)
}

export function DaytonaIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} viewBox='0 0 69 73' fill='none' xmlns='http://www.w3.org/2000/svg'>
<rect x='3.63965' y='49.2356' width='24.9293' height='8.54716' fill='#000000' />
<rect x='37.1162' y='19.3206' width='28.4906' height='8.54716' fill='#000000' />
<rect
width='29.9151'
height='8.54717'
transform='matrix(0.707107 -0.707106 0.707107 0.707106 22.1582 21.9543)'
fill='#000000'
/>
<rect
width='22.9746'
height='8.54717'
transform='matrix(-0.707107 -0.707106 -0.707107 0.707106 22.2891 43.3223)'
fill='#000000'
/>
<rect
width='24.217'
height='8.54717'
transform='matrix(-0.707107 0.707106 -0.707107 -0.707106 43.6572 55.2791)'
fill='#000000'
/>
<rect
width='27.066'
height='8.54717'
transform='matrix(0.707107 0.707106 0.707107 -0.707106 43.5264 33.9111)'
fill='#000000'
/>
<rect
x='22.1582'
y='12.9094'
width='20.6556'
height='8.54718'
transform='rotate(90 22.1582 12.9094)'
fill='#000000'
/>
<rect
x='52.0732'
y='42.825'
width='25.6415'
height='8.54718'
transform='rotate(90 52.0732 42.825)'
fill='#000000'
/>
</svg>
)
}

export function MicrosoftDataverseIcon(props: SVGProps<SVGSVGElement>) {
const id = useId()
const clip0 = `dataverse_clip0_${id}`
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/components/ui/icon-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import {
DagsterIcon,
DatabricksIcon,
DatadogIcon,
DaytonaIcon,
DevinIcon,
DiscordIcon,
DocumentIcon,
Expand Down Expand Up @@ -268,6 +269,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
dagster: DagsterIcon,
databricks: DatabricksIcon,
datadog: DatadogIcon,
daytona: DaytonaIcon,
devin: DevinIcon,
discord: DiscordIcon,
docusign: DocuSignIcon,
Expand Down
301 changes: 301 additions & 0 deletions apps/docs/content/docs/en/integrations/daytona.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,301 @@
---
title: Daytona
description: Run code and commands in secure cloud sandboxes
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
type="daytona"
color="#FFFFFF"
/>

{/* MANUAL-CONTENT-START:intro */}
[Daytona](https://www.daytona.io/) is secure, elastic infrastructure for running AI-generated code. Daytona provides isolated sandboxes that spin up in milliseconds, giving your agents a safe place to execute shell commands, run code, work with files, and clone repositories — without ever touching your own machines.

**Why Daytona?**
- **Built for AI-generated code:** Sandboxes are fully isolated runtimes, so untrusted or generated code can run safely with no risk to your infrastructure.
- **Fast, elastic sandboxes:** Create a sandbox in under a couple hundred milliseconds, use it for one task or keep it alive across a whole session, and let auto-stop and auto-delete intervals clean up after you.
- **Complete toolbox:** Execute shell commands, run Python, JavaScript, or TypeScript with a built-in code interpreter, transfer files in and out, and clone Git repositories — all through one API.
- **Programmatic lifecycle control:** Create, list, start, stop, and delete sandboxes on demand, with snapshots, regions, resource sizing, environment variables, and labels.

**Using Daytona in Sim**

Sim's Daytona integration connects your workflows to Daytona with an API key. Twelve operations cover the full sandbox lifecycle and toolbox: create, list, get, start, stop, and delete sandboxes; run code and execute commands inside them; upload, download, and list files; and clone Git repositories.

**Key benefits of using Daytona in Sim:**
- **Safe code interpreter for agents:** Let an agent write Python, JavaScript, or TypeScript and execute it in an isolated sandbox, then use the output downstream in your workflow.
- **Real file handling:** Upload workflow files directly into a sandbox, process them with code or commands, and download the results as files other blocks can consume.
- **Repository automation:** Clone a repository into a sandbox, run installs, builds, or tests, and report the results — perfect for CI-style checks and repo health monitoring.
- **Cost-aware lifecycle:** Create sandboxes on demand, stop or delete them when work finishes, and use auto-stop intervals so idle sandboxes never run up your bill.

Whether you're building an AI code interpreter, validating generated code before it ships, analyzing data files in a clean environment, or automating repository checks, Daytona in Sim gives your agents real compute with strong isolation. Configure your API key, pick an operation, and start running code.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate Daytona into your workflow to run AI-generated code in secure, isolated sandboxes. Create and manage sandboxes, execute shell commands, run Python, JavaScript, or TypeScript code, transfer files, and clone Git repositories.



## Actions

### `daytona_create_sandbox`

Create a new Daytona sandbox for running AI-generated code in isolation

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `snapshot` | string | No | ID or name of the snapshot to create the sandbox from \(uses default if empty\) |
| `name` | string | No | Name for the sandbox \(defaults to the sandbox ID\) |
| `target` | string | No | Region where the sandbox will be created \(e.g., us, eu\) |
| `user` | string | No | User associated with the sandbox |
| `env` | json | No | Environment variables to set in the sandbox as key-value pairs |
| `labels` | json | No | Labels to attach to the sandbox as key-value pairs |
| `cpu` | number | No | CPU cores to allocate to the sandbox |
| `memory` | number | No | Memory to allocate to the sandbox in GB |
| `disk` | number | No | Disk space to allocate to the sandbox in GB |
| `autoStopInterval` | number | No | Auto-stop interval in minutes \(0 disables auto-stop\) |
| `autoArchiveInterval` | number | No | Auto-archive interval in minutes \(0 uses the maximum interval\) |
| `autoDeleteInterval` | number | No | Auto-delete interval in minutes \(negative disables, 0 deletes immediately on stop\) |
| `public` | boolean | No | Whether the sandbox HTTP preview is publicly accessible |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandbox` | json | The created sandbox |

### `daytona_list_sandboxes`

List Daytona sandboxes in the organization

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `limit` | number | No | Maximum number of sandboxes to return \(1-200\) |
| `name` | string | No | Filter sandboxes by name prefix \(case-insensitive\) |
| `labels` | json | No | Filter sandboxes by labels as key-value pairs |
| `cursor` | string | No | Pagination cursor from a previous response |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandboxes` | array | Sandboxes in the organization |
| `nextCursor` | string | Cursor for the next page of results |

### `daytona_get_sandbox`

Get details of a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID or name of the sandbox |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandbox` | json | The sandbox details |

### `daytona_start_sandbox`

Start a stopped Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID or name of the sandbox |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandbox` | json | The started sandbox |

### `daytona_stop_sandbox`

Stop a running Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID or name of the sandbox |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandbox` | json | The stopped sandbox |

### `daytona_delete_sandbox`

Delete a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID or name of the sandbox |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sandbox` | json | The deleted sandbox |

### `daytona_execute_command`

Execute a shell command inside a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to execute the command in |
| `command` | string | Yes | Shell command to execute |
| `cwd` | string | No | Working directory for the command \(defaults to the sandbox working directory\) |
| `env` | json | No | Environment variables to set for the command as key-value pairs |
| `timeout` | number | No | Timeout in seconds \(defaults to 10 seconds\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `exitCode` | number | Exit code of the command \(-1 if missing from the response\) |
| `result` | string | Combined stdout/stderr output of the command |

### `daytona_run_code`

Run Python, JavaScript, or TypeScript code inside a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to run the code in |
| `code` | string | Yes | Code to run |
| `language` | string | Yes | Language of the code: python, javascript, or typescript |
| `env` | json | No | Environment variables to set for the run as key-value pairs |
| `timeout` | number | No | Timeout in seconds \(defaults to 10 seconds\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `exitCode` | number | Exit code of the code run \(-1 if missing from the response\) |
| `result` | string | Combined stdout/stderr output of the code run |
| `artifacts` | json | Artifacts produced by the run \(e.g., matplotlib charts\) |

### `daytona_upload_file`

Upload a file to a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to upload the file to |
| `destinationPath` | string | Yes | Destination path in the sandbox \(a trailing slash uploads into that directory using the file name\) |
| `file` | file | No | The file to upload |
| `fileContent` | string | No | Legacy: base64 encoded file content |
| `fileName` | string | No | Optional file name override |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uploadedPath` | string | Path of the uploaded file in the sandbox |
| `name` | string | Name of the uploaded file |
| `size` | number | Size of the uploaded file in bytes |

### `daytona_download_file`

Download a file from a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to download the file from |
| `filePath` | string | Yes | Path of the file in the sandbox |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | file | Downloaded file stored in execution files |
| `name` | string | Name of the downloaded file |
| `mimeType` | string | MIME type of the downloaded file |
| `size` | number | Size of the downloaded file in bytes |

### `daytona_list_files`

List files in a directory of a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to list files in |
| `path` | string | No | Directory path to list \(defaults to the sandbox working directory\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `files` | array | Files and directories at the given path |
| ↳ `name` | string | File or directory name |
| ↳ `isDir` | boolean | Whether the entry is a directory |
| ↳ `size` | number | Size in bytes |
| ↳ `mode` | string | File mode string |
| ↳ `permissions` | string | Permission string |
| ↳ `owner` | string | Owning user |
| ↳ `group` | string | Owning group |
| ↳ `modifiedAt` | string | Last modification timestamp |

### `daytona_git_clone`

Clone a Git repository into a Daytona sandbox

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Daytona API key |
| `sandboxId` | string | Yes | ID of the sandbox to clone the repository into |
| `url` | string | Yes | URL of the Git repository to clone |
| `path` | string | Yes | Path in the sandbox to clone the repository into |
| `branch` | string | No | Branch to clone \(defaults to the default branch\) |
| `commitId` | string | No | Specific commit to check out after cloning |
| `username` | string | No | Username for authenticating to private repositories |
| `password` | string | No | Password or personal access token for private repositories |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `repoUrl` | string | URL of the cloned repository |
| `clonePath` | string | Path the repository was cloned into |


1 change: 1 addition & 0 deletions apps/docs/content/docs/en/integrations/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
"dagster",
"databricks",
"datadog",
"daytona",
"devin",
"discord",
"docusign",
Expand Down
2 changes: 1 addition & 1 deletion apps/docs/content/docs/en/integrations/notion.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard
type="notion_v2"
color="#181C1E"
color="#FFFFFF"
/>

{/* MANUAL-CONTENT-START:intro */}
Expand Down
Loading
Loading