swagger: '2.0' info: description: Daytona Toolbox API title: Daytona Sandbox Toolbox API contact: {} license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0 version: v0.0.0-dev paths: /computeruse/a11y/find: post: description: Search the AT-SPI tree for nodes matching a role/name/state filter and return a flat list. consumes: - application/json produces: - application/json tags: - computer-use summary: Find accessibility nodes operationId: FindAccessibilityNodes parameters: - description: Find request name: request in: body required: true schema: $ref: '#/definitions/FindAccessibilityNodesRequest' responses: '200': description: OK schema: $ref: '#/definitions/AccessibilityNodesResponse' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/focus: post: description: Move keyboard focus to the AT-SPI node identified by id (bus-name:object-path). consumes: - application/json produces: - application/json tags: - computer-use summary: Focus an accessibility node operationId: FocusAccessibilityNode parameters: - description: Node focus request name: request in: body required: true schema: $ref: '#/definitions/AccessibilityNodeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/invoke: post: description: Call an AT-SPI Action on the node. Leave action empty to invoke the node's primary (first) action. consumes: - application/json produces: - application/json tags: - computer-use summary: Invoke an action on an accessibility node operationId: InvokeAccessibilityNode parameters: - description: Invoke request name: request in: body required: true schema: $ref: '#/definitions/AccessibilityInvokeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/node/value: post: description: Write the given value to the node via EditableText.SetTextContents or, for numeric controls, Value.CurrentValue. consumes: - application/json produces: - application/json tags: - computer-use summary: Set the value of an accessibility node operationId: SetAccessibilityNodeValue parameters: - description: Set value request name: request in: body required: true schema: $ref: '#/definitions/AccessibilitySetValueRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/a11y/tree: get: description: Fetch the AT-SPI accessibility tree for the focused application, a specific PID, or all registered applications. produces: - application/json tags: - computer-use summary: Get accessibility tree operationId: GetAccessibilityTree parameters: - type: string description: 'Scope: focused | pid | all (default: focused)' name: scope in: query - type: integer description: Process ID when scope=pid name: pid in: query - type: integer description: Max tree depth (-1 unbounded, 0 root only; default -1) name: maxDepth in: query responses: '200': description: OK schema: $ref: '#/definitions/AccessibilityTreeResponse' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string '503': description: Service Unavailable schema: type: object additionalProperties: type: string /computeruse/display/info: get: description: Get information about all available displays produces: - application/json tags: - computer-use summary: Get display information operationId: GetDisplayInfo responses: '200': description: OK schema: $ref: '#/definitions/DisplayInfoResponse' /computeruse/display/windows: get: description: Get information about all open windows produces: - application/json tags: - computer-use summary: Get windows information operationId: GetWindows responses: '200': description: OK schema: $ref: '#/definitions/WindowsResponse' /computeruse/keyboard/hotkey: post: description: Press a hotkey combination (e.g., ctrl+c, cmd+v) consumes: - application/json produces: - application/json tags: - computer-use summary: Press hotkey operationId: PressHotkey parameters: - description: Hotkey press request name: request in: body required: true schema: $ref: '#/definitions/KeyboardHotkeyRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/keyboard/key: post: description: Press a key with optional modifiers consumes: - application/json produces: - application/json tags: - computer-use summary: Press key operationId: PressKey parameters: - description: Key press request name: request in: body required: true schema: $ref: '#/definitions/KeyboardPressRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/keyboard/type: post: description: Type text with optional delay between keystrokes consumes: - application/json produces: - application/json tags: - computer-use summary: Type text operationId: TypeText parameters: - description: Text typing request name: request in: body required: true schema: $ref: '#/definitions/KeyboardTypeRequest' responses: '200': description: OK schema: $ref: '#/definitions/Empty' /computeruse/mouse/click: post: description: Click the mouse button at the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Click mouse button operationId: Click parameters: - description: Mouse click request name: request in: body required: true schema: $ref: '#/definitions/MouseClickRequest' responses: '200': description: OK schema: $ref: '#/definitions/MouseClickResponse' /computeruse/mouse/drag: post: description: Drag the mouse from start to end coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Drag mouse operationId: Drag parameters: - description: Mouse drag request name: request in: body required: true schema: $ref: '#/definitions/MouseDragRequest' responses: '200': description: OK schema: $ref: '#/definitions/MouseDragResponse' /computeruse/mouse/move: post: description: Move the mouse cursor to the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Move mouse cursor operationId: MoveMouse parameters: - description: Mouse move request name: request in: body required: true schema: $ref: '#/definitions/MouseMoveRequest' responses: '200': description: OK schema: $ref: '#/definitions/MousePositionResponse' /computeruse/mouse/position: get: description: Get the current mouse cursor position produces: - application/json tags: - computer-use summary: Get mouse position operationId: GetMousePosition responses: '200': description: OK schema: $ref: '#/definitions/MousePositionResponse' /computeruse/mouse/scroll: post: description: Scroll the mouse wheel at the specified coordinates consumes: - application/json produces: - application/json tags: - computer-use summary: Scroll mouse wheel operationId: Scroll parameters: - description: Mouse scroll request name: request in: body required: true schema: $ref: '#/definitions/MouseScrollRequest' responses: '200': description: OK schema: $ref: '#/definitions/ScrollResponse' /computeruse/process-status: get: description: Get the status of all computer use processes produces: - application/json tags: - computer-use summary: Get computer use process status operationId: GetComputerUseStatus responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStatusResponse' /computeruse/process/{processName}/errors: get: description: Get errors for a specific computer use process produces: - application/json tags: - computer-use summary: Get process errors operationId: GetProcessErrors parameters: - type: string description: Process name to get errors for name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessErrorsResponse' /computeruse/process/{processName}/logs: get: description: Get logs for a specific computer use process produces: - application/json tags: - computer-use summary: Get process logs operationId: GetProcessLogs parameters: - type: string description: Process name to get logs for name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessLogsResponse' /computeruse/process/{processName}/restart: post: description: Restart a specific computer use process produces: - application/json tags: - computer-use summary: Restart specific process operationId: RestartProcess parameters: - type: string description: Process name to restart name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessRestartResponse' /computeruse/process/{processName}/status: get: description: Check if a specific computer use process is running produces: - application/json tags: - computer-use summary: Get specific process status operationId: GetProcessStatus parameters: - type: string description: Process name to check name: processName in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/ProcessStatusResponse' /computeruse/recordings: get: description: Get a list of all recordings (active and completed) produces: - application/json tags: - computer-use summary: List all recordings operationId: ListRecordings responses: '200': description: OK schema: $ref: '#/definitions/ListRecordingsResponse' '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/start: post: description: Start a new screen recording session consumes: - application/json produces: - application/json tags: - computer-use summary: Start a new recording operationId: StartRecording parameters: - description: Recording options name: request in: body schema: $ref: '#/definitions/StartRecordingRequest' responses: '201': description: Created schema: $ref: '#/definitions/Recording' '400': description: Bad Request schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/stop: post: description: Stop an active screen recording session consumes: - application/json produces: - application/json tags: - computer-use summary: Stop a recording operationId: StopRecording parameters: - description: Recording ID to stop name: request in: body required: true schema: $ref: '#/definitions/StopRecordingRequest' responses: '200': description: OK schema: $ref: '#/definitions/Recording' '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string /computeruse/recordings/{id}: get: description: Get details of a specific recording by ID produces: - application/json tags: - computer-use summary: Get recording details operationId: GetRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/Recording' '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string delete: description: Delete a recording file by ID tags: - computer-use summary: Delete a recording operationId: DeleteRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '204': description: No Content '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/recordings/{id}/download: get: description: Download a recording by providing its ID produces: - application/octet-stream tags: - computer-use summary: Download a recording operationId: DownloadRecording parameters: - type: string description: Recording ID name: id in: path required: true responses: '200': description: OK schema: type: file '404': description: Not Found schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /computeruse/screenshot: get: description: Take a screenshot of the entire screen produces: - application/json tags: - computer-use summary: Take a screenshot operationId: TakeScreenshot parameters: - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/compressed: get: description: Take a compressed screenshot of the entire screen produces: - application/json tags: - computer-use summary: Take a compressed screenshot operationId: TakeCompressedScreenshot parameters: - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query - type: string description: Image format (png or jpeg) name: format in: query - type: integer description: JPEG quality (1-100) name: quality in: query - type: number description: Scale factor (0.1-1.0) name: scale in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/region: get: description: Take a screenshot of a specific region of the screen produces: - application/json tags: - computer-use summary: Take a region screenshot operationId: TakeRegionScreenshot parameters: - type: integer description: X coordinate of the region name: x in: query required: true - type: integer description: Y coordinate of the region name: y in: query required: true - type: integer description: Width of the region name: width in: query required: true - type: integer description: Height of the region name: height in: query required: true - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/screenshot/region/compressed: get: description: Take a compressed screenshot of a specific region of the screen produces: - application/json tags: - computer-use summary: Take a compressed region screenshot operationId: TakeCompressedRegionScreenshot parameters: - type: integer description: X coordinate of the region name: x in: query required: true - type: integer description: Y coordinate of the region name: y in: query required: true - type: integer description: Width of the region name: width in: query required: true - type: integer description: Height of the region name: height in: query required: true - type: boolean description: Whether to show cursor in screenshot name: showCursor in: query - type: string description: Image format (png or jpeg) name: format in: query - type: integer description: JPEG quality (1-100) name: quality in: query - type: number description: Scale factor (0.1-1.0) name: scale in: query responses: '200': description: OK schema: $ref: '#/definitions/ScreenshotResponse' /computeruse/start: post: description: Start all computer use processes and return their status produces: - application/json tags: - computer-use summary: Start computer use processes operationId: StartComputerUse responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStartResponse' /computeruse/status: get: description: Get the current status of the computer use system produces: - application/json tags: - computer-use summary: Get computer use status operationId: GetComputerUseSystemStatus responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStatusResponse' /computeruse/stop: post: description: Stop all computer use processes and return their status produces: - application/json tags: - computer-use summary: Stop computer use processes operationId: StopComputerUse responses: '200': description: OK schema: $ref: '#/definitions/ComputerUseStopResponse' /files: get: description: List files and directories in the specified path produces: - application/json tags: - file-system summary: List files and directories operationId: ListFiles parameters: - type: string description: Directory path to list (defaults to working directory) name: path in: query responses: '200': description: OK schema: type: array items: $ref: '#/definitions/FileInfo' delete: description: Delete a file or directory at the specified path tags: - file-system summary: Delete a file or directory operationId: DeleteFile parameters: - type: string description: File or directory path to delete name: path in: query required: true - type: boolean description: Enable recursive deletion for directories name: recursive in: query responses: '204': description: No Content /files/bulk-download: post: description: Download multiple files by providing their paths. Successful files are returned as multipart parts named `file`. Per-file failures are returned as multipart parts named `error` with JSON payloads shaped like ErrorResponse. consumes: - application/json produces: - multipart/form-data tags: - file-system summary: Download multiple files operationId: DownloadFiles parameters: - description: Paths of files to download name: downloadFiles in: body required: true schema: $ref: '#/definitions/FilesDownloadRequest' responses: '200': description: Multipart response with file parts and JSON error parts schema: $ref: '#/definitions/gin.H' /files/bulk-upload: post: description: Upload multiple files with their destination paths consumes: - multipart/form-data tags: - file-system summary: Upload multiple files operationId: UploadFiles responses: '200': description: OK /files/download: get: description: Download a file by providing its path produces: - application/octet-stream tags: - file-system summary: Download a file operationId: DownloadFile parameters: - type: string description: File path to download name: path in: query required: true responses: '200': description: OK schema: type: file /files/find: get: description: Search for text pattern within files in a directory produces: - application/json tags: - file-system summary: Find text in files operationId: FindInFiles parameters: - type: string description: Directory path to search in name: path in: query required: true - type: string description: Text pattern to search for name: pattern in: query required: true responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Match' /files/folder: post: description: Create a folder with the specified path and optional permissions consumes: - application/json tags: - file-system summary: Create a folder operationId: CreateFolder parameters: - type: string description: Folder path to create name: path in: query required: true - type: string description: 'Octal permission mode (default: 0755)' name: mode in: query required: true responses: '201': description: Created /files/info: get: description: Get detailed information about a file or directory produces: - application/json tags: - file-system summary: Get file information operationId: GetFileInfo parameters: - type: string description: File or directory path name: path in: query required: true responses: '200': description: OK schema: $ref: '#/definitions/FileInfo' /files/move: post: description: Move or rename a file or directory from source to destination tags: - file-system summary: Move or rename file/directory operationId: MoveFile parameters: - type: string description: Source file or directory path name: source in: query required: true - type: string description: Destination file or directory path name: destination in: query required: true responses: '200': description: OK /files/permissions: post: description: Set file permissions, ownership, and group for a file or directory tags: - file-system summary: Set file permissions operationId: SetFilePermissions parameters: - type: string description: File or directory path name: path in: query required: true - type: string description: Owner (username or UID) name: owner in: query - type: string description: Group (group name or GID) name: group in: query - type: string description: File mode in octal format (e.g., 0755) name: mode in: query responses: '200': description: OK /files/replace: post: description: Replace text pattern with new value in multiple files consumes: - application/json produces: - application/json tags: - file-system summary: Replace text in files operationId: ReplaceInFiles parameters: - description: Replace request name: request in: body required: true schema: $ref: '#/definitions/ReplaceRequest' responses: '200': description: OK schema: type: array items: $ref: '#/definitions/ReplaceResult' /files/search: get: description: Search for files matching a specific pattern in a directory produces: - application/json tags: - file-system summary: Search files by pattern operationId: SearchFiles parameters: - type: string description: Directory path to search in name: path in: query required: true - type: string description: File pattern to match (e.g., *.txt, *.go) name: pattern in: query required: true responses: '200': description: OK schema: $ref: '#/definitions/SearchFilesResponse' /files/upload: post: description: Upload a file to the specified path consumes: - multipart/form-data tags: - file-system summary: Upload a file operationId: UploadFile parameters: - type: string description: Destination path for the uploaded file name: path in: query required: true - type: file description: File to upload name: file in: formData required: true responses: '200': description: OK schema: $ref: '#/definitions/gin.H' /git/add: post: description: Add files to the Git staging area consumes: - application/json produces: - application/json tags: - git summary: Add files to Git staging operationId: AddFiles parameters: - description: Add files request name: request in: body required: true schema: $ref: '#/definitions/GitAddRequest' responses: '200': description: OK /git/branches: get: description: Get a list of all branches in the Git repository produces: - application/json tags: - git summary: List branches operationId: ListBranches parameters: - type: string description: Repository path name: path in: query required: true responses: '200': description: OK schema: $ref: '#/definitions/ListBranchResponse' post: description: Create a new branch in the Git repository consumes: - application/json produces: - application/json tags: - git summary: Create a new branch operationId: CreateBranch parameters: - description: Create branch request name: request in: body required: true schema: $ref: '#/definitions/GitBranchRequest' responses: '201': description: Created delete: description: Delete a branch from the Git repository consumes: - application/json produces: - application/json tags: - git summary: Delete a branch operationId: DeleteBranch parameters: - description: Delete branch request name: request in: body required: true schema: $ref: '#/definitions/GitDeleteBranchRequest' responses: '204': description: No Content /git/checkout: post: description: Switch to a different branch or commit in the Git repository consumes: - application/json produces: - application/json tags: - git summary: Checkout branch or commit operationId: CheckoutBranch parameters: - description: Checkout request name: request in: body required: true schema: $ref: '#/definitions/GitCheckoutRequest' responses: '200': description: OK /git/clone: post: description: Clone a Git repository to the specified path consumes: - application/json produces: - application/json tags: - git summary: Clone a Git repository operationId: CloneRepository parameters: - description: Clone repository request name: request in: body required: true schema: $ref: '#/definitions/GitCloneRequest' responses: '200': description: OK /git/commit: post: description: Commit staged changes to the Git repository consumes: - application/json produces: - application/json tags: - git summary: Commit changes operationId: CommitChanges parameters: - description: Commit request name: request in: body required: true schema: $ref: '#/definitions/GitCommitRequest' responses: '200': description: OK schema: $ref: '#/definitions/GitCommitResponse' /git/history: get: description: Get the commit history of the Git repository produces: - application/json tags: - git summary: Get commit history operationId: GetCommitHistory parameters: - type: string description: Repository path name: path in: query required: true responses: '200': description: OK schema: type: array items: $ref: '#/definitions/GitCommitInfo' /git/pull: post: description: Pull changes from the remote Git repository consumes: - application/json produces: - application/json tags: - git summary: Pull changes from remote operationId: PullChanges parameters: - description: Pull request name: request in: body required: true schema: $ref: '#/definitions/GitRepoRequest' responses: '200': description: OK /git/push: post: description: Push local changes to the remote Git repository consumes: - application/json produces: - application/json tags: - git summary: Push changes to remote operationId: PushChanges parameters: - description: Push request name: request in: body required: true schema: $ref: '#/definitions/GitRepoRequest' responses: '200': description: OK /git/status: get: description: Get the Git status of the repository at the specified path produces: - application/json tags: - git summary: Get Git status operationId: GetStatus parameters: - type: string description: Repository path name: path in: query required: true responses: '200': description: OK schema: $ref: '#/definitions/GitStatus' /init: post: description: Set the auth token and initialize telemetry for the toolbox server produces: - application/json tags: - server summary: Initialize toolbox server operationId: Initialize parameters: - description: Initialization request name: request in: body required: true schema: $ref: '#/definitions/InitializeRequest' responses: '200': description: OK schema: type: object additionalProperties: type: string /lsp/completions: post: description: Get code completion suggestions from the LSP server consumes: - application/json produces: - application/json tags: - lsp summary: Get code completions operationId: Completions parameters: - description: Completion request name: request in: body required: true schema: $ref: '#/definitions/LspCompletionParams' responses: '200': description: OK schema: $ref: '#/definitions/CompletionList' /lsp/did-close: post: description: Notify the LSP server that a document has been closed consumes: - application/json produces: - application/json tags: - lsp summary: Notify document closed operationId: DidClose parameters: - description: Document request name: request in: body required: true schema: $ref: '#/definitions/LspDocumentRequest' responses: '200': description: OK /lsp/did-open: post: description: Notify the LSP server that a document has been opened consumes: - application/json produces: - application/json tags: - lsp summary: Notify document opened operationId: DidOpen parameters: - description: Document request name: request in: body required: true schema: $ref: '#/definitions/LspDocumentRequest' responses: '200': description: OK /lsp/document-symbols: get: description: Get symbols (functions, classes, etc.) from a document produces: - application/json tags: - lsp summary: Get document symbols operationId: DocumentSymbols parameters: - type: string description: Language ID (e.g., python, typescript) name: languageId in: query required: true - type: string description: Path to project name: pathToProject in: query required: true - type: string description: Document URI name: uri in: query required: true responses: '200': description: OK schema: type: array items: $ref: '#/definitions/LspSymbol' /lsp/start: post: description: Start a Language Server Protocol server for the specified language consumes: - application/json produces: - application/json tags: - lsp summary: Start LSP server operationId: Start parameters: - description: LSP server request name: request in: body required: true schema: $ref: '#/definitions/LspServerRequest' responses: '200': description: OK /lsp/stop: post: description: Stop a Language Server Protocol server consumes: - application/json produces: - application/json tags: - lsp summary: Stop LSP server operationId: Stop parameters: - description: LSP server request name: request in: body required: true schema: $ref: '#/definitions/LspServerRequest' responses: '200': description: OK /lsp/workspacesymbols: get: description: Search for symbols across the entire workspace produces: - application/json tags: - lsp summary: Get workspace symbols operationId: WorkspaceSymbols parameters: - type: string description: Search query name: query in: query required: true - type: string description: Language ID (e.g., python, typescript) name: languageId in: query required: true - type: string description: Path to project name: pathToProject in: query required: true responses: '200': description: OK schema: type: array items: $ref: '#/definitions/LspSymbol' /port: get: description: Get a list of all currently active ports produces: - application/json tags: - port summary: Get active ports operationId: GetPorts responses: '200': description: OK schema: $ref: '#/definitions/PortList' /port/{port}/in-use: get: description: Check if a specific port is currently in use produces: - application/json tags: - port summary: Check if port is in use operationId: IsPortInUse parameters: - type: integer description: Port number (3000-9999) name: port in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/IsPortInUseResponse' /process/code-run: post: description: Execute Python, JavaScript, or TypeScript code and return output, exit code, and artifacts consumes: - application/json produces: - application/json tags: - process summary: Execute code operationId: CodeRun parameters: - description: Code execution request name: request in: body required: true schema: $ref: '#/definitions/CodeRunRequest' responses: '200': description: OK schema: $ref: '#/definitions/CodeRunResponse' /process/execute: post: description: Execute a shell command and return the output and exit code consumes: - application/json produces: - application/json tags: - process summary: Execute a command operationId: ExecuteCommand parameters: - description: Command execution request name: request in: body required: true schema: $ref: '#/definitions/ExecuteRequest' responses: '200': description: OK schema: $ref: '#/definitions/ExecuteResponse' /process/interpreter/context: get: description: Returns information about all user-created interpreter contexts (excludes default context) produces: - application/json tags: - interpreter summary: List all user-created interpreter contexts operationId: ListInterpreterContexts responses: '200': description: OK schema: $ref: '#/definitions/ListContextsResponse' post: description: Creates a new isolated interpreter context with optional working directory and language consumes: - application/json produces: - application/json tags: - interpreter summary: Create a new interpreter context operationId: CreateInterpreterContext parameters: - description: Context configuration name: request in: body required: true schema: $ref: '#/definitions/CreateContextRequest' responses: '200': description: OK schema: $ref: '#/definitions/InterpreterContext' '400': description: Bad Request schema: type: object additionalProperties: type: string '500': description: Internal Server Error schema: type: object additionalProperties: type: string /process/interpreter/context/{id}: delete: description: Deletes an interpreter context and shuts down its worker process produces: - application/json tags: - interpreter summary: Delete an interpreter context operationId: DeleteInterpreterContext parameters: - type: string description: Context ID name: id in: path required: true responses: '200': description: OK schema: type: object additionalProperties: type: string '400': description: Bad Request schema: type: object additionalProperties: type: string '404': description: Not Found schema: type: object additionalProperties: type: string /process/interpreter/execute: get: description: Executes code in a specified context (or default context if not specified) via WebSocket streaming consumes: - application/json produces: - application/json tags: - interpreter summary: Execute code in an interpreter context operationId: ExecuteInterpreterCode responses: '101': description: Switching Protocols schema: type: string headers: Connection: type: string description: Upgrade Upgrade: type: string description: websocket /process/pty: get: description: Get a list of all active pseudo-terminal sessions produces: - application/json tags: - process summary: List all PTY sessions operationId: ListPtySessions responses: '200': description: OK schema: $ref: '#/definitions/PtyListResponse' post: description: Create a new pseudo-terminal session with specified configuration consumes: - application/json produces: - application/json tags: - process summary: Create a new PTY session operationId: CreatePtySession parameters: - description: PTY session creation request name: request in: body required: true schema: $ref: '#/definitions/PtyCreateRequest' responses: '201': description: Created schema: $ref: '#/definitions/PtyCreateResponse' /process/pty/{sessionId}: get: description: Get detailed information about a specific pseudo-terminal session produces: - application/json tags: - process summary: Get PTY session information operationId: GetPtySession parameters: - type: string description: PTY session ID name: sessionId in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/PtySessionInfo' delete: description: Delete a pseudo-terminal session and terminate its process produces: - application/json tags: - process summary: Delete a PTY session operationId: DeletePtySession parameters: - type: string description: PTY session ID name: sessionId in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/gin.H' /process/pty/{sessionId}/connect: get: description: Establish a WebSocket connection to interact with a pseudo-terminal session tags: - process summary: Connect to PTY session via WebSocket operationId: ConnectPtySession parameters: - type: string description: PTY session ID name: sessionId in: path required: true responses: '101': description: Switching Protocols - WebSocket connection established /process/pty/{sessionId}/resize: post: description: Resize the terminal dimensions of a pseudo-terminal session consumes: - application/json produces: - application/json tags: - process summary: Resize a PTY session operationId: ResizePtySession parameters: - type: string description: PTY session ID name: sessionId in: path required: true - description: Resize request with new dimensions name: request in: body required: true schema: $ref: '#/definitions/PtyResizeRequest' responses: '200': description: OK schema: $ref: '#/definitions/PtySessionInfo' /process/session: get: description: Get a list of all active shell sessions produces: - application/json tags: - process summary: List all sessions operationId: ListSessions responses: '200': description: OK schema: type: array items: $ref: '#/definitions/Session' post: description: Create a new shell session for command execution consumes: - application/json produces: - application/json tags: - process summary: Create a new session operationId: CreateSession parameters: - description: Session creation request name: request in: body required: true schema: $ref: '#/definitions/CreateSessionRequest' responses: '201': description: Created /process/session/entrypoint: get: description: Get details of an entrypoint session including its commands produces: - application/json tags: - process summary: Get entrypoint session details operationId: GetEntrypointSession responses: '200': description: OK schema: $ref: '#/definitions/Session' /process/session/entrypoint/logs: get: description: Get logs for a sandbox entrypoint session. Returns JSON with separated stdout/stderr for SDK >= 0.161.0, plain text otherwise. Supports WebSocket streaming. produces: - application/json - text/plain tags: - process summary: Get entrypoint logs operationId: GetEntrypointLogs parameters: - type: boolean description: Follow logs in real-time (WebSocket only) name: follow in: query responses: '200': description: Entrypoint log content schema: $ref: '#/definitions/SessionCommandLogsResponse' /process/session/{sessionId}: get: description: Get details of a specific session including its commands produces: - application/json tags: - process summary: Get session details operationId: GetSession parameters: - type: string description: Session ID name: sessionId in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/Session' delete: description: Delete an existing shell session tags: - process summary: Delete a session operationId: DeleteSession parameters: - type: string description: Session ID name: sessionId in: path required: true responses: '204': description: No Content /process/session/{sessionId}/command/{commandId}: get: description: Get details of a specific command within a session produces: - application/json tags: - process summary: Get session command details operationId: GetSessionCommand parameters: - type: string description: Session ID name: sessionId in: path required: true - type: string description: Command ID name: commandId in: path required: true responses: '200': description: OK schema: $ref: '#/definitions/Command' /process/session/{sessionId}/command/{commandId}/input: post: description: Send input data to a running command in a session for interactive execution consumes: - application/json tags: - process summary: Send input to command operationId: SendInput parameters: - type: string description: Session ID name: sessionId in: path required: true - type: string description: Command ID name: commandId in: path required: true - description: Input send request name: request in: body required: true schema: $ref: '#/definitions/SessionSendInputRequest' responses: '204': description: No Content /process/session/{sessionId}/command/{commandId}/logs: get: description: Get logs for a specific command within a session. Returns JSON with separated stdout/stderr for SDK >= 0.167.0, plain text otherwise. Supports WebSocket streaming. produces: - application/json - text/plain tags: - process summary: Get session command logs operationId: GetSessionCommandLogs parameters: - type: string description: Session ID name: sessionId in: path required: true - type: string description: Command ID name: commandId in: path required: true - type: boolean description: Follow logs in real-time (WebSocket only) name: follow in: query responses: '200': description: Log content (JSON for new SDKs, plain text for old SDKs) schema: $ref: '#/definitions/SessionCommandLogsResponse' /process/session/{sessionId}/exec: post: description: Execute a command within an existing shell session consumes: - application/json produces: - application/json tags: - process summary: Execute command in session operationId: SessionExecuteCommand parameters: - type: string description: Session ID name: sessionId in: path required: true - description: Command execution request name: request in: body required: true schema: $ref: '#/definitions/SessionExecuteRequest' responses: '200': description: OK schema: $ref: '#/definitions/SessionExecuteResponse' '202': description: Accepted schema: $ref: '#/definitions/SessionExecuteResponse' /user-home-dir: get: description: Get the current user home directory path. produces: - application/json tags: - info summary: Get user home directory operationId: GetUserHomeDir responses: '200': description: OK schema: $ref: '#/definitions/UserHomeDirResponse' /version: get: description: Get the current daemon version produces: - application/json tags: - info summary: Get version operationId: GetVersion responses: '200': description: OK schema: type: object additionalProperties: type: string /work-dir: get: description: Get the current working directory path. This is default directory used for running commands. produces: - application/json tags: - info summary: Get working directory operationId: GetWorkDir responses: '200': description: OK schema: $ref: '#/definitions/WorkDirResponse' definitions: AccessibilityBounds: type: object properties: height: type: integer width: type: integer x: type: integer y: type: integer AccessibilityInvokeRequest: type: object required: - id properties: action: type: string id: type: string AccessibilityNodeRequest: type: object required: - id properties: id: type: string AccessibilityNodesResponse: type: object properties: matches: type: array items: $ref: '#/definitions/computeruse.AccessibilityNode' truncated: type: boolean AccessibilitySetValueRequest: type: object required: - id properties: id: type: string value: type: string AccessibilityTreeResponse: type: object properties: root: $ref: '#/definitions/computeruse.AccessibilityNode' truncated: type: boolean Chart: type: object properties: elements: type: array items: $ref: '#/definitions/ChartElement' png: type: string title: type: string type: type: string x_label: type: string x_scale: type: string x_tick_labels: type: array items: type: string x_ticks: type: array items: type: number y_label: type: string y_scale: type: string y_tick_labels: type: array items: type: string y_ticks: type: array items: type: number ChartElement: type: object properties: angle: type: number first_quartile: type: number group: type: string label: type: string max: type: number median: type: number min: type: number outliers: type: array items: type: number png: type: string points: type: array items: type: array items: type: number radius: type: number third_quartile: type: number title: type: string type: type: string value: type: string x_label: type: string y_label: type: string CodeRunArtifacts: type: object properties: charts: type: array items: $ref: '#/definitions/Chart' CodeRunRequest: type: object required: - code - language properties: argv: type: array items: type: string code: type: string envs: type: object additionalProperties: type: string language: description: python, javascript, typescript type: string timeout: type: integer CodeRunResponse: type: object properties: artifacts: $ref: '#/definitions/CodeRunArtifacts' exitCode: type: integer result: type: string Command: type: object required: - command - id properties: command: type: string exitCode: type: integer id: type: string CompletionContext: type: object required: - triggerKind properties: triggerCharacter: type: string triggerKind: type: integer CompletionItem: type: object required: - label properties: detail: type: string documentation: {} filterText: type: string insertText: type: string kind: type: integer label: type: string sortText: type: string CompletionList: type: object required: - isIncomplete - items properties: isIncomplete: type: boolean items: type: array items: $ref: '#/definitions/CompletionItem' ComputerUseStartResponse: type: object properties: message: type: string status: type: object additionalProperties: $ref: '#/definitions/ProcessStatus' ComputerUseStatusResponse: type: object properties: status: type: string ComputerUseStopResponse: type: object properties: message: type: string status: type: object additionalProperties: $ref: '#/definitions/ProcessStatus' CreateContextRequest: type: object properties: cwd: type: string language: type: string CreateSessionRequest: type: object required: - sessionId properties: sessionId: type: string DisplayInfo: type: object properties: height: type: integer id: type: integer isActive: type: boolean width: type: integer x: type: integer y: type: integer DisplayInfoResponse: type: object properties: displays: type: array items: $ref: '#/definitions/DisplayInfo' Empty: type: object ExecuteRequest: type: object required: - command properties: command: type: string cwd: description: Current working directory type: string envs: description: Environment variables to set for the command type: object additionalProperties: type: string timeout: description: Timeout in seconds, defaults to 10 seconds type: integer ExecuteResponse: type: object required: - result properties: exitCode: type: integer result: type: string FileInfo: type: object required: - group - isDir - modTime - mode - name - owner - permissions - size properties: group: type: string isDir: type: boolean modTime: type: string mode: type: string name: type: string owner: type: string permissions: type: string size: type: integer FileStatus: type: object required: - extra - name - staging - worktree properties: extra: type: string name: type: string staging: $ref: '#/definitions/Status' worktree: $ref: '#/definitions/Status' FilesDownloadRequest: type: object required: - paths properties: paths: type: array items: type: string FindAccessibilityNodesRequest: type: object properties: limit: type: integer name: type: string nameMatch: description: '"exact" | "substring" | "regex"' type: string pid: type: integer role: type: string scope: type: string states: type: array items: type: string GitAddRequest: type: object required: - files - path properties: files: description: files to add (use . for all files) type: array items: type: string path: type: string GitBranchRequest: type: object required: - name - path properties: name: type: string path: type: string GitCheckoutRequest: type: object required: - branch - path properties: branch: type: string path: type: string GitCloneRequest: type: object required: - path - url properties: branch: type: string commit_id: type: string password: type: string path: type: string url: type: string username: type: string GitCommitInfo: type: object required: - author - email - hash - message - timestamp properties: author: type: string email: type: string hash: type: string message: type: string timestamp: type: string GitCommitRequest: type: object required: - author - email - message - path properties: allow_empty: type: boolean author: type: string email: type: string message: type: string path: type: string GitCommitResponse: type: object required: - hash properties: hash: type: string GitDeleteBranchRequest: type: object required: - name - path properties: name: type: string path: type: string GitRepoRequest: type: object required: - path properties: password: type: string path: type: string username: type: string GitStatus: type: object required: - currentBranch - fileStatus properties: ahead: type: integer behind: type: integer branchPublished: type: boolean currentBranch: type: string fileStatus: type: array items: $ref: '#/definitions/FileStatus' InitializeRequest: type: object required: - token properties: token: type: string InterpreterContext: type: object required: - active - createdAt - cwd - id - language properties: active: type: boolean createdAt: type: string cwd: type: string id: type: string language: type: string IsPortInUseResponse: type: object properties: isInUse: type: boolean KeyboardHotkeyRequest: type: object properties: keys: description: e.g., "ctrl+c", "cmd+v" type: string KeyboardPressRequest: type: object properties: key: type: string modifiers: description: ctrl, alt, shift, cmd type: array items: type: string KeyboardTypeRequest: type: object properties: delay: description: milliseconds between keystrokes type: integer text: type: string ListBranchResponse: type: object required: - branches properties: branches: type: array items: type: string ListContextsResponse: type: object required: - contexts properties: contexts: type: array items: $ref: '#/definitions/InterpreterContext' ListRecordingsResponse: type: object required: - recordings properties: recordings: type: array items: $ref: '#/definitions/Recording' LspCompletionParams: type: object required: - languageId - pathToProject - position - uri properties: context: $ref: '#/definitions/CompletionContext' languageId: type: string pathToProject: type: string position: $ref: '#/definitions/LspPosition' uri: type: string LspDocumentRequest: type: object required: - languageId - pathToProject - uri properties: languageId: type: string pathToProject: type: string uri: type: string LspLocation: type: object required: - range - uri properties: range: $ref: '#/definitions/LspRange' uri: type: string LspPosition: type: object required: - character - line properties: character: type: integer line: type: integer LspRange: type: object required: - end - start properties: end: $ref: '#/definitions/LspPosition' start: $ref: '#/definitions/LspPosition' LspServerRequest: type: object required: - languageId - pathToProject properties: languageId: type: string pathToProject: type: string LspSymbol: type: object required: - kind - location - name properties: kind: type: integer location: $ref: '#/definitions/LspLocation' name: type: string Match: type: object required: - content - file - line properties: content: type: string file: type: string line: type: integer MouseClickRequest: type: object properties: button: description: left, right, middle type: string double: type: boolean x: type: integer y: type: integer MouseClickResponse: type: object properties: x: type: integer y: type: integer MouseDragRequest: type: object properties: button: type: string endX: type: integer endY: type: integer startX: type: integer startY: type: integer MouseDragResponse: type: object properties: x: type: integer y: type: integer MouseMoveRequest: type: object properties: x: type: integer y: type: integer MousePositionResponse: type: object properties: x: type: integer y: type: integer MouseScrollRequest: type: object properties: amount: type: integer default: 1 minimum: 0 direction: description: up, down type: string x: type: integer y: type: integer PortList: type: object properties: ports: type: array items: type: integer Position: type: object properties: x: type: integer y: type: integer ProcessErrorsResponse: type: object properties: errors: type: string processName: type: string ProcessLogsResponse: type: object properties: logs: type: string processName: type: string ProcessRestartResponse: type: object properties: message: type: string processName: type: string ProcessStatus: type: object properties: autoRestart: type: boolean pid: type: integer priority: type: integer running: type: boolean ProcessStatusResponse: type: object properties: processName: type: string running: type: boolean PtyCreateRequest: type: object properties: cols: type: integer cwd: type: string envs: type: object additionalProperties: type: string id: type: string lazyStart: description: Don't start PTY until first client connects type: boolean rows: type: integer PtyCreateResponse: type: object required: - sessionId properties: sessionId: type: string PtyListResponse: type: object required: - sessions properties: sessions: type: array items: $ref: '#/definitions/PtySessionInfo' PtyResizeRequest: type: object required: - cols - rows properties: cols: type: integer maximum: 1000 minimum: 1 rows: type: integer maximum: 1000 minimum: 1 PtySessionInfo: type: object required: - active - cols - createdAt - cwd - envs - id - lazyStart - rows properties: active: type: boolean cols: type: integer createdAt: type: string cwd: type: string envs: type: object additionalProperties: type: string id: type: string lazyStart: description: Whether this session uses lazy start type: boolean rows: type: integer Recording: type: object required: - fileName - filePath - id - startTime - status properties: durationSeconds: type: number endTime: type: string fileName: type: string filePath: type: string id: type: string sizeBytes: type: integer startTime: type: string status: type: string ReplaceRequest: type: object required: - files - newValue - pattern properties: files: type: array items: type: string newValue: type: string pattern: type: string ReplaceResult: type: object properties: error: type: string file: type: string success: type: boolean ScreenshotResponse: type: object properties: cursorPosition: $ref: '#/definitions/Position' screenshot: type: string sizeBytes: type: integer ScrollResponse: type: object properties: success: type: boolean SearchFilesResponse: type: object required: - files properties: files: type: array items: type: string Session: type: object required: - commands - sessionId properties: commands: type: array items: $ref: '#/definitions/Command' sessionId: type: string SessionCommandLogsResponse: type: object required: - output - stderr - stdout properties: output: type: string stderr: type: string stdout: type: string SessionExecuteRequest: type: object required: - command properties: async: type: boolean command: type: string runAsync: type: boolean suppressInputEcho: type: boolean SessionExecuteResponse: type: object required: - cmdId properties: cmdId: type: string exitCode: type: integer output: type: string stderr: type: string stdout: type: string SessionSendInputRequest: type: object required: - data properties: data: type: string StartRecordingRequest: type: object properties: label: type: string Status: type: string enum: - Unmodified - Untracked - Modified - Added - Deleted - Renamed - Copied - Updated but unmerged x-enum-varnames: - Unmodified - Untracked - Modified - Added - Deleted - Renamed - Copied - UpdatedButUnmerged StopRecordingRequest: type: object required: - id properties: id: type: string UserHomeDirResponse: type: object required: - dir properties: dir: type: string WindowInfo: type: object properties: height: type: integer id: type: integer isActive: type: boolean title: type: string width: type: integer x: type: integer y: type: integer WindowsResponse: type: object properties: windows: type: array items: $ref: '#/definitions/WindowInfo' WorkDirResponse: type: object required: - dir properties: dir: type: string computeruse.AccessibilityNode: type: object properties: actions: type: array items: type: string bounds: $ref: '#/definitions/AccessibilityBounds' children: type: array items: $ref: '#/definitions/computeruse.AccessibilityNode' description: type: string id: type: string name: type: string role: type: string states: type: array items: type: string gin.H: type: object additionalProperties: {} servers: - url: https://proxy.app.daytona.io/toolbox description: Daytona Sandbox Toolbox proxy