Skip to content

Browser support

Support differs by capability and browser. The browser table reports only behavior documented by Chrome and Edge. Its fallback column describes SDK behavior when the native API is missing.

Package Chrome Edge Fallback when the native API is missing
@web-ai-sdk/prompt 148+ · stable 138+ · Canary/Dev · flag; numeric sampling-parameters OT in 155 feature-detected fallback
@web-ai-sdk/summarizer 138+ · stable 138+ · stable feature-detected fallback
@web-ai-sdk/translator 138+ · stable 148+ · stable feature-detected fallback
@web-ai-sdk/detector 138+ · stable 148+ · stable feature-detected fallback
@web-ai-sdk/writer Developer trial · local flag 138+ · Canary/Dev · flag feature-detected fallback
@web-ai-sdk/rewriter Developer trial · local flag 138+ · Canary/Dev · flag feature-detected fallback
@web-ai-sdk/proofreader Developer trial · local flag 142+ · Canary/Dev · flag feature-detected fallback
@web-ai-sdk/webmcp OT from 149 · local flag OT in 155 feature-detected fallback
  • Stable: the vendor enables the API by default.
  • Canary/Dev: an Edge preview that requires a flag.
  • Developer trial: Chrome’s current status label. It is not an active public origin trial.
  • OT: a public origin trial listed by the vendor.

The wrappers do not detect browser brands or versions. They check the native API and its reported availability. React hooks return status: "unavailable". Vanilla functions can throw a typed unavailability error.

Chrome’s status table lists Translator, Language Detector, and Summarizer as stable from Chrome 138. Prompt is stable from Chrome 148. Writer, Rewriter, and Proofreader are in Developer trial.

The public origin-trial milestone windows documented on the capability pages are historical:

  • Writer and Rewriter shared an origin trial from Chrome 137 through 148.
  • Proofreader had an origin trial from Chrome 141 through 145.

These origin trials have ended. The current Developer trial label and localhost flags are separate forms of access.

Surface Current Chrome localhost setup
Writer and Rewriter Enable #optimization-guide-on-device-model, #prompt-api-for-gemini-nano-multimodal-input, and #writer-api-for-gemini-nano; Rewriter shares Writer’s flag.
Proofreader Enable #proofreader-api.
WebMCP Enable #enable-webmcp-testing; production testing uses the origin trial from Chrome 149.

Chrome documents Translator and Language Detector for desktop. The foundation-model APIs have additional platform, storage, GPU, and CPU requirements. See the Prompt hardware requirements.

Do not infer product behavior from Chromium engine lineage. Check the capability page for each browser.

Chrome’s Prompt API documentation describes a sampling-parameters origin trial for web pages. The trial exposes samplingMode with seven values. The Prompt API draft marks samplingMode experimental.

Chrome supports numeric topK and temperature in Chrome Extensions. Chrome does not expose them to web pages by default.

Prompt is stable in Chrome 148+, but samplingMode remains a trial option. The SDK forwards samplingMode, topK, and temperature unchanged. The browser decides whether each option is available.

A localhost check ran installed Chrome 154.0.8037.98 with an origin-trial token. That build accepted all seven values and reported each through the session’s samplingMode. Without a token, the same build ignored the option, including invalid values. These checks cover that build, not every browser product.

Chrome 157 preview: Language Detector on Android

Section titled “Chrome 157 preview: Language Detector on Android”

Chrome labels its Chrome 157 release notes as Preview. They list Language Detector for Chrome on Android. This is preview information, not released behavior. The SDK has not verified availability on Android.

The table above keeps Language Detector as documented for Chrome desktop. Feature-detect with isAvailable() on every platform.

The current WebMCP draft defines RegisteredTool.inputSchema as an object. Chromium landed this change on September 10, 2026. Chromium Dash records 155.0.8051.0 as the first build.

Chrome trial generation Discovery schema compatibility
Earlier supported trial builds, starting from the Chrome 149 origin trial Legacy serialized strings may be returned.
Chrome 155, starting at 155.0.8051.0 Objects are the normative discovery shape.

The SDK types the optional discovery field as object | string. It preserves native values, including omission and malformed legacy strings. It does not parse, stringify, normalize, clone, or detect browser versions.

Use a typeof schema === "string" guard when consuming mixed trial generations. The WebMCP guide shows the guard. React exposes the same metadata through tools and refresh().

String compatibility is temporary. Remove it when supported trial generations no longer require it. Registration continues to accept schema objects. Execution compatibility is described below.

The current draft accepts an optional object input, including arrays. Chromium changed the native contract from a required string to optional object input.

Chromium Dash records 155.0.8052.0 as the first build. Chrome’s imperative API docs deprecate string arguments from Chrome 155.

Chrome trial generation Native execution input Native executeTool.length
Earlier supported trial hosts with execution, before 155.0.8052.0 Serialized JSON string 2
Chrome 155, starting at 155.0.8052.0 Original object or array 1

The SDK reads this arity before invoking the native method. It serializes once for legacy hosts and delegates serialization to object-input hosts. It never retries execution or uses browser-version detection. Unrecognized arities reject with WebMCPUnavailableError before invocation.

Both arities were verified in installed Chrome 153.0.8010.37 and Canary 155.0.8053.0 binaries with WebMCP enabled. These checks establish compatibility for those builds, not every browser product. Retain legacy support until supported trial hosts no longer require it.

Migration: executeTool(tool, input?, options?) now accepts input?: object. Pass objects or arrays directly; remove caller-side JSON.stringify(). Replace primitives with objects that match the tool schema. Omitted or undefined input defaults to {}; null and primitives reject.

Serialization failures reject, including circular data, BigInt values, failing toJSON() methods, and objects that serialize to undefined. Native results, navigation null, and cancellation remain unchanged.

The current draft defines ToolAnnotations.debugging with a default of false. Chromium implemented the member. Chromium Dash records 156.0.8067.0 as the first build.

Chrome for Testing 156.0.8072.0 with #enable-webmcp-testing returned explicit true and false values through discovery. It returned false when registration omitted the field. Installed Chrome 153.0.8010.53 accepted the field and omitted it from discovery.

The SDK forwards the field unchanged and preserves discovered metadata. It does not add defaults or detect browser versions. Treat an omitted value as false.

The table above tracks browser API providers only. An agent consumer is a separate product integration. It does not establish document.modelContext support in Chrome or another browser.

Product Adoption signal Product surface Scope and lifecycle Primary source
ChatGPT Desktop Site tools Implemented WebMCP consumer ChatGPT desktop app built-in browser only Availability depends on account, selected model, current page, and user permission. Tools do not carry after navigation. Closing the page makes them unavailable. OpenAI Site tools

Users can disable Site tools in the desktop app. The documented consumer behavior does not follow from engine lineage.

The SDK detects the native API on the current document. document.modelContext detection cannot prove that an external agent product will discover or invoke a tool.

Microsoft enables Summarizer by default from Edge 138. Prompt, Writer, and Rewriter are Canary/Dev previews from 138.0.3309.2. Proofreader is a preview from Edge 142.

Translator and Language Detector shipped in Edge 148.

The Microsoft Learn Edge 155 release notes list origin trials for WebMCP and Prompt API sampling parameters. The Edge 153 and Edge 154 notes list the same trials.

The Edge sampling trial covers numeric topK and temperature. Microsoft’s listing does not mention samplingMode. Do not assume that Edge accepts Chrome’s samplingMode values.

The WebMCP listing establishes that Edge offers an origin trial. It does not establish that Edge matches each Chrome WebMCP build detail on this page. The discovery, execution, and annotation checks above cover the named Chrome builds only.

Models and hardware are capability-specific

Section titled “Models and hardware are capability-specific”
Edge capability Documented model path Documented device-performance condition
Prompt Phi-4-mini by default; optional prerelease Aion-1.0-Instruct in Canary/Dev 150.0.4070+ when “Enable prerelease on-device language model” is enabled High or greater for Phi; Medium/Low only through the prerelease Aion path
Summarizer, Writer, Rewriter Phi-4-mini by default; the Writing Assistance docs now document the same optional prerelease Aion override in Canary/Dev 150.0.4070+ High or greater for Phi; Medium/Low only through the documented prerelease Aion path
Proofreader Phi-4-mini High or greater; Microsoft does not document an Aion override on the Proofreader page
Translator Task-specific translation models No Phi/Aion performance-class rule is documented on the Translator page
Language Detector Task-specific language-detection model No Phi/Aion performance-class rule is documented on the Language Detector page

Microsoft does not document the Aion path for Proofreader, Translator, or Language Detector.

Current Edge preview flag labels are:

  • “Prompt API for on-device language model”
  • “Writer API for on-device language model”
  • “Rewriter API for on-device language model”
  • “Proofreader API for Phi mini”
  • “Enable prerelease on-device language model” for the optional Aion override documented for Prompt and Writing Assistance

Summarizer is enabled by default. Translator and Language Detector do not use these generative-model flags.

Microsoft sources: