Prerequisites

The Daytona tools require the daytona Python package
pip install daytona
The API credentials can be obtained from the Daytona Dashboard:
export DAYTONA_API_KEY=<your_api_key>
export DAYTONA_API_URL=<your_api_url>  # optional

Example

cookbook/tools/daytona_tools.py
from textwrap import dedent

from agno.agent import Agent
from agno.tools.daytona import DaytonaTools

agent = Agent(
    name="Coding Agent with Daytona tools",
    tools=[DaytonaTools()],
    markdown=True,
    instructions=dedent("""
    You are an expert at writing and executing code. You have access to a remote, secure Daytona sandbox.
    Your primary purpose is to:
        1. Write clear, efficient code based on user requests
        2. ALWAYS execute the code in the Daytona sandbox using run_code
        3. Show the actual execution results to the user
        4. Provide explanations of how the code works and what the output means
    Guidelines:
        - NEVER just provide code without executing it
        - Execute all code using the run_code tool to show real results
        - Support Python, JavaScript, and TypeScript execution
        - Use file operations (create_file, read_file) when working with scripts
        - Install missing packages when needed using run_shell_command
        - Always show both the code AND the execution output
        - Handle errors gracefully and explain any issues encountered
    """),
    show_tool_calls=True,
)

agent.print_response(
    "Write JavaScript code to generate 10 random numbers between 1 and 100, sort them in ascending order, and print each number"
)

Toolkit Params

ParameterTypeDefaultDescription
api_keystrDAYTONA_API_KEYDaytona API key. Defaults to environment variable
api_urlstrDAYTONA_API_URLDaytona API URL. Defaults to environment variable
sandbox_idstrNoneSpecific sandbox ID to use. If None, creates or uses persistent sandbox
sandbox_languageCodeLanguagePYTHONPrimary language for the sandbox (PYTHON, JAVASCRIPT, TYPESCRIPT)
sandbox_targetstrNoneTarget configuration for the sandbox
sandbox_osstrNoneOperating system for the sandbox
auto_stop_intervalint60Auto-stop interval in minutes (0 to disable)
sandbox_os_userstrNoneOS user for the sandbox
sandbox_env_varsDict[str, str]NoneEnvironment variables for the sandbox
sandbox_labelsDict[str, str]{}Labels for the sandbox
sandbox_publicboolNoneWhether the sandbox should be public
organization_idstrNoneOrganization ID for the sandbox
timeoutint300Timeout for sandbox operations in seconds
auto_create_sandboxboolTrueAutomatically create sandbox if none exists
verify_sslboolFalseWhether to verify SSL certificates
persistentboolTrueWhether to reuse the same sandbox across agent sessions
instructionsstrDefault guidelinesCustom instructions for the toolkit
add_instructionsboolFalseWhether to add instructions to the agent

Toolkit Functions

Code Execution

FunctionDescription
run_codeExecute Python, JavaScript, or TypeScript code in the sandbox

File Operations

FunctionDescription
create_fileCreate or update files in the sandbox
read_fileRead file contents from the sandbox
list_filesList directory contents in the sandbox
delete_fileDelete files or directories from the sandbox

Shell & Environment

FunctionDescription
run_shell_commandExecute shell commands (bash) in the sandbox
change_directoryChange the current working directory in the sandbox

Developer Resources