Daytona AI
Run AI Code.
Secure and Elastic Infrastructure for
Running Your AI-Generated Code.
Documentation · Report Bug · Request Feature · Join our Slack · Connect on X
Installation
Python SDK
pip install daytona-sdk
TypeScript SDK
npm install @daytonaio/sdk
Features
- Lightning-Fast Infrastructure: Sub-90ms Sandbox creation from code to execution.
- Separated & Isolated Runtime: Execute AI-generated code with zero risk to your infrastructure.
- Massive Parallelization for Concurrent AI Workflows: Fork Sandbox filesystem and memory state (Coming soon!)
- Programmatic Control: File, Git, LSP, and Execute API
- Unlimited Persistence: Your Sandboxes can live forever
- OCI/Docker Compatibility: Use any OCI/Docker image to create a Sandbox
Quick Start
- Create an account at https://app.daytona.io
- Generate a new API key
- Follow the Getting Started docs to start using the Daytona SDK
Creating your first Sandbox
Python SDK
from daytona_sdk import Daytona, DaytonaConfig, CreateSandboxParams
# Initialize the Daytona client
daytona = Daytona(DaytonaConfig(api_key="YOUR_API_KEY"))
# Create the Sandbox instance
sandbox = daytona.create(CreateSandboxParams(language="python"))
# Run code securely inside the Sandbox
response = sandbox.process.code_run('print("Sum of 3 and 4 is " + str(3 + 4))')
if response.exit_code != 0:
print(f"Error running code: {response.exit_code} {response.result}")
else:
print(response.result)
# Clean up the Sandbox
daytona.remove(sandbox)
Typescript SDK
import { Daytona } from '@daytonaio/sdk'
async function main() {
// Initialize the Daytona client
const daytona = new Daytona({
apiKey: 'YOUR_API_KEY',
})
let sandbox
try {
// Create the Sandbox instance
sandbox = await daytona.create({
language: 'python',
})
// Run code securely inside the Sandbox
const response = await sandbox.process.codeRun('print("Sum of 3 and 4 is " + str(3 + 4))')
if (response.exitCode !== 0) {
console.error('Error running code:', response.exitCode, response.result)
} else {
console.log(response.result)
}
} catch (error) {
console.error('Sandbox flow error:', error)
} finally {
if (sandbox) await daytona.remove(sandbox)
}
}
main().catch(console.error)