Skip to content

Computer Use APIs

Computer Use Agents (CUAs) control browsers by continuously analyzing screenshots, making decisions, and executing actions in a feedback loop. Steel provides the cloud browser infrastructure -- anti-bot protection, proxy support, captcha solving, and session recording -- while the CUA provides the intelligence.

All three CUA integrations use the Steel Computer API for action execution (steel.sessions.computer()), not the CDP WebSocket connection used by agent frameworks.

Comparison

FeatureClaude Computer UseOpenAI Computer UseGemini Computer Use
ModelClaude 3.5 Sonnet+computer-use-previewgemini-2.5-computer-use-preview
ProviderAnthropicOpenAIGoogle
LanguageTypeScript / PythonTypeScript / PythonTypeScript / Python
API StyleMessages API (beta)Responses APIGemini API
Tool Typecomputer_20250124computer-previewNative CUA
Beta StatusYesYesYes
Viewport Default1280 x 7681280 x 7681280 x 768
Coordinate SystemAbsolute pixelsAbsolute pixelsNormalized (auto-handled)
Actionsmove_mouse, click_mouse, drag_mouse, scroll, press_key, type_text, wait, take_screenshotclick, type, scroll, keypress, move, drag, wait, screenshotclick, type, scroll, keypress, move, drag, wait, screenshot
Safety FeaturesRepetition detection, max iterationsSafety check acknowledgment, repetition detectionRepetition detection, max iterations

Architecture

All three CUA integrations share the same feedback loop:


Claude Computer Use

Provider: Anthropic | Model: Claude 3.5 Sonnet+ | Status: Beta (computer-use-2025-01-24)

Claude Computer Use employs vision-based AI to control browsers by continuously analyzing screenshots, making decisions, and taking actions. Combined with Steel, it provides anti-bot capabilities, proxy support, and sandboxed environments.

Capabilities

  • Control Steel browser sessions via Claude's Computer Use API
  • Execute browser actions: clicking, typing, scrolling, dragging
  • Process visual feedback from screenshots in a continuous loop
  • Implement human verification for sensitive operations
  • Repetition detection and configurable max iterations (default 50)

Requirements

  • Anthropic API Key (Claude 3.5 Sonnet or newer)
  • Steel API Key
  • Node.js 20+ (TypeScript) or Python environment

Setup (TypeScript)

typescript
import { Agent } from "./agent";
import { STEEL_API_KEY, ANTHROPIC_API_KEY, TASK } from "./helpers";

async function main(): Promise<void> {
  const agent = new Agent(); // Uses claude-sonnet-4-5

  try {
    await agent.initialize(); // Creates Steel session with dimensions
    const result = await agent.executeTask(TASK, true, false, 50);
    console.log(`Result: ${result}`);
  } finally {
    await agent.cleanup(); // Releases Steel session
  }
}

main();

Agent Internals

The Agent class manages the full lifecycle:

  1. Creates a Steel session with configurable viewport (default 1280x768)
  2. Uses the Steel Computer API for all actions: move_mouse, click_mouse, drag_mouse, scroll, press_key, type_text, wait, take_screenshot
  3. Implements a feedback loop: Claude sees screenshots, decides actions, receives new screenshots
  4. Detects repetition and enforces max iteration limits
  5. Uses Anthropic beta: computer-use-2025-01-24 with tool type computer_20250124

Resources


OpenAI Computer Use

Provider: OpenAI | Model: computer-use-preview | Status: Preview

OpenAI's Computer Use combines GPT-4o's vision capabilities with advanced reasoning to control computer interfaces through a continuous action loop. The integration with Steel provides reliable browser infrastructure with anti-bot capabilities, proxy management, and sandboxed environments.

Capabilities

  • Control Steel browser sessions via the OpenAI Responses API
  • Execute browser actions: clicking, typing, scrolling
  • Perform complex web tasks: form filling, searching, navigation
  • Process visual feedback from screenshots
  • Human-in-the-loop verification for sensitive operations
  • Safety check acknowledgment for protected actions

Requirements

  • OpenAI API Key (with computer-use-preview model access)
  • Steel API Key
  • Node.js 20+ or Python environment

Setup (TypeScript)

typescript
import { Steel } from "steel-sdk";

const steel = new Steel({ steelAPIKey: process.env.STEEL_API_KEY });

// Initialize session
const session = await steel.sessions.create({
  dimensions: { width: 1280, height: 768 },
  blockAds: true,
  timeout: 900000,
});

// Tool configuration for OpenAI
const tools = [
  {
    type: "computer-preview",
    display_width: 1280,
    display_height: 768,
    environment: "browser",
  },
];

// Create response via OpenAI Responses API
const response = await createResponse({
  model: "computer-use-preview",
  input: [...inputItems, ...newItems],
  tools: tools,
  truncation: "auto",
});

// Map OpenAI actions to Steel Computer API calls
// click, type, scroll, keypress, move, drag, wait, screenshot

// Cleanup
await steel.sessions.release(session.id);

Key Differences from Claude CUA

  • Uses the Responses API (not chat completions or messages)
  • Tool type is computer-preview (not computer_20250124)
  • Includes explicit safety check acknowledgment for sensitive actions
  • Action types map directly to Steel Computer API equivalents

Resources


Gemini Computer Use

Provider: Google | Model: gemini-2.5-computer-use-preview | Status: Preview

Gemini's Computer Use combines Gemini 2.5's vision and reasoning capabilities with Steel's browser infrastructure. It controls browsers through a continuous action loop, processing visual feedback and determining next actions. A key differentiator is its normalized coordinate system -- Gemini returns coordinates as values between 0 and 1, which are automatically converted to absolute pixel positions.

Capabilities

  • Control Steel browser sessions via the Gemini API
  • Execute browser actions: clicking, typing, scrolling
  • Complex web tasks: form filling, searching, navigation
  • Process visual feedback from screenshots
  • Handle normalized coordinate systems automatically

Requirements

  • Gemini API Key (with gemini-2.5-computer-use-preview model access)
  • Steel API Key
  • Python or Node.js environment

Setup

python
from steel import Steel
import google.generativeai as genai

# 1. Configure clients
steel_client = Steel(steel_api_key="your-steel-api-key")
genai.configure(api_key="your-gemini-api-key")

# 2. Create Steel session
session = steel_client.sessions.create(
    dimensions={"width": 1280, "height": 768}
)

# 3. Connect via Steel's Computer API
# 4. Implement the CUA feedback loop:
#    - Take screenshot
#    - Send to Gemini
#    - Receive action with normalized coordinates
#    - Convert coordinates: x_pixel = x_norm * width, y_pixel = y_norm * height
#    - Execute action via steel.sessions.computer()
#    - Repeat until task complete

# 5. Cleanup
steel_client.sessions.release(session.id)

Key Differences from Other CUAs

  • Uses normalized coordinates (0 to 1) instead of absolute pixels -- conversion is handled automatically
  • Model name: gemini-2.5-computer-use-preview
  • Uses the Gemini API client libraries (not REST-based chat/responses APIs)

Resources


Steel Computer API Reference

All three CUA integrations execute actions through the same Steel endpoint:

typescript
const response = await steel.sessions.computer(session.id, {
  action: "click_mouse",    // Action type
  button: "left",           // Action-specific params
  coordinates: [640, 384],
  screenshot: true,         // Return screenshot after action
});

Available Actions

ActionDescriptionKey Parameters
move_mouseMove cursor to coordinatescoordinates
click_mouseClick at coordinatescoordinates, button, numClicks
drag_mouseDrag from current position to targetcoordinates (target)
scrollScroll the pagecoordinates, delta
press_keyPress a keyboard keykey
type_textType a string of texttext
waitPause executionduration
take_screenshotCapture the current viewport--

SOP Documentation Hub - Built from Steel.dev Official Docs