Skip to main content
Agent-TARS is a browser agent developed by the TARS team, distributed as an npm CLI package with powerful browser automation capabilities.

Installation

uv sync
npm install -g @agent-tars/cli@0.3.0
Activate .venv (or use uv run bubench ...) before running bubench commands.
Requires Node.js 18+.

Configuration

Configure Agent-TARS in the root config.yaml under agents.Agent-TARS:
agents:
  Agent-TARS:
    active_model: gpt           # active model profile
    models:
      gpt:                      # OpenAI model
        model_provider: openai
        model_id: gpt-5.4
        api_key: $OPENAI_API_KEY
        browser_control: hybrid
        timeout: 300
      claude:                   # Anthropic model
        model_provider: anthropic
        model_id: claude-sonnet-4-6
        api_key: $OPENAI_API_KEY
        browser_control: hybrid
        timeout: 300
      gemini:                   # Gemini via OpenAI-compatible endpoint
        model_provider: openai
        model_id: gemini-3-pro-image-preview
        api_key: $OPENAI_API_KEY
        base_url: $OPENAI_BASE_URL
        browser_control: hybrid
        timeout: 300
    browser:
      browser_id: local         # default local browser; see "Browser Modes" below to switch to cloud
Set active_model to the profile name you want to use by default, then switch at runtime with --model <name>.

Config Parameters

ParameterDescriptionExample
active_modelDefault model profilegpt, claude
model_providerModel provideropenai, anthropic, volcengine
model_idModel IDgpt-5.4, claude-sonnet-4-6
api_keyAPI key (use $ENV_VAR form)$OPENAI_API_KEY
base_urlAPI base URL (optional)$OPENAI_BASE_URL
browser_controlBrowser control modedom, hybrid, visual-grounding
browser_idBrowser backendlocal (default), lexmount
timeoutTask timeout (seconds)Default 300, overridable via --timeout

Browser Control Modes

Agent-TARS exposes browser interaction as two independent tool sets — DOM tools and vision tools — that the model can select from. browser_control determines which tool sets are available:
ModeHow it worksWhen to use
domReads page structure and operates via DOM APIs (click, fill, etc.)Fast and stable for standard web pages with accessible DOM
visual-groundingTakes a screenshot, uses a vision model to locate elements by coordinatesHandles canvas, dynamic content, and elements missing from the accessibility tree
hybridBoth tool sets exposed simultaneously; the model chooses per stepBest fault tolerance — DOM is tried first, vision acts as fallback
hybrid is the recommended default for benchmarking.
Not Recommended: configs/agents/Agent-TARS/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).

Browser Modes

Local Browser: Agent-TARS CLI launches a local browser. No extra parameters required.
browser:
  browser_id: local
Lexmount Cloud Browser: Connects to Lexmount via CDP. Apply for LEXMOUNT_API_KEY at browser.lexmount.cn (mainland China) or browser.lexmount.com (international) — see Lexmount Cloud Browser for the full flow — set it in .env, then reference it under browser in config.yaml:
browser:
  browser_id: lexmount
  lexmount_browser_mode: normal           # normal | light
  lexmount_api_key: $LEXMOUNT_API_KEY
  lexmount_project_id: $LEXMOUNT_PROJECT_ID
# .env
LEXMOUNT_API_KEY=your-lexmount-api-key
To add a proxy:
browser:
  browser_id: lexmount
  lexmount_browser_mode: normal
  lexmount_proxy_server: http://gw.example.com:823
  lexmount_proxy_type: external
  lexmount_proxy_username: $LEXMOUNT_PROXY_USERNAME
  lexmount_proxy_password: $LEXMOUNT_PROXY_PASSWORD

Usage

Basic Run

# Run first 3 LexBench-Browser L1 (no-login subset) tasks
bubench run \
  --agent Agent-TARS \
  --benchmark LexBench-Browser \
  --split L1 \
  --mode first_n \
  --count 3

# Run Online-Mind2Web
bubench run \
  --agent Agent-TARS \
  --benchmark Online-Mind2Web \
  --mode first_n \
  --count 3

Run All Tasks

bubench run \
  --agent Agent-TARS \
  --benchmark LexBench-Browser \
  --split L1 \
  --mode all \
  --skip-completed

Evaluation

# --model-id matches the model_id used at run time
bubench eval --agent Agent-TARS --benchmark LexBench-Browser --model-id gpt-5.4-mini

bubench eval --agent Agent-TARS --benchmark Online-Mind2Web --model-id gpt-5.4-mini

Supported Benchmarks

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