Skip to content
Browserbase
    • Primitives
      • BrowsersCloud browsers for your agent to use the web
      • AgentsScale fully managed browser agents with simple prompts
      • SearchFind relevant websites from a single query
      • FetchRetrieve web data as agent-ready HTML, JSON, or markdown
      • RuntimeScalable, sandboxed environments for agent deployments
      • IdentityAuthenticate your agent to navigate the web like a human
      • ModelsUse any model with a single API key
      • ObservabilityUnified debugging your agent across replays, logs, and prompts
    • Open Source
      • Browse CLIGive your agent browsing skills with a single command
      • StagehandThe most popular AI browser automation framework
    • Use Cases
      • Browser Agents
      • Automated Testing
      • Workflow Automation
      • Web Data Extraction
      All use cases
    • Industries
      • AI & Agent Platforms
      • Healthcare
      • Fintech
      • GTM
      • Legal
    • Resources
      • Blog
      • Customers
      • Enterprise
      • Templates
  • Pricing
  • Docs
  • Log in
Log in
Sign up
Get a demo

February 6, 2025

Stagehand version 1.11 improves speed and accuracy

Product Name
Stagehand
Category
New

Lot of new changes for observe this week. If you set the returnAction flag to true, it’ll return the suggested Playwright method to run.

Also, Stagehand leverages the accessibility (a11y) tree to improve speed, accuracy, and costs fewer tokens. Using the a11y tree, however, means Stagehand may be able to act on items that aren’t directly visible (i.e. hidden behind a dropdown). To use these new features, set onlyVisible: false

const results = await page.observe({
     instruction: "click the sign in button",
     returnAction: true, // Return a Playwright action
     onlyVisible: false // Leverage the a11y tree (faster/better/cheaper)
})

// Act on an observation
// NO ADDITIONAL LLM CALL HERE! Just does the thing :)
await page.act(results[0])

This returns a list like this, which now contains method and arguments

[
  {
    description: 'The button saying sign in...'
    method: 'click', // or another playwright method
    arguments: [],
    selector: 'xpath=/html/body/div[1]/main/section/div[1]'
  }
]

Now, you can cache the selector, method, and arguments if you want to repeat the same Playwright without more LLM calls.

We also made some huge improvements to create-browser-app, making vercel AI SDK + ollama first-class citizens and greatly improving cursorrules.

Browserbase

Primitives

  • Browsers
  • Web APIs
  • Runtime
  • Identity
  • Model Gateway
  • Observability
  • Stagehand
  • MCP

Industries

  • AI
  • Healthcare
  • GTM
  • Tax
  • Legal

Developers

  • Docs
  • Templates
  • APIs & SDKs
  • Changelog
  • Status
  • Github

Company

  • Careers
  • Customers
  • Partner with Us
  • Trust & Security

Community

TwitterLinkedinYoutube
  • Privacy Policy
  • Terms of Service

Community

TwitterLinkedinYoutube
  • Privacy Policy
  • Terms of Service