ComputerUse
Computer Use functionality for interacting with the desktop environment.
Properties:
display
Display - Display operations interfacekeyboard
Keyboard - Keyboard operations interfacemouse
Mouse - Mouse operations interfacescreenshot
Screenshot - Screenshot operations interface
Provides access to mouse, keyboard, screenshot, and display operations for automating desktop interactions within a sandbox.
Constructors
new ComputerUse()
new ComputerUse(sandboxId: string, toolboxApi: ToolboxApi): ComputerUse
Parameters:
sandboxId
stringtoolboxApi
ToolboxApi
Returns:
ComputerUse
Methods
getProcessErrors()
getProcessErrors(processName: string): Promise<ProcessErrorsResponse>
Gets error logs for a specific VNC process
Parameters:
processName
string - Name of the process to get error logs for
Returns:
Promise<ProcessErrorsResponse>
- Process error logs
Example:
const errorsResp = await sandbox.computerUse.getProcessErrors('x11vnc');console.log('X11VNC errors:', errorsResp.errors);
getProcessLogs()
getProcessLogs(processName: string): Promise<ProcessLogsResponse>
Gets logs for a specific VNC process
Parameters:
processName
string - Name of the process to get logs for
Returns:
Promise<ProcessLogsResponse>
- Process logs
Example:
const logsResp = await sandbox.computerUse.getProcessLogs('novnc');console.log('NoVNC logs:', logsResp.logs);
getProcessStatus()
getProcessStatus(processName: string): Promise<ProcessStatusResponse>
Gets the status of a specific VNC process
Parameters:
processName
string - Name of the process to check
Returns:
Promise<ProcessStatusResponse>
- Status information about the specific process
Example:
const xvfbStatus = await sandbox.computerUse.getProcessStatus('xvfb');const noVncStatus = await sandbox.computerUse.getProcessStatus('novnc');
getStatus()
getStatus(): Promise<ComputerUseStatusResponse>
Gets the status of all computer use processes
Returns:
Promise<ComputerUseStatusResponse>
- Status information about all VNC desktop processes
Example:
const status = await sandbox.computerUse.getStatus();console.log('Computer use status:', status.status);
restartProcess()
restartProcess(processName: string): Promise<ProcessRestartResponse>
Restarts a specific VNC process
Parameters:
processName
string - Name of the process to restart
Returns:
Promise<ProcessRestartResponse>
- Process restart response
Example:
const result = await sandbox.computerUse.restartProcess('xfce4');console.log('XFCE4 process restarted:', result.message);
start()
start(): Promise<ComputerUseStartResponse>
Starts all computer use processes (Xvfb, xfce4, x11vnc, novnc)
Returns:
Promise<ComputerUseStartResponse>
- Computer use start response
Example:
const result = await sandbox.computerUse.start();console.log('Computer use processes started:', result.message);
stop()
stop(): Promise<ComputerUseStopResponse>
Stops all computer use processes
Returns:
Promise<ComputerUseStopResponse>
- Computer use stop response
Example:
const result = await sandbox.computerUse.stop();console.log('Computer use processes stopped:', result.message);
Display
Display operations for computer use functionality
Constructors
new Display()
new Display(sandboxId: string, toolboxApi: ToolboxApi): Display
Parameters:
sandboxId
stringtoolboxApi
ToolboxApi
Returns:
Display
Methods
getInfo()
getInfo(): Promise<DisplayInfoResponse>
Gets information about the displays
Returns:
Promise<DisplayInfoResponse>
- Display information including primary display and all available displays
Example:
const info = await sandbox.computerUse.display.getInfo();console.log(`Primary display: ${info.primary_display.width}x${info.primary_display.height}`);console.log(`Total displays: ${info.total_displays}`);info.displays.forEach((display, index) => { console.log(`Display ${index}: ${display.width}x${display.height} at ${display.x},${display.y}`);});
getWindows()
getWindows(): Promise<WindowsResponse>
Gets the list of open windows
Returns:
Promise<WindowsResponse>
- List of open windows with their IDs and titles
Example:
const windows = await sandbox.computerUse.display.getWindows();console.log(`Found ${windows.count} open windows:`);windows.windows.forEach(window => { console.log(`- ${window.title} (ID: ${window.id})`);});
Keyboard
Keyboard operations for computer use functionality
Constructors
new Keyboard()
new Keyboard(sandboxId: string, toolboxApi: ToolboxApi): Keyboard
Parameters:
sandboxId
stringtoolboxApi
ToolboxApi
Returns:
Keyboard
Methods
hotkey()
hotkey(keys: string): Promise<void>
Presses a hotkey combination
Parameters:
keys
string - The hotkey combination (e.g., ‘ctrl+c’, ‘alt+tab’, ‘cmd+shift+t’)
Returns:
Promise<void>
Throws:
If the hotkey operation fails
Example:
// Copytry { await sandbox.computerUse.keyboard.hotkey('ctrl+c'); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
// Pastetry { await sandbox.computerUse.keyboard.hotkey('ctrl+v'); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
// Alt+Tabtry { await sandbox.computerUse.keyboard.hotkey('alt+tab'); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
press()
press(key: string, modifiers?: string[]): Promise<void>
Presses a key with optional modifiers
Parameters:
key
string - The key to press (e.g., ‘Enter’, ‘Escape’, ‘Tab’, ‘a’, ‘A’)modifiers?
string[] = [] - Modifier keys (‘ctrl’, ‘alt’, ‘meta’, ‘shift’)
Returns:
Promise<void>
Throws:
If the press operation fails
Example:
// Press Entertry { await sandbox.computerUse.keyboard.press('Return'); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
// Press Ctrl+Ctry { await sandbox.computerUse.keyboard.press('c', ['ctrl']); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
// Press Ctrl+Shift+Ttry { await sandbox.computerUse.keyboard.press('t', ['ctrl', 'shift']); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
type()
type(text: string, delay?: number): Promise<void>
Types the specified text
Parameters:
text
string - The text to typedelay?
number - Delay between characters in milliseconds
Returns:
Promise<void>
Throws:
If the type operation fails
Example:
try { await sandbox.computerUse.keyboard.type('Hello, World!'); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
// With delay between characterstry { await sandbox.computerUse.keyboard.type('Slow typing', 100); console.log('Operation success');} catch (e) { console.log('Operation failed:', e);}
Mouse
Mouse operations for computer use functionality
Constructors
new Mouse()
new Mouse(sandboxId: string, toolboxApi: ToolboxApi): Mouse
Parameters:
sandboxId
stringtoolboxApi
ToolboxApi
Returns:
Mouse
Methods
click()
click( x: number, y: number, button?: string,double?: boolean): Promise<MouseClickResponse>
Clicks the mouse at the specified coordinates
Parameters:
x
number - The x coordinate to click aty
number - The y coordinate to click atbutton?
string = ‘left’ - The mouse button to click (‘left’, ‘right’, ‘middle’)double?
boolean = false - Whether to perform a double-click
Returns:
Promise<MouseClickResponse>
- Click operation result
Example:
// Single left clickconst result = await sandbox.computerUse.mouse.click(100, 200);
// Double clickconst doubleClick = await sandbox.computerUse.mouse.click(100, 200, 'left', true);
// Right clickconst rightClick = await sandbox.computerUse.mouse.click(100, 200, 'right');
drag()
drag( startX: number, startY: number, endX: number, endY: number,button?: string): Promise<MouseDragResponse>
Drags the mouse from start coordinates to end coordinates
Parameters:
startX
number - The starting x coordinatestartY
number - The starting y coordinateendX
number - The ending x coordinateendY
number - The ending y coordinatebutton?
string = ‘left’ - The mouse button to use for dragging
Returns:
Promise<MouseDragResponse>
- Drag operation result
Example:
const result = await sandbox.computerUse.mouse.drag(50, 50, 150, 150);console.log(`Dragged from ${result.from.x},${result.from.y} to ${result.to.x},${result.to.y}`);
getPosition()
getPosition(): Promise<MousePosition>
Gets the current mouse cursor position
Returns:
Promise<MousePosition>
- Current mouse position with x and y coordinates
Example:
const position = await sandbox.computerUse.mouse.getPosition();console.log(`Mouse is at: ${position.x}, ${position.y}`);
move()
move(x: number, y: number): Promise<MouseMoveResponse>
Moves the mouse cursor to the specified coordinates
Parameters:
x
number - The x coordinate to move toy
number - The y coordinate to move to
Returns:
Promise<MouseMoveResponse>
- Move operation result
Example:
const result = await sandbox.computerUse.mouse.move(100, 200);console.log(`Mouse moved to: ${result.x}, ${result.y}`);
scroll()
scroll( x: number, y: number, direction: "up" | "down",amount?: number): Promise<boolean>
Scrolls the mouse wheel at the specified coordinates
Parameters:
x
number - The x coordinate to scroll aty
number - The y coordinate to scroll atdirection
The direction to scroll -"up"
|"down"
amount?
number = 1 - The amount to scroll
Returns:
Promise<boolean>
- Whether the scroll operation was successful
Example:
// Scroll upconst scrollUp = await sandbox.computerUse.mouse.scroll(100, 200, 'up', 3);
// Scroll downconst scrollDown = await sandbox.computerUse.mouse.scroll(100, 200, 'down', 5);
Screenshot
Screenshot operations for computer use functionality
Constructors
new Screenshot()
new Screenshot(sandboxId: string, toolboxApi: ToolboxApi): Screenshot
Parameters:
sandboxId
stringtoolboxApi
ToolboxApi
Returns:
Screenshot
Methods
takeCompressed()
takeCompressed(options?: ScreenshotOptions): Promise<CompressedScreenshotResponse>
Takes a compressed screenshot of the entire screen
Parameters:
options?
ScreenshotOptions = - Compression and display options
Returns:
Promise<CompressedScreenshotResponse>
- Compressed screenshot data
Example:
// Default compressionconst screenshot = await sandbox.computerUse.screenshot.takeCompressed();
// High quality JPEGconst jpeg = await sandbox.computerUse.screenshot.takeCompressed({ format: 'jpeg', quality: 95, showCursor: true});
// Scaled down PNGconst scaled = await sandbox.computerUse.screenshot.takeCompressed({ format: 'png', scale: 0.5});
takeCompressedRegion()
takeCompressedRegion(region: ScreenshotRegion, options?: ScreenshotOptions): Promise<CompressedScreenshotResponse>
Takes a compressed screenshot of a specific region
Parameters:
region
ScreenshotRegion - The region to captureoptions?
ScreenshotOptions = - Compression and display options
Returns:
Promise<CompressedScreenshotResponse>
- Compressed screenshot data
Example:
const region = { x: 0, y: 0, width: 800, height: 600 };const screenshot = await sandbox.computerUse.screenshot.takeCompressedRegion(region, { format: 'webp', quality: 80, showCursor: true});console.log(`Compressed size: ${screenshot.size_bytes} bytes`);
takeFullScreen()
takeFullScreen(showCursor?: boolean): Promise<ScreenshotResponse>
Takes a screenshot of the entire screen
Parameters:
showCursor?
boolean = false - Whether to show the cursor in the screenshot
Returns:
Promise<ScreenshotResponse>
- Screenshot data with base64 encoded image
Example:
const screenshot = await sandbox.computerUse.screenshot.takeFullScreen();console.log(`Screenshot size: ${screenshot.width}x${screenshot.height}`);
// With cursor visibleconst withCursor = await sandbox.computerUse.screenshot.takeFullScreen(true);
takeRegion()
takeRegion(region: ScreenshotRegion, showCursor?: boolean): Promise<RegionScreenshotResponse>
Takes a screenshot of a specific region
Parameters:
region
ScreenshotRegion - The region to captureshowCursor?
boolean = false - Whether to show the cursor in the screenshot
Returns:
Promise<RegionScreenshotResponse>
- Screenshot data with base64 encoded image
Example:
const region = { x: 100, y: 100, width: 300, height: 200 };const screenshot = await sandbox.computerUse.screenshot.takeRegion(region);console.log(`Captured region: ${screenshot.region.width}x${screenshot.region.height}`);
ScreenshotOptions
Interface for screenshot compression options
Properties:
format?
stringquality?
numberscale?
numbershowCursor?
boolean
ScreenshotRegion
Interface for region coordinates used in screenshot operations
Properties:
height
numberwidth
numberx
numbery
number