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 specifics
Section titled “Chrome specifics”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.
Prompt sampling options
Section titled “Prompt sampling options”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.
WebMCP discovery compatibility
Section titled “WebMCP discovery compatibility”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.
WebMCP execution compatibility
Section titled “WebMCP execution compatibility”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.
WebMCP annotation compatibility
Section titled “WebMCP annotation compatibility”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.
Agent consumers
Section titled “Agent consumers”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.
Edge specifics
Section titled “Edge specifics”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: