What's Changed
- STG-1746 Add SEA --version flag by @monadoid in https://github.com/browserbase/stagehand/pull/2167
Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.7.0...stagehand-server-v3/v3.7.1
Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.7.0...stagehand-server-v3/v3.7.1
screenshot option to Extract by @miguelg719 in https://github.com/browserbase/stagehand/pull/2149ws dep by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2169Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.10...stagehand-server-v3/v3.7.0
ignoreSelectors by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2097ignoreSelectors to docs for extract() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2088triple_click mapping (#2104) by @miguelg719 in https://github.com/browserbase/stagehand/pull/2107structuredOutputMode for newer Anthropic models by @miguelg719 in https://github.com/browserbase/stagehand/pull/2120ToolSet from ai public export by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2126ignoreDefaultArgs to chrome-launcher by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2127Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.9...stagehand-server-v3/v3.6.10
Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.8...stagehand-server-v3/v3.6.9
#2084 0641d44 Thanks @seanmcguire12! - add ignoreSelectors param to extract()
#2096 a11603d Thanks @seanmcguire12! - add ignoreSelectors to observe()
#2080 21c78b3 Thanks @miguelg719! - Add variables support to v3 agentExecute API schema and remove experimental requirement
#2077 f437f73 Thanks @monadoid! - Fix frame registry handling for OOPIF pages
#2098 a783b99 Thanks @seanmcguire12! - bump transitive deps to patched versions
#2089 8d2f354 Thanks @shrey150! - Strengthen observe prompts so LLMs return complete encoded element IDs.
#2047 a87c1fc Thanks @tkattkat! - Set default agent mode to hybrid with auto routing to dom for non compatible models
#2101 26e6c96 Thanks @seanmcguire12! - move playwright-core, puppeteer-core, patchright-core from optional dependencies to peer dependencies
#2068 1d176c4 Thanks @filip-michalsky! - Remove the default temperature setting from v3 agent AI SDK calls so reasoning models that do not support temperature run without provider warnings.
#2040 1fa9613 Thanks @monadoid! - Prefer STAGEHAND_API_URL for Stagehand API overrides while retaining STAGEHAND_BASE_URL as a deprecated fallback.
#2065 9ff70dd Thanks @miguelg719! - Add support for CUA models: openai/gpt-5.4-mini, openai/gpt-5.5, and anthropic/claude-haiku-4-5
#2039 7640381 Thanks @monadoid! - Deprecate Browserbase project ID configuration.
Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.7...stagehand-server-v3/v3.6.8
ignoreSelectors to observe() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2096Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.6...stagehand-server-v3/v3.6.7
Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.5...stagehand-server-v3/v3.6.6
ignoreSelectors to extract() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/2084Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.4...stagehand-server-v3/v3.6.5
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.6.0...stagehand-server-v3/v3.6.4
666baf1 Thanks @shrey150! - Add global flags for commonly used Browserbase session parameters (--proxies, --advanced-stealth, --solve-captchas, --region, --keep-alive, --session-timeout, --block-ads). These flags configure the Browserbase session in remote mode.#1905 a4ca430 Thanks @derekmeegan! - Add browse cdp <url|port> command to attach to any CDP target and stream DevTools protocol events as NDJSON. Supports --domain filtering, --pretty mode for human-readable output, and clean piping to files or jq.
#1906 34598b9 Thanks @derekmeegan! - Add browse upload <selector> <files...> command for uploading files to <input type="file"> elements. Supports single and multiple file uploads, works with both local and remote Browserbase sessions.
#2056 e87f167 Thanks @derekmeegan! - browse cdp now also calls Page.setLifecycleEventsEnabled whenever the Page domain is enabled, so consumers receive Page.lifecycleEvent notifications (init, commit, DOMContentLoaded, load, firstPaint, firstContentfulPaint, networkAlmostIdle, networkIdle, etc.) in addition to Page.frameNavigated. --pretty mode formats lifecycle events with the milestone name. No effect on consumers that pass --domain without Page.
#2049 ed4db53 Thanks @shrey150! - Use the exact DevToolsActivePort websocket path for local auto-connect and bare-port CDP attach to avoid extra remote debugging probes before the real browser connection.
.model_json_schema() by @miguelg719 in https://github.com/browserbase/stagehand/pull/1873method arg to /click route stub by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1884/scroll route stub by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1875/elementInfo route stub by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1877timeout -> timeoutMs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1901browse get markdown command by @derekmeegan in https://github.com/browserbase/stagehand/pull/1907Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server-v3/v3.6.2...stagehand-server-v3/v3.6.3
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1842toolTimeout arg to more tools by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1843useSearch & toolTimeout to stainless types by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1854Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/browse-cli@0.2.0...stagehand-server-v3/v3.6.2
#1779 2f43ffa Thanks @shrey150! - feat: add cdpHeaders option to localBrowserLaunchOptions for passing custom HTTP headers when connecting to an existing browser via CDP URL
#1834 63ee247 Thanks @tkattkat! - Update stagehand agents search tool
#1774 521a10e Thanks @seanmcguire12! - add new page.setExtraHTTPHeaders() method
#1759 505e8c6 Thanks @shrey150! - Add bedrock to the provider enum in model configuration schemas and regenerate OpenAPI spec.
#1814 7dc35f5 Thanks @tkattkat! - Change usage of openai provider in agent to default to store:false
#1846 335cf47 Thanks @aq17! - Fix streaming finished event being silently dropped. The final SSE event containing the result payload (success status, message, actions, usage, and messages) was previously discarded instead of being yielded to the caller.
#1764 6ba0a1d Thanks @shrey150! - Expose headers in GoogleVertexProviderSettings so model configs can pass custom provider headers (for example X-Goog-Priority) without TypeScript errors.
#1847 4ff3bb8 Thanks @miguelg719! - Enable FlowLogger on BROWSERBASE_FLOW_LOGS=1
#1752 c27054b Thanks @derekmeegan! - fix: pause Browserbase agents while captcha solving is active and improve CUA recovery after the solve completes
#1800 2abf5b9 Thanks @shrey150! - Make projectId optional for Browserbase sessions — only BROWSERBASE_API_KEY is required
#1766 7817fcc Thanks @tkattkat! - Add configurable timeout to tools in agent
#1749 7390508 Thanks @pirate! - When connecting to a browser session that has zero open tabs, Stagehand now automatically creates an initial about:blank tab so the connection can continue.
#1761 611f43a Thanks @seanmcguire12! - fix issue where handlePossibleNavigation was producing unnecessary error logs on clicks that trigger page close
#1817 2402a3c Thanks @tkattkat! - Add support for passing custom headers in clientOptions
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
handlePossibleNavigation() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1761context.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1762page.setExtraHTTPHeaders() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1774cdpHeaders option for custom CDP connection headers by @shrey150 in https://github.com/browserbase/stagehand/pull/1779packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in https://github.com/browserbase/stagehand/pull/1796Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
keepAlive docs by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1747Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/stagehand@3.1.0...stagehand-server/v3.6.1
#1681 e3db9aa Thanks @tkattkat! - Add cookie management APIs: context.addCookies(), context.clearCookies(), & context.cookies()
#1672 b65756e Thanks @seanmcguire12! - add boolean keepAlive parameter to allow for configuring whether the browser should be closed when stagehand.close() is called.
#1708 176d420 Thanks @seanmcguire12! - add context.setExtraHTTPHeaders()
#1611 8a3c066 Thanks @monadoid! - Using mode enum instead of old cua boolean in openapi spec
#1632 afbd08b Thanks @pirate! - Remove automatic .env loading via dotenv.
If your app relies on .env files, install dotenv and load it explicitly in your code:
import dotenv from "dotenv";
dotenv.config({ path: ".env" });
#1683 7584f3e Thanks @seanmcguire12! - fix: include shadow DOM in .count() & .nth() & support xpath predicates
#1644 1e1c9c1 Thanks @monadoid! - Fix unhandled CDP detaches by returning the original sendCDP promise
#1729 6bef890 Thanks @shrey150! - fix: support Claude 4.6 (Opus and Sonnet) in CUA mode by using the correct computer_20251124 tool version and computer-use-2025-11-24 beta header
#1647 ffd4b33 Thanks @tkattkat! - Fix [Agent] - Address bug causing issues with continuing a conversation from past messages in dom mode
#1614 677bff5 Thanks @miguelg719! - Enforce <number>-<number> regex validation on act/observe for elementId
#1580 65ff464 Thanks @tkattkat! - Add unified variables support across act and agent with a single VariableValue type
#1666 101bcf2 Thanks @Kylejeong2! - add support for codex models
#1728 0a94301 Thanks @seanmcguire12! - handle potential race condition on .close() when using the Stagehand API
#1664 b27c04d Thanks @seanmcguire12! - fixes issue with context.addInitScript() where scripts were not being applied to out of process iframes (OOPIFs), and popup pages with same process iframes (SPIFs)
#1624 0e8d569 Thanks @seanmcguire12! - fix issue where screenshot masks were not being applied to dialog elements
#1596 ff0f979 Thanks @tkattkat! - Update usage/metrics handling in agent
#1631 2d89d2b Thanks @miguelg719! - Add right and middle click support to act and observe
#1697 aac9a19 Thanks @shrey150! - fix: support <frame> elements in XPath frame boundary detection so act() works on legacy <frameset> pages
#1692 06de50f Thanks @shrey150! - fix: skip piercer injection for chrome-extension:// and other non-HTML targets
#1613 aa4d981 Thanks @miguelg719! - SupportedUnderstudyAction Enum validation for 'method' on act/observe inference
#1652 18b1e3b Thanks @miguelg719! - Add support for gemini 3 flash and pro in hybrid/cua agent
#1706 957d82b Thanks @chrisreadsf! - Add GLM to prompt-based JSON fallback for models without native structured output support
#1633 22e371a Thanks @tkattkat! - Add warning when incorrect models are used with agents hybrid mode
#1673 d29b91f Thanks @miguelg719! - Add multi-region support for Stagehand API with region-specific endpoints
#1695 7b4f817 Thanks @tkattkat! - Fix: zod bug when pinning zod to v3 and using structured output in agent
#1609 3f9ca4d Thanks @miguelg719! - Add SupportedUnderstudyActions to observe system prompt
#1581 49ead1e Thanks @sameelarif! - Server-side caching is now available.
When running env: "BROWSERBASE", Stagehand automatically caches act(), extract(), and observe() results server-side — repeated calls with the same inputs return instantly without consuming LLM tokens.
Caching is enabled by default and can be disabled via serverCache: false on the Stagehand instance or per individual call. Check out the browserbase blog for more details.
#1642 3673369 Thanks @seanmcguire12! - fix issue where scripts added via context.addInitScripts() were not being injected into new pages that were opened via popups (eg, clicking a link that opens a new page) and/or calling context.newPage(url)
#1735 c465e87 Thanks @monadoid! - Supports request header authentication with connectToMCPServer
#1705 ae533e4 Thanks @seanmcguire12! - include error cause in UnderstudyCommandException
#1636 ea33052 Thanks @miguelg719! - Include executionModel on the AgentConfigSchema
#1679 5764ede Thanks @shrey150! - fix issue where locator.count() was not working with xpaths that have attribute predicates
#1646 f09b184 Thanks @miguelg719! - Add user-agent to CDP connections
#1637 a7d29de Thanks @miguelg719! - Improve error and warning message for legacy model format
#1685 d334399 Thanks @tkattkat! - Bump ai sdk & google provider version
#1662 44416da Thanks @seanmcguire12! - fix issue where locator.fill() was not working on elements that require direct value setting
#1612 bdd8b4e Thanks @seanmcguire12! - fix issue where screenshot mask was only being applied to the first element that the locator resolved to. masks now apply to all matching elements.
df76207 Thanks @seanmcguire12! - handle target closed errors on rapidly opening/closing popupspage.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
page.snapshot() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1589page.waitForSelector() by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1605mask param in page.screenshot() only applied to first node by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1612act, observe for elementId by @miguelg719 in https://github.com/browserbase/stagehand/pull/1614<dialog> elements by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1624addInitScript on popup pages by @seanmcguire12 in https://github.com/browserbase/stagehand/pull/1642Full Changelog: https://github.com/browserbase/stagehand/compare/stagehand-server/v3.5.1...stagehand-server/v3.6.0
What's Changed Add option to Extract by @miguelg719 in https://github.com/browserbase/stagehand/pull/2149 feat(verifier): add evaluator bac…
Browserbase · StagehandWhat's Changed Version Packages by @github-actions[bot] in https://github.com/browserbase/stagehand/pull/2067 [chore]: bump mcp sdk & fasti…
Browserbase · Stagehand