# Configuration Options This guide details all configuration options available for OpenHands, helping you customize its behavior and integrate it with other services. :::note If you are running in [GUI Mode](https://docs.all-hands.dev/modules/usage/how-to/gui-mode), the settings available in the Settings UI will always take precedence. ::: ## Core Configuration The core configuration options are defined in the `[core]` section of the `config.toml` file. ### API Keys - `e2b_api_key` - Type: `str` - Default: `""` - Description: API key for E2B - `modal_api_token_id` - Type: `str` - Default: `""` - Description: API token ID for Modal - `modal_api_token_secret` - Type: `str` - Default: `""` - Description: API token secret for Modal ### Workspace - `workspace_base` - Type: `str` - Default: `"./workspace"` - Description: Base path for the workspace - `cache_dir` - Type: `str` - Default: `"/tmp/cache"` - Description: Cache directory path ### Debugging and Logging - `debug` - Type: `bool` - Default: `false` - Description: Enable debugging - `disable_color` - Type: `bool` - Default: `false` - Description: Disable color in terminal output ### Trajectories - `save_trajectory_path` - Type: `str` - Default: `"./trajectories"` - Description: Path to store trajectories (can be a folder or a file). If it's a folder, the trajectories will be saved in a file named with the session id name and .json extension, in that folder. - `replay_trajectory_path` - Type: `str` - Default: `""` - Description: Path to load a trajectory and replay. If given, must be a path to the trajectory file in JSON format. The actions in the trajectory file would be replayed first before any user instruction is executed. ### File Store - `file_store_path` - Type: `str` - Default: `"/tmp/file_store"` - Description: File store path - `file_store` - Type: `str` - Default: `"memory"` - Description: File store type - `file_uploads_allowed_extensions` - Type: `list of str` - Default: `[".*"]` - Description: List of allowed file extensions for uploads - `file_uploads_max_file_size_mb` - Type: `int` - Default: `0` - Description: Maximum file size for uploads, in megabytes - `file_uploads_restrict_file_types` - Type: `bool` - Default: `false` - Description: Restrict file types for file uploads - `file_uploads_allowed_extensions` - Type: `list of str` - Default: `[".*"]` - Description: List of allowed file extensions for uploads ### Task Management - `max_budget_per_task` - Type: `float` - Default: `0.0` - Description: Maximum budget per task (0.0 means no limit) - `max_iterations` - Type: `int` - Default: `100` - Description: Maximum number of iterations ### Sandbox Configuration - `workspace_mount_path_in_sandbox` - Type: `str` - Default: `"/workspace"` - Description: Path to mount the workspace in the sandbox - `workspace_mount_path` - Type: `str` - Default: `""` - Description: Path to mount the workspace - `workspace_mount_rewrite` - Type: `str` - Default: `""` - Description: Path to rewrite the workspace mount path to. You can usually ignore this, it refers to special cases of running inside another container. ### Miscellaneous - `run_as_openhands` - Type: `bool` - Default: `true` - Description: Run as OpenHands - `runtime` - Type: `str` - Default: `"docker"` - Description: Runtime environment - `default_agent` - Type: `str` - Default: `"CodeActAgent"` - Description: Name of the default agent - `jwt_secret` - Type: `str` - Default: `uuid.uuid4().hex` - Description: JWT secret for authentication. Please set it to your own value. ## LLM Configuration The LLM (Large Language Model) configuration options are defined in the `[llm]` section of the `config.toml` file. To use these with the docker command, pass in `-e LLM_