Stagehand Release Notes
Last updated: Apr 1, 2026
- Apr 1, 2026
- Date parsed from source:Apr 1, 2026
- First seen by Releasebot:Apr 1, 2026
Release @browserbasehq/[email protected] (#1946)
Stagehand ships browse-cli 0.5.0, defaulting browse env local to an isolated browser and adding --auto-connect for attaching to an existing debuggable Chrome. It also updates the changelog and prepares the package for publish from main.
Prepare the next browse-cli release by versioning the package on main.
What this PR does:
- bumps packages/cli/package.json to 0.5.0
- updates the browse-cli changelog
- consumes the pending browse-cli changesets
After this PR merges, the Release workflow on main will publish
@browserbasehq/[email protected] from that exact commit using pnpm pack + npm publish --provenance.Summary by cubic
Publish @browserbasehq/[email protected], defaulting browse env local
to an isolated browser and adding --auto-connect to opt into attaching
to an existing debuggable Chrome; explicit CDP attach via browse env local <port|url> remains unchanged.Migration
If you previously relied on auto-attach, run: browse env local --auto-connect.
Written for commit 795c005.
Summary will update on new commits. Review in
cubicCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source Report a problem - Mar 31, 2026
- Date parsed from source:Mar 31, 2026
- First seen by Releasebot:Apr 1, 2026
stagehand/server-v3 v3.6.3
Stagehand releases a broad update across core, server, and browse-cli with LLM middleware and headers support, new v4 route stubs and internal schemas, a Pydantic schema parsing fix, and browse-cli upgrades for session metadata, connect support, and markdown output.
What's Changed
- Include LLM headers in ModelConfig by @miguelg719 in #1874
- Fix schema parsing bug for Pydantic .model_json_schema() by @miguelg719 in #1873
- feat(cli): add browse-cli metadata to Browserbase sessions by @shrey150 in #1890
- STG-1669: fix(cli): clear cached state when browser connection dies by @shrey150 in #1887
- STG-1672: Add --connect flag to browse CLI for existing Browserbase sessions by @shrey150 in #1889
- chore: Decouple browse-cli release cycle from stagehand core by @shrey150 in #1885
- [STG-1702] fix: pass GITHUB_TOKEN to changeset version step in release-cli workflow by @shrey150 in #1893
- Fix OpenAI cua agent by @tkattkat in #1899
- [v4]: add method arg to /click route stub by @seanmcguire12 in #1884
- STG-1614: add v4 llm stubs and internal schemas by @monadoid in #1881
- [v4]: update /scroll route stub by @seanmcguire12 in #1875
- [v4]: add /elementInfo route stub by @seanmcguire12 in #1877
- [v4]: more page route stubs for locator functions by @seanmcguire12 in #1882
- STG-1668: browse env local auto-discovers existing Chrome via CDP by @shrey150 in #1886
- [fix]: handle mapping timeout -> timeoutMs by @seanmcguire12 in #1901
- STG-1671: chore: add prettier pre-commit hook via husky + lint-staged by @shrey150 in #1888
- Recover server-v4 drizzle stack onto main by @monadoid in #1917
- chore: switch browse-cli to merge-first release flow by @shrey150 in #1921
- Release @browserbasehq/[email protected] by @github-actions[bot] in #1925
- [fix]: harden act variables prompt by @seanmcguire12 in #1922
- [fix]: attach to manually-created new tabs by @seanmcguire12 in #1924
- [STG-1733] fix: use valid metadata key for browse-cli sessions by @derekmeegan in #1911
- Release @browserbasehq/[email protected] by @github-actions[bot] in #1932
- [STG-1739] fix: browse-cli releases publish under alpha instead of latest by @shrey150 in #1934
- Add support for LLM middleware by @tkattkat in #1872
- [Claimed #1844] Refactor model ID checks for GPT 5.x model family by @github-actions[bot] in #1852
- Add browse get markdown command by @derekmeegan in #1907
- fix: pass through server-v3 operation errors by @monadoid in #1937
- fix: compute server release versions from tags by @monadoid in #1938
- fix: trigger server release workflows on workflow changes by @monadoid in #1939
- fix: resolve server release versions from remote tags by @monadoid in #1940
- fix shell parsing in server release workflows by @monadoid in #1941
Full Changelog: stagehand-server-v3/v3.6.2...stagehand-server-v3/v3.6.3
Original source Report a problem All of your release notes in one feed
Join Releasebot and get updates from Browserbase and hundreds of other software products.
- Mar 31, 2026
- Date parsed from source:Mar 31, 2026
- First seen by Releasebot:Apr 1, 2026
Release @browserbasehq/[email protected] (#1942)
Stagehand releases browse-cli 0.4.2 with a new markdown conversion command, letting users turn page HTML into Markdown with optional selector support while preserving links, tables, and code blocks.
Prepare the next browse-cli release by versioning the package on main.
What this PR does:
bumps packages/cli/package.json to 0.4.2
updates the browse-cli changelog
consumes the pending browse-cli changesets
After this PR merges, the Release workflow on main will publish
@browserbasehq/[email protected] from that exact commit using pnpm pack + npm publish --provenance.Summary by cubic
Publish @browserbasehq/browse-cli 0.4.2 by bumping the version and
updating the changelog. This release adds a command to convert page HTML
to Markdown.New Features
Add browse get markdown [selector] to convert page HTML to Markdown.
Defaults to body; supports an optional selector; preserves links,
tables, and code blocks via node-html-markdown.Written for commit eb2b85f.
Summary will update on new commits. Review in
cubicCo-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Original source Report a problem - Mar 24, 2026
- Date parsed from source:Mar 24, 2026
- First seen by Releasebot:Mar 25, 2026
stagehand/server-v3 v3.6.2
Stagehand releases updates to docs, streaming, and tool handling, including broader toolTimeout support, explicit SSE event names for local v3 streaming, selector schema cleanup, and v4 route and type refinements.
What's Changed
- [docs]: add docs for page.setExtraHTTPHeaders() by @seanmcguire12 in #1842
- Revert unintentional test commit by @miguelg719 in #1850
- [feat]: apply toolTimeout arg to more tools by @seanmcguire12 in #1843
- Revert broken finished SSE yield config by @monadoid in #1856
- remove unnecssary value param from fillform tool in dom mode by @tkattkat in #1811
- group v4 routes with fastify plugins by @monadoid in #1851
- [fix]: add useSearch & toolTimeout to stainless types by @seanmcguire12 in #1854
- [v4]: unify selector type by @seanmcguire12 in #1860
- [v4]: add index to selector schemas by @seanmcguire12 in #1861
- [v4]: rm redundant routes by @seanmcguire12 in #1862
- [v4]: update stubs to return selector obj by @seanmcguire12 in #1865
- variables for observe by @filip-michalsky in #1808
- docs: update docs theme to fix our previous sunset theme by @Kylejeong2 in #1879
- Add explicit SSE event names for local v3 streaming by @monadoid in #1858
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/[email protected]/v3.6.2
What's Changed
- [docs]: add docs for page.setExtraHTTPHeaders() by @seanmcguire12 in #1842
- Revert unintentional test commit by @miguelg719 in #1850
- [feat]: apply toolTimeout arg to more tools by @seanmcguire12 in #1843
- Revert broken finished SSE yield config by @monadoid in #1856
- remove unnecssary value param from fillform tool in dom mode by @tkattkat in #1811
- group v4 routes with fastify plugins by @monadoid in #1851
- [fix]: add useSearch & toolTimeout to stainless types by @seanmcguire12 in #1854
- [v4]: unify selector type by @seanmcguire12 in #1860
- [v4]: add index to selector schemas by @seanmcguire12 in #1861
- [v4]: rm redundant routes by @seanmcguire12 in #1862
- [v4]: update stubs to return selector obj by @seanmcguire12 in #1865
- variables for observe by @filip-michalsky in #1808
- docs: update docs theme to fix our previous sunset theme by @Kylejeong2 in #1879
- Add explicit SSE event names for local v3 streaming by @monadoid in #1858
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/[email protected]/v3.6.2
What's Changed
- [docs]: add docs for page.setExtraHTTPHeaders() by @seanmcguire12 in #1842
- Revert unintentional test commit by @miguelg719 in #1850
- [feat]: apply toolTimeout arg to more tools by @seanmcguire12 in #1843
- Revert broken finished SSE yield config by @monadoid in #1856
- remove unnecssary value param from fillform tool in dom mode by @tkattkat in #1811
- group v4 routes with fastify plugins by @monadoid in #1851
- [fix]: add useSearch & toolTimeout to stainless types by @seanmcguire12 in #1854
- [v4]: unify selector type by @seanmcguire12 in #1860
- [v4]: add index to selector schemas by @seanmcguire12 in #1861
- [v4]: rm redundant routes by @seanmcguire12 in #1862
- [v4]: update stubs to return selector obj by @seanmcguire12 in #1865
- variables for observe by @filip-michalsky in #1808
- docs: update docs theme to fix our previous sunset theme by @Kylejeong2 in #1879
- Add explicit SSE event names for local v3 streaming by @monadoid in #1858
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/[email protected]/v3.6.2
Original source Report a problem - Mar 18, 2026
- Date parsed from source:Mar 18, 2026
- First seen by Releasebot:Mar 19, 2026
@browserbasehq/[email protected]
Stagehand releases a set of minor and patch updates, adding cdpHeaders for localBrowserLaunchOptions, expanding provider header support, updating the agents search tool, and shipping fixes like initial about:blank tab creation and improved captcha handling for browser sessions.
Minor Changes
- #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
Patch Changes
- #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
- Mar 18, 2026
- Date parsed from source:Mar 18, 2026
- First seen by Releasebot:Mar 19, 2026
@browserbasehq/[email protected]
Stagehand releases the browse CLI with browser automation for AI agents, adds --context-id and --persist flags, and fixes stale mode display.
Minor Changes
- #1816 687d54a Thanks @shrey150! - Add --context-id and --persist flags to browse open for loading and persisting Browserbase Contexts across sessions
- #1793 e38c13b Thanks @shrey150! - Initial release of browse CLI - browser automation for AI agents
Patch Changes
- #1806 f8c7738 Thanks @shrey150! - Fix browse env showing stale mode after browse env remote
- Updated dependencies [505e8c6, 2f43ffa, 63ee247, 7dc35f5, 335cf47, 6ba0a1d, 4ff3bb8, c27054b, 2abf5b9, 7817fcc, 7390508, 611f43a, 521a10e, 2402a3c]:
- @browserbasehq/[email protected]
- Mar 10, 2026
- Date parsed from source:Mar 10, 2026
- First seen by Releasebot:Mar 10, 2026
stagehand/server-v3 v3.6.1
Browserbase releases a comprehensive changelog with fixes, docs updates and new features across stagehand-server versions. Highlights include page.setExtraHTTPHeaders, cdpHeaders options, caching docs refresh, CI improvements, and a split of server-v3 and server-v4 dirs.
What's Changed
- [fix]: rm legacy handlePossibleNavigation() by @seanmcguire12 in #1761
- [docs]: add docs for context.setExtraHTTPHeaders() by @seanmcguire12 in #1762
- [STG-1458] server cache docs by @sameelarif in #1753
- chore: remove retired Claude 3.5 and 3.7 Sonnet models by @shrey150 in #1775
- fix: expose Vertex headers in public model config types by @shrey150 in #1764
- [STG-1482] Update caching docs: split into Browserbase Cache and Local Cache sections by @derekmeegan in #1770
- Solve init script race with Debugger.resume at frame init script injection time by @pirate in #1719
- [feat]: add page.setExtraHTTPHeaders() by @seanmcguire12 in #1774
- [feat]: add cdpHeaders option for custom CDP connection headers by @shrey150 in #1779
- fix: evals CLI link and preserve config by @miguelg719 in #1755
- [fix]: skip CI jobs requiring secrets on fork PRs by @shrey150 in #1780
- Allow outside contributors to run CI with secrets when approved by @pirate in #1782
- Revert "Allow outside contributors to run CI with secrets when approved" by @pirate in #1786
- Revert "[fix]: skip CI jobs requiring secrets on fork PRs" by @pirate in #1787
- [feat]: add configurable timeout to agent tools by @tkattkat in #1766
- Add missing cdpHeaders field to v3 server openapi spec by @pirate in #1797
- [STG-1536] Split packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in #1796
- [feat]: add browse CLI package by @shrey150 in #1793
- fix(CI): fix changeset reference to stale server package name blocking CI by @pirate in #1801
- Full Changelog: stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
What's Changed
- [fix]: rm legacy handlePossibleNavigation() by @seanmcguire12 in #1761
- [docs]: add docs for context.setExtraHTTPHeaders() by @seanmcguire12 in #1762
- [STG-1458] server cache docs by @sameelarif in #1753
- chore: remove retired Claude 3.5 and 3.7 Sonnet models by @shrey150 in #1775
- fix: expose Vertex headers in public model config types by @shrey150 in #1764
- [STG-1482] Update caching docs: split into Browserbase Cache and Local Cache sections by @derekmeegan in #1770
- Solve init script race with Debugger.resume at frame init script injection time by @pirate in #1719
- [feat]: add page.setExtraHTTPHeaders() by @seanmcguire12 in #1774
- [feat]: add cdpHeaders option for custom CDP connection headers by @shrey150 in #1779
- fix: evals CLI link and preserve config by @miguelg719 in #1755
- [fix]: skip CI jobs requiring secrets on fork PRs by @shrey150 in #1780
- Allow outside contributors to run CI with secrets when approved by @pirate in #1782
- Revert "Allow outside contributors to run CI with secrets when approved" by @pirate in #1786
- Revert "[fix]: skip CI jobs requiring secrets on fork PRs" by @pirate in #1787
- [feat]: add configurable timeout to agent tools by @tkattkat in #1766
- Add missing cdpHeaders field to v3 server openapi spec by @pirate in #1797
- [STG-1536] Split packages/stagehand/server into separate server-v3 and server-v4 dirs by @pirate in #1796
- [feat]: add browse CLI package by @shrey150 in #1793
- fix(CI): fix changeset reference to stale server package name blocking CI by @pirate in #1801
- Full Changelog: stagehand-server/v3.6.1...stagehand-server-v3/v3.6.1
- Feb 26, 2026
- Date parsed from source:Feb 26, 2026
- First seen by Releasebot:Feb 26, 2026
stagehand/server v3.6.1
Stagehand delivers a docs and stability refresh with cookie and keepAlive updates, plus a session fix when no pages are open. Also adds Sonatype portal config and Zod/OpenAPI enum tweaks. Full changelog linked for details.
What's Changed
- [docs]: add docs for cookie handling by @seanmcguire12 in #1748
- [docs]: add keepAlive docs by @seanmcguire12 in #1747
- [STG-1450] Fix Session init failing when no pages are open, falls back to opening about:blank by @pirate in #1749
- STG-1307: set Sonatype portal for Java/Kotlin by @monadoid in #1757
- [fix]: Add bedrock to provider enum in Zod schemas and OpenAPI spec by @shrey150 in #1759
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/[email protected]/v3.6.1
What's Changed
- [docs]: add docs for cookie handling by @seanmcguire12 in #1748
- [docs]: add keepAlive docs by @seanmcguire12 in #1747
- [STG-1450] Fix Session init failing when no pages are open, falls back to opening about:blank by @pirate in #1749
- STG-1307: set Sonatype portal for Java/Kotlin by @monadoid in #1757
- [fix]: Add bedrock to provider enum in Zod schemas and OpenAPI spec by @shrey150 in #1759
Full Changelog: https://github.com/browserbase/stagehand/compare/@browserbasehq/[email protected]/v3.6.1
- Feb 25, 2026
- Date parsed from source:Feb 25, 2026
- First seen by Releasebot:Feb 25, 2026
@browserbasehq/[email protected]
Stagehand releases new cookie management APIs and header control plus a keepAlive option and mode updates for broader browser automation control. The patch wave covers numerous fixes, performance tweaks, and compatibility tweaks across act observe and CUA mode.
Minor Changes
- #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" });Patch Changes
- #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 - 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 elements in XPath frame boundary detection so act() works on legacy 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.
- Feb 19, 2026
- Date parsed from source:Feb 19, 2026
- First seen by Releasebot:Feb 20, 2026
@browserbasehq/[email protected]
Patch Changes
- #1710 df76207 Thanks @seanmcguire12! - handle target closed errors on rapidly opening/closing popups