Skip to content

[feat]: forward ignoreDefaultArgs to chrome-launcher - #2127

Merged
seanmcguire12 merged 4 commits into
mainfrom
evals/external-CalebBarnes-ignore-default-args
May 15, 2026
Merged

[feat]: forward ignoreDefaultArgs to chrome-launcher#2127
seanmcguire12 merged 4 commits into
mainfrom
evals/external-CalebBarnes-ignore-default-args

Conversation

@seanmcguire12

@seanmcguire12 seanmcguire12 commented May 15, 2026

Copy link
Copy Markdown
Member

thanks @CalebBarnes for the contribution! (original PR: #2074)

why

When running Stagehand locally, chrome-launcher adds its own set of default flags (e.g. --disable-extensions). There's currently no way for consumers to selectively remove these flags —
localBrowserLaunchOptions.chromeFlags can only add flags, not remove chrome-launcher's built-in defaults.

This is needed when users want to run Chrome with extensions enabled, or need to remove other chrome-launcher defaults for their use case.

what changed

  • Added ignoreDefaultArgs option to LaunchLocalOptions in local.ts
  • Forwarded localBrowserLaunchOptions.ignoreDefaultArgs from v3.ts through to launchLocalChrome()
  • When true: drops all chrome-launcher defaults (only Stagehand's own flags and user-supplied chromeFlags are used)
  • When string[]: selectively removes only the listed flags from chrome-launcher defaults, keeping the rest

This mirrors the behavior of Playwright's
ignoreDefaultArgs option.

test plan

  • Verified locally that setting ignoreDefaultArgs: ["--disable-extensions"] successfully removes the flag from the launched Chrome instance (confirmed via chrome://version/)
  • Verified that other chrome-launcher defaults are preserved when using the array form
  • Verified that ignoreDefaultArgs: true drops all chrome-launcher defaults

Summary by cubic

Adds ignoreDefaultArgs to local Chrome launch so you can drop all or selected default flags from chrome-launcher with exact-match control (including Stagehand defaults), while keeping your own args.

  • New Features
    • Added ignoreDefaultArgs to LaunchLocalOptions and moved flag assembly into launchLocalChrome(), forwarding to chrome-launcher via ignoreDefaultFlags.
    • true drops all chrome-launcher defaults; string[] removes only exact-matched defaults and re-adds the rest from Launcher.defaultFlags(). Stagehand defaults and user args stay unless explicitly listed.

Written for commit e04da99. Summary will update on new commits. Review in cubic


# why

When running Stagehand locally, chrome-launcher adds its own set of
default flags (e.g. `--disable-extensions`). There's currently no way
for consumers to selectively remove these flags —
`localBrowserLaunchOptions.chromeFlags` can only *add* flags, not remove
chrome-launcher's built-in defaults.

This is needed when users want to run Chrome with extensions enabled, or
need to remove other chrome-launcher defaults for their use case.

# what changed

- Added `ignoreDefaultArgs` option to `LaunchLocalOptions` in `local.ts`
- Forwarded `localBrowserLaunchOptions.ignoreDefaultArgs` from `v3.ts`
through to `launchLocalChrome()`
- When `true`: drops all chrome-launcher defaults (only Stagehand's own
flags and user-supplied `chromeFlags` are used)
- When `string[]`: selectively removes only the listed flags from
chrome-launcher defaults, keeping the rest

This mirrors the behavior of Playwright's
[`ignoreDefaultArgs`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-ignore-default-args)
option.

# test plan

- Verified locally that setting `ignoreDefaultArgs:
["--disable-extensions"]` successfully removes the flag from the
launched Chrome instance (confirmed via `chrome://version/`)
- Verified that other chrome-launcher defaults are preserved when using
the array form
- Verified that `ignoreDefaultArgs: true` drops all chrome-launcher
defaults

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds `ignoreDefaultArgs` to local Chrome launch and forwards it to
`chrome-launcher` so users can drop all or selected default flags while
keeping Stagehand and user flags.

- **New Features**
- Added `ignoreDefaultArgs` to `LaunchLocalOptions` and wired it through
V3 to `launchLocalChrome()`, mapping to `chrome-launcher`’s
`ignoreDefaultFlags`.
- `true` drops all `chrome-launcher` defaults; `string[]` removes only
exact-matched defaults and re-adds the rest from
`Launcher.defaultFlags()`, preserving Stagehand defaults and user
`chromeFlags`.

<sup>Written for commit 1426616.
Summary will update on new commits.</sup>

<!-- End of auto-generated description by cubic. -->

---------

Co-authored-by: Caleb Barnes <CalebBarnes@users.noreply.github.com>
Co-authored-by: Mastra Code (anthropic/claude-opus-4-6) <noreply@mastra.ai>
@changeset-bot

changeset-bot Bot commented May 15, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e04da99

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@browserbasehq/stagehand Minor
@browserbasehq/stagehand-evals Patch
@browserbasehq/stagehand-server-v3 Patch
@browserbasehq/stagehand-server-v4 Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@mintlify

mintlify Bot commented May 15, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
stagehand 🟢 Ready View Preview May 15, 2026, 8:23 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 5 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.
Architecture diagram
sequenceDiagram
    participant User as Consumer Code
    participant V3 as V3 Class
    participant Local as launchLocalChrome()
    participant ChromeL as chrome-launcher
    participant Chrome as Chrome Browser

    Note over User,Chrome: New: ignoreDefaultArgs forwarding flow

    User->>V3: new Stagehand({ localBrowserLaunchOptions: { ignoreDefaultArgs } })
    V3->>V3: Store localBrowserLaunchOptions

    User->>V3: stagehand.init()
    V3->>V3: Read localBrowserLaunchOptions

    alt ignoreDefaultArgs is true
        V3->>Local: launchLocalChrome({ ignoreDefaultArgs: true })
        Local->>Local: Set ignoreDefaultFlags = true
        Local->>ChromeL: launch({ ignoreDefaultFlags: true })
        ChromeL->>Chrome: Start with NO default flags
    else ignoreDefaultArgs is string[]
        V3->>Local: launchLocalChrome({ ignoreDefaultArgs: ["--disable-extensions"] })
        Local->>Local: Set ignoreDefaultFlags = true
        Local->>Local: Get Launcher.defaultFlags()
        Local->>Local: Filter out excluded flags
        Local->>Local: Prepend kept defaults to chromeFlags
        Local->>ChromeL: launch({ chromeFlags, ignoreDefaultFlags: true })
        ChromeL->>Chrome: Start with filtered defaults + Stagehand flags
    else ignoreDefaultArgs is false/undefined
        V3->>Local: launchLocalChrome({ ignoreDefaultArgs: undefined })
        Local->>ChromeL: launch({ ignoreDefaultFlags: false })
        ChromeL->>Chrome: Start with ALL default flags
    end

    Chrome-->>ChromeL: Browser instance
    ChromeL-->>Local: LaunchedChrome
    Local-->>V3: Chrome instance with WS endpoint
    V3-->>User: Stagehand initialized
Loading

Re-trigger cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/core/lib/v3/launch/local.ts">

<violation number="1" location="packages/core/lib/v3/launch/local.ts:32">
P1: `ignoreDefaultArgs` currently strips Stagehand default flags, but it should only affect chrome-launcher defaults. This can silently remove required Stagehand launch flags when `ignoreDefaultArgs` is set.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.
Re-trigger cubic

Comment thread packages/core/lib/v3/launch/local.ts
@seanmcguire12
seanmcguire12 merged commit 78bcde8 into main May 15, 2026
421 of 422 checks passed
seanmcguire12 pushed a commit that referenced this pull request Jun 3, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @browserbasehq/stagehand@3.5.0

### Minor Changes

- [#2149](#2149)
[`6e75725`](6e75725)
Thanks [@miguelg719](https://github.com/miguelg719)! - Added a
`screenshot` option to `extract()` that sends the current viewport
screenshot with the a11y tree for extraction.

- [#2127](#2127)
[`78bcde8`](78bcde8)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - Add
`ignoreDefaultArgs` option to selectively remove chrome-launcher's
built-in default flags (e.g. `--disable-extensions`) when running
locally

- [#2160](#2160)
[`49575d6`](49575d6)
Thanks [@monadoid](https://github.com/monadoid)! - Forward constructor
and request model configuration when initializing API-backed sessions.

- [#2171](#2171)
[`dc1445d`](dc1445d)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add native
clipboard API

### Patch Changes

- [#2146](#2146)
[`3a53ed4`](3a53ed4)
Thanks [@shriyatheunicorn](https://github.com/shriyatheunicorn)! - Pass
local browser launch options through when attaching over CDP so explicit
viewport settings are respected.

- [#2107](#2107)
[`8fc16d2`](8fc16d2)
Thanks [@miguelg719](https://github.com/miguelg719)! - Fix Anthropic CUA
`triple_click` action mapping.

- [#2118](#2118)
[`3e95a87`](3e95a87)
Thanks [@monadoid](https://github.com/monadoid)! - Add Vertex auth
parameters to the core and server API schemas.

- [#2126](#2126)
[`ebbdcd3`](ebbdcd3)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - fix(core):
import ToolSet from ai public export

- [#2120](#2120)
[`12703a6`](12703a6)
Thanks [@miguelg719](https://github.com/miguelg719)! - Fix
structuredOutputMode for newer Anthropic models

- [#2170](#2170)
[`1db5f1c`](1db5f1c)
Thanks [@Kylejeong2](https://github.com/Kylejeong2)! - Add Claude Opus
4.8 to the supported CUA model whitelist.

- [#2116](#2116)
[`cb586a1`](cb586a1)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - include
"[selected]" or "[checked]" state in snapshot

- [#2129](#2129)
[`765861c`](765861c)
Thanks [@miguelg719](https://github.com/miguelg719)! - Add a
backend-selectable v3 evaluator facade while preserving the legacy
evaluator path.

- [#2157](#2157)
[`2cd60a3`](2cd60a3)
Thanks [@miguelg719](https://github.com/miguelg719)! - Add verifier
trajectory, rubric, and evaluation-result types with normalized public
naming.

- [#2131](#2131)
[`e102a89`](e102a89)
Thanks [@miguelg719](https://github.com/miguelg719)! - Capture verifier
trajectory evidence from agent evidence callbacks for offline scoring.

## @browserbasehq/browse-cli@0.6.1

### Patch Changes

- Updated dependencies
\[[`3a53ed4`](3a53ed4),
[`6e75725`](6e75725),
[`8fc16d2`](8fc16d2),
[`78bcde8`](78bcde8),
[`3e95a87`](3e95a87),
[`ebbdcd3`](ebbdcd3),
[`12703a6`](12703a6),
[`1db5f1c`](1db5f1c),
[`cb586a1`](cb586a1),
[`765861c`](765861c),
[`2cd60a3`](2cd60a3),
[`e102a89`](e102a89),
[`49575d6`](49575d6),
[`dc1445d`](dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0

## @browserbasehq/stagehand-server-v3@3.7.0

### Minor Changes

- [#2160](#2160)
[`49575d6`](49575d6)
Thanks [@monadoid](https://github.com/monadoid)! - Forward constructor
and request model configuration when initializing API-backed sessions.

### Patch Changes

- [#2118](#2118)
[`3e95a87`](3e95a87)
Thanks [@monadoid](https://github.com/monadoid)! - Add Vertex auth
parameters to the core and server API schemas.

- [#2167](#2167)
[`ce21468`](ce21468)
Thanks [@monadoid](https://github.com/monadoid)! - Add SEA binary
--version build metadata output.

- Updated dependencies
\[[`3a53ed4`](3a53ed4),
[`6e75725`](6e75725),
[`8fc16d2`](8fc16d2),
[`78bcde8`](78bcde8),
[`3e95a87`](3e95a87),
[`ebbdcd3`](ebbdcd3),
[`12703a6`](12703a6),
[`1db5f1c`](1db5f1c),
[`cb586a1`](cb586a1),
[`765861c`](765861c),
[`2cd60a3`](2cd60a3),
[`e102a89`](e102a89),
[`49575d6`](49575d6),
[`dc1445d`](dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0

## @browserbasehq/stagehand-evals@2.0.2

### Patch Changes

- Updated dependencies
\[[`3a53ed4`](3a53ed4),
[`6e75725`](6e75725),
[`8fc16d2`](8fc16d2),
[`78bcde8`](78bcde8),
[`3e95a87`](3e95a87),
[`ebbdcd3`](ebbdcd3),
[`12703a6`](12703a6),
[`1db5f1c`](1db5f1c),
[`cb586a1`](cb586a1),
[`765861c`](765861c),
[`2cd60a3`](2cd60a3),
[`e102a89`](e102a89),
[`49575d6`](49575d6),
[`dc1445d`](dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
felipeofdev-ai pushed a commit to felipeofdev-ai/stagehand that referenced this pull request Aug 4, 2026
)

thanks @CalebBarnes for the contribution! (original PR: browserbase#2074)
# why

When running Stagehand locally, chrome-launcher adds its own set of
default flags (e.g. `--disable-extensions`). There's currently no way
for consumers to selectively remove these flags —
`localBrowserLaunchOptions.chromeFlags` can only *add* flags, not remove
chrome-launcher's built-in defaults.

This is needed when users want to run Chrome with extensions enabled, or
need to remove other chrome-launcher defaults for their use case.

# what changed

- Added `ignoreDefaultArgs` option to `LaunchLocalOptions` in `local.ts`
- Forwarded `localBrowserLaunchOptions.ignoreDefaultArgs` from `v3.ts`
through to `launchLocalChrome()`
- When `true`: drops all chrome-launcher defaults (only Stagehand's own
flags and user-supplied `chromeFlags` are used)
- When `string[]`: selectively removes only the listed flags from
chrome-launcher defaults, keeping the rest

This mirrors the behavior of Playwright's

[`ignoreDefaultArgs`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-ignore-default-args)
option.

# test plan

- Verified locally that setting `ignoreDefaultArgs:
["--disable-extensions"]` successfully removes the flag from the
launched Chrome instance (confirmed via `chrome://version/`)
- Verified that other chrome-launcher defaults are preserved when using
the array form
- Verified that `ignoreDefaultArgs: true` drops all chrome-launcher
defaults


<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds `ignoreDefaultArgs` to local Chrome launch so you can drop all or
selected default flags from `chrome-launcher` with exact-match control
(including Stagehand defaults), while keeping your own `args`.

- **New Features**
- Added `ignoreDefaultArgs` to `LaunchLocalOptions` and moved flag
assembly into `launchLocalChrome()`, forwarding to `chrome-launcher` via
`ignoreDefaultFlags`.
- `true` drops all `chrome-launcher` defaults; `string[]` removes only
exact-matched defaults and re-adds the rest from
`Launcher.defaultFlags()`. Stagehand defaults and user `args` stay
unless explicitly listed.

<sup>Written for commit e04da99.
Summary will update on new commits. <a
href="https://cubic.dev/pr/browserbase/stagehand/pull/2127?utm_source=github">Review
in cubic</a></sup>

<!-- End of auto-generated description by cubic. -->



---------

---------
felipeofdev-ai pushed a commit to felipeofdev-ai/stagehand that referenced this pull request Aug 4, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @browserbasehq/stagehand@3.5.0

### Minor Changes

- [browserbase#2149](browserbase#2149)
[`6e75725`](browserbase@6e75725)
Thanks [@miguelg719](https://github.com/miguelg719)! - Added a
`screenshot` option to `extract()` that sends the current viewport
screenshot with the a11y tree for extraction.

- [browserbase#2127](browserbase#2127)
[`78bcde8`](browserbase@78bcde8)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - Add
`ignoreDefaultArgs` option to selectively remove chrome-launcher's
built-in default flags (e.g. `--disable-extensions`) when running
locally

- [browserbase#2160](browserbase#2160)
[`49575d6`](browserbase@49575d6)
Thanks [@monadoid](https://github.com/monadoid)! - Forward constructor
and request model configuration when initializing API-backed sessions.

- [browserbase#2171](browserbase#2171)
[`dc1445d`](browserbase@dc1445d)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - add native
clipboard API

### Patch Changes

- [browserbase#2146](browserbase#2146)
[`3a53ed4`](browserbase@3a53ed4)
Thanks [@shriyatheunicorn](https://github.com/shriyatheunicorn)! - Pass
local browser launch options through when attaching over CDP so explicit
viewport settings are respected.

- [browserbase#2107](browserbase#2107)
[`8fc16d2`](browserbase@8fc16d2)
Thanks [@miguelg719](https://github.com/miguelg719)! - Fix Anthropic CUA
`triple_click` action mapping.

- [browserbase#2118](browserbase#2118)
[`3e95a87`](browserbase@3e95a87)
Thanks [@monadoid](https://github.com/monadoid)! - Add Vertex auth
parameters to the core and server API schemas.

- [browserbase#2126](browserbase#2126)
[`ebbdcd3`](browserbase@ebbdcd3)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - fix(core):
import ToolSet from ai public export

- [browserbase#2120](browserbase#2120)
[`12703a6`](browserbase@12703a6)
Thanks [@miguelg719](https://github.com/miguelg719)! - Fix
structuredOutputMode for newer Anthropic models

- [browserbase#2170](browserbase#2170)
[`1db5f1c`](browserbase@1db5f1c)
Thanks [@Kylejeong2](https://github.com/Kylejeong2)! - Add Claude Opus
4.8 to the supported CUA model whitelist.

- [browserbase#2116](browserbase#2116)
[`cb586a1`](browserbase@cb586a1)
Thanks [@seanmcguire12](https://github.com/seanmcguire12)! - include
"[selected]" or "[checked]" state in snapshot

- [browserbase#2129](browserbase#2129)
[`765861c`](browserbase@765861c)
Thanks [@miguelg719](https://github.com/miguelg719)! - Add a
backend-selectable v3 evaluator facade while preserving the legacy
evaluator path.

- [browserbase#2157](browserbase#2157)
[`2cd60a3`](browserbase@2cd60a3)
Thanks [@miguelg719](https://github.com/miguelg719)! - Add verifier
trajectory, rubric, and evaluation-result types with normalized public
naming.

- [browserbase#2131](browserbase#2131)
[`e102a89`](browserbase@e102a89)
Thanks [@miguelg719](https://github.com/miguelg719)! - Capture verifier
trajectory evidence from agent evidence callbacks for offline scoring.

## @browserbasehq/browse-cli@0.6.1

### Patch Changes

- Updated dependencies
\[[`3a53ed4`](browserbase@3a53ed4),
[`6e75725`](browserbase@6e75725),
[`8fc16d2`](browserbase@8fc16d2),
[`78bcde8`](browserbase@78bcde8),
[`3e95a87`](browserbase@3e95a87),
[`ebbdcd3`](browserbase@ebbdcd3),
[`12703a6`](browserbase@12703a6),
[`1db5f1c`](browserbase@1db5f1c),
[`cb586a1`](browserbase@cb586a1),
[`765861c`](browserbase@765861c),
[`2cd60a3`](browserbase@2cd60a3),
[`e102a89`](browserbase@e102a89),
[`49575d6`](browserbase@49575d6),
[`dc1445d`](browserbase@dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0

## @browserbasehq/stagehand-server-v3@3.7.0

### Minor Changes

- [browserbase#2160](browserbase#2160)
[`49575d6`](browserbase@49575d6)
Thanks [@monadoid](https://github.com/monadoid)! - Forward constructor
and request model configuration when initializing API-backed sessions.

### Patch Changes

- [browserbase#2118](browserbase#2118)
[`3e95a87`](browserbase@3e95a87)
Thanks [@monadoid](https://github.com/monadoid)! - Add Vertex auth
parameters to the core and server API schemas.

- [browserbase#2167](browserbase#2167)
[`ce21468`](browserbase@ce21468)
Thanks [@monadoid](https://github.com/monadoid)! - Add SEA binary
--version build metadata output.

- Updated dependencies
\[[`3a53ed4`](browserbase@3a53ed4),
[`6e75725`](browserbase@6e75725),
[`8fc16d2`](browserbase@8fc16d2),
[`78bcde8`](browserbase@78bcde8),
[`3e95a87`](browserbase@3e95a87),
[`ebbdcd3`](browserbase@ebbdcd3),
[`12703a6`](browserbase@12703a6),
[`1db5f1c`](browserbase@1db5f1c),
[`cb586a1`](browserbase@cb586a1),
[`765861c`](browserbase@765861c),
[`2cd60a3`](browserbase@2cd60a3),
[`e102a89`](browserbase@e102a89),
[`49575d6`](browserbase@49575d6),
[`dc1445d`](browserbase@dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0

## @browserbasehq/stagehand-evals@2.0.2

### Patch Changes

- Updated dependencies
\[[`3a53ed4`](browserbase@3a53ed4),
[`6e75725`](browserbase@6e75725),
[`8fc16d2`](browserbase@8fc16d2),
[`78bcde8`](browserbase@78bcde8),
[`3e95a87`](browserbase@3e95a87),
[`ebbdcd3`](browserbase@ebbdcd3),
[`12703a6`](browserbase@12703a6),
[`1db5f1c`](browserbase@1db5f1c),
[`cb586a1`](browserbase@cb586a1),
[`765861c`](browserbase@765861c),
[`2cd60a3`](browserbase@2cd60a3),
[`e102a89`](browserbase@e102a89),
[`49575d6`](browserbase@49575d6),
[`dc1445d`](browserbase@dc1445d)]:
    -   @browserbasehq/stagehand@3.5.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants