Skip to main content
Skyvern is a Python-based browser automation agent built on the Skyvern SDK. It supports multiple execution engines (skyvern_v1, skyvern_v2, openai-cua, anthropic-cua, ui-tars) and browser backends (local, cdp, lexmount, skyvern-cloud).

Installation

# Install core dependencies and register the bubench CLI
uv sync
The skyvern and browser-use extras conflict. Use a separate venv (default .venvs/skyvern for skyvern, and .venvs/browser_use for browser-use in config.yaml). bubench run will auto-create that venv and install the skyvern extra on first use.
Activate .venv (or use uv run bubench ...) before running bubench commands.

Configuration

Configure Skyvern in the root config.yaml under agents.skyvern:
agents:
  skyvern:
    active_model: gemini        # active model profile
    models:
      gemini:
        enable_openai_compatible: true
        model_id: gemini-3-flash-preview
        max_tokens: 16000
        temperature: 0.0
        supports_vision: true
        api_key: $OPENAI_COMPATIBLE_API_KEY
    browser:
      browser_id: local
      headless: false
    defaults:
      engine: skyvern_v2
      max_steps: 25
      timeout: 600
      max_screenshot_scrolls: 5
      include_action_history_in_verification: true
      max_consecutive_repeats: 3
      max_action_occurrences: 5
Store sensitive keys (e.g. OPENAI_COMPATIBLE_API_KEY, SKYVERN_API_KEY) in the repo root .env.

Engine Options

ENGINEDescription
skyvern_v1Skyvern v1 engine
skyvern_v2Skyvern v2 engine
openai-cuaOpenAI CUA engine
anthropic-cuaAnthropic CUA engine
ui-tarsUI-TARS engine

Browser Backends

browser_idDescription
localLocal browser
cdpConnect to an external CDP browser (set CDP_ADDRESS)
lexmountLexmount cloud browser (set LEXMOUNT_BROWSER_MODE)
skyvern-cloudSkyvern cloud browser

Common Parameters

ParameterDescriptionExample
enable_openai_compatibleEnable OpenAI-compatible modetrue
model_idLLM model namegemini-3-flash-preview
api_keyLLM API key (use $ENV_VAR form)$OPENAI_COMPATIBLE_API_KEY
base_urlLLM API base URL$OPENAI_BASE_URL
max_tokensMax output tokens16000
temperatureTemperature0.0
supports_visionModel supports visiontrue
request_timeoutLiteLLM per-request timeout (seconds)600
execution_engineSkyvern execution engineskyvern_v2 (default)
headlessHeadless mode for local browsertrue / false
timeoutTask timeout (seconds)600
max_stepsMax steps per task25
max_screenshot_scrollsMax scroll screenshots5
include_action_history_in_verificationInclude action history in verificationtrue
max_consecutive_repeatsMax consecutive repeats3
max_action_occurrencesMax occurrences of one action5
Renamed keys (legacy still honored)The openai_compatible_* prefix on per-model config keys was dropped so Skyvern matches every other agent (model_id, api_key, base_url, max_tokens, temperature, supports_vision, request_timeout). The old names still work — you’ll see a one-shot DeprecationWarning per key, then the value is aliased onto the new key. The underlying env vars passed to the Skyvern subprocess (OPENAI_COMPATIBLE_*) are unchanged.
Why no browser_control?Skyvern is a fully managed service: the decision of when to use DOM inspection versus visual grounding is made internally by the Skyvern execution engine (configurable via execution_engine). The benchmark only submits tasks via API and does not control the internal interaction strategy.
Not Recommended: configs/agents/skyvern/config.yamlPer-agent config files under configs/agents/ are no longer the recommended approach and may be removed in a future release. Use the root config.yaml instead (see above).

Usage Examples

Basic Run

bubench run \
  --agent skyvern \
  --benchmark LexBench-Browser \
  --mode first_n \
  --count 3

Run All Tasks

bubench run \
  --agent skyvern \
  --benchmark LexBench-Browser \
  --mode all \
  --skip-completed

Evaluation

# --model-id matches the model_id used at run time
bubench eval --agent skyvern --benchmark LexBench-Browser --model-id gemini-3.1-pro-preview

Supported Benchmarks

  • ✅ LexBench-Browser
  • ✅ Online-Mind2Web
  • ✅ BrowseComp