# Daytona Documentation (/docs/quickstart)

Daytona is a secure and elastic infrastructure for running AI-generated code.

Daytona provides **full composable computers** — [sandboxes](/docs/sandboxes) — with complete isolation, a dedicated kernel, filesystem, network stack, and allocated vCPU, RAM, and disk.

Sandboxes are the core component of the Daytona platform, spinning up in under 90ms from code to execution and running any code in Python, TypeScript, and JavaScript. Built on OCI/Docker compatibility, massive parallelization, and unlimited persistence, sandboxes deliver consistent, predictable environments for AI, agent and reinforcement learning workflows.

Agents and developers interact with sandboxes programmatically using the SDKs, API, and CLI.

<AgentPrompt
  title="Agent Prompt"
  prompt={`
Help me set up Daytona in this project. Before writing any Daytona code, verify the setup:

1. Check that the Daytona SDK is installed for the language used in this project. If not, install it.

    Python: \`pip install daytona\`
    TypeScript: \`npm install @daytona/sdk\`
    Ruby: \`gem install daytona\`
    Go: \`go get github.com/daytona/clients/sdk-go\`
    Java: add the \`io.daytona:sdk\` dependency to \`build.gradle.kts\` or \`pom.xml\`

2. Check DAYTONA_API_KEY in the shell environment or in environment files. If not set, tell the user they need an API key and point them to https://app.daytona.io/dashboard/keys to create one.

3. Write a script that initializes the Daytona client, creates a sandbox, runs a "Hello World" program inside it, captures the output, and deletes the sandbox.

4. Run the script to verify the sandbox works.
`}
/>

## Get started [#get-started]

1. Create an account → [app.daytona.io](https://app.daytona.io)
2. Get an API key → [app.daytona.io/dashboard/keys](https://app.daytona.io/dashboard/keys)
3. Save the API key → **`DAYTONA_API_KEY`** environment variable or in a **`.env`** file.

<Tabs syncKey="shell">
<TabItem label=".env">

```bash
DAYTONA_API_KEY=YOUR_API_KEY
```

</TabItem>
<TabItem label="Bash/Zsh" icon="seti:shell">

```bash
export DAYTONA_API_KEY=YOUR_API_KEY
```

</TabItem>
<TabItem label="Windows PowerShell" icon="seti:powershell">

```powershell
$env:DAYTONA_API_KEY="YOUR_API_KEY"
```

</TabItem>
</Tabs>

<Tabs syncKey="language">
<TabItem label="Python" icon="seti:python">

4. Install the Python SDK

    ```bash 
    pip install daytona
    ```

5. Create a sandbox and run code

    ```python
    # Import the Daytona SDK
    from daytona import Daytona, DaytonaConfig

    # Define the configuration
    config = DaytonaConfig(api_key="YOUR_API_KEY") # Replace with your API key

    # Initialize the Daytona client
    daytona = Daytona(config)

    # Create the Sandbox instance
    sandbox = daytona.create()

    # Run code
    response = sandbox.process.code_run('print("Hello World")')
    print(response.result)
    ```

</TabItem>
<TabItem label="TypeScript" icon="seti:typescript">

4. Install the TypeScript SDK

    ```bash
    npm install @daytona/sdk
    ```

5. Create a sandbox and run code

    ```typescript
    // Import the Daytona SDK
    import { Daytona } from '@daytona/sdk'

    // Initialize the Daytona client
    const daytona = new Daytona({ apiKey: 'YOUR_API_KEY' }) // Replace with your API key

    // Create the Sandbox instance
    const sandbox = await daytona.create()

    // Run code
    const response = await sandbox.process.codeRun('print("Hello World")')
    console.log(response.result)
    ```

</TabItem>
<TabItem label="Ruby" icon="seti:ruby">

4. Install the Ruby SDK

    ```bash
    gem install daytona
    ```

5. Create a sandbox and run code

    ```ruby
    require 'daytona'

    # Initialize the Daytona client
    config = Daytona::Config.new(api_key: 'YOUR_API_KEY') # Replace with your API key

    # Create the Daytona client
    daytona = Daytona::Daytona.new(config)

    # Create the Sandbox instance
    sandbox = daytona.create

    # Run code
    response = sandbox.process.code_run(code: 'print("Hello World")')
    puts response.result
    ```

</TabItem>
<TabItem label="Go" icon="seti:go">

4. Install the Go SDK

    ```bash
    go get github.com/daytona/clients/sdk-go
    ```

5. Create a sandbox and run code

    ```go
    package main

    import (
      "context"
      "fmt"

      "github.com/daytona/clients/sdk-go/pkg/daytona"
      "github.com/daytona/clients/sdk-go/pkg/types"
    )

    func main() {
      config := &types.DaytonaConfig{
            APIKey: "YOUR_API_KEY", // Replace with your API key
        }
      client, _ := daytona.NewClientWithConfig(config)
      ctx := context.Background()
      sandbox, _ := client.Create(ctx, nil)

      // Run code
      result, _ := sandbox.Process.CodeRun(ctx, `print("Hello World")`)
      fmt.Println(result.Result)
    }
    ```

</TabItem>
<TabItem label="Java" icon="seti:java">

4. Install the Java SDK

    **Gradle**

    Add the Daytona SDK dependency to your `build.gradle.kts`:

    ```kotlin
    dependencies {
        implementation("io.daytona:sdk-java:0.1.0")
    }
    ```

    **Maven**

    Add the Daytona SDK dependency to your `pom.xml`:

    ```xml
    <dependency>
      <groupId>io.daytona</groupId>
      <artifactId>sdk-java</artifactId>
      <version>0.1.0</version>
    </dependency>
    ```

5. Create a sandbox and run code

    ```java
    import io.daytona.sdk.Daytona;
    import io.daytona.sdk.Sandbox;
    import io.daytona.sdk.DaytonaConfig;
    import io.daytona.sdk.model.ExecuteResponse;

    public class Main {
        public static void main(String[] args) {
            DaytonaConfig config = new DaytonaConfig.Builder()
                .apiKey("YOUR_API_KEY")
                .build();

            try (Daytona daytona = new Daytona(config)) {
                Sandbox sandbox = daytona.create();

                // Run code
                ExecuteResponse response = sandbox.getProcess().codeRun("print(\"Hello World\")");
                System.out.println(response.getResult());
            }
        }
    }
    ```

</TabItem>
<TabItem label="API" icon="seti:json">

4. Create a sandbox and run code

    ```bash
    # Create sandbox
    curl https://app.daytona.io/api/sandbox \
      --request POST \
      --header 'Content-Type: application/json' \
      --header 'Authorization: Bearer YOUR_API_KEY' \
      --data '{}'

    # Run code
    curl 'https://proxy.app.daytona.io/toolbox/{sandboxId}/process/code-run' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{
      "code": "print(\"Hello World\")",
      "language": "python"
    }'
    ```

</TabItem>
<TabItem label="CLI" icon="seti:shell">

4. [Install the CLI](/docs/cli)
5. Create a sandbox and run code

    ```shell
    daytona create --name hello
    daytona exec hello -- python3 -c 'print("Hello World")'
    ```

</TabItem>
</Tabs>

## Next steps [#next-steps]

Daytona provides core platform resources for managing sandboxes, environments, and storage.

<DocLinkCardGrid>
  <DocLinkCard
    title="Linux sandboxes"
    href="/docs/linux-sandboxes"
    icon="sandbox"
    description="Linux container and virtual machine runtime for running processes, executing code, and Linux-specific tools."
  />
  <DocLinkCard
    title="Windows sandboxes"
    href="/docs/windows-sandboxes"
    icon="snapshot"
    description="Windows OS runtime in a virtual machine for running Windows applications and tooling."
  />
  <DocLinkCard
    title="macOS sandboxes"
    href="/docs/macos-sandboxes"
    icon="volume"
    description="macOS runtime for automating applications and desktop interactions."
  />
  <DocLinkCard
    title="GPU sandboxes"
    href="/docs/gpu-sandboxes"
    icon="globe"
    description="NVIDIA and AMD GPU runtime for CUDA development, 3D and graphics workloads, and other GPU-accelerated compute."
  />
</DocLinkCardGrid>

## Reference [#reference]

Daytona provides a comprehensive set of resources for developers and agents to get started and build on the platform. You can find the following resources in the documentation:

- **Daytona SDKs**: [TypeScript](/docs/typescript-sdk), [Python](/docs/python-sdk), [Ruby](/docs/ruby-sdk), [Go](/docs/go-sdk), [Java](/docs/java-sdk)
- **Daytona APIs**: [Platform](/docs/api#daytona) ([OpenAPI](/docs/openapi.json)), [Toolbox](/docs/api#daytona-toolbox) ([OpenAPI](/docs/toolbox-openapi.json)), [Analytics](/docs/api#daytona-analytics) ([OpenAPI](/docs/analytics-openapi.json))
- **Daytona CLI**: [Mac/Linux/Windows](/docs/cli)
- **Daytona LLMs**: [llms.txt](https://www.daytona.io/docs/llms.txt), [llms-full.txt](https://www.daytona.io/docs/llms-full.txt)
- **Daytona Sitemap**: [sitemap-0.xml](https://www.daytona.io/docs/sitemap-0.xml)
- **Daytona Skills**: [agent skills](/docs/agent-skills)
- **Daytona Markdown**: suffix pages with **`.md`** (e.g [sandboxes.md](/docs/sandboxes.md))
