A browser API for choosing and running local AI models A proposal called Web Models outlines `navigator.models`, a browser API that lets web apps request a specific open-weight model by model ID and run it on-device with user permission, with no quiet fallback to a different model. The API exposes `models.generate()`, `models.stream()` and `models.embed()`, and the browser shares model weights across sites so each site does not download and store another copy, while users can see and revoke access per site and model. Each model ID is tied to fixed weights, a tokenizer and default input and generation settings, and a changed release gets a new ID; shared catalogs, model retirement and cross-browser compatibility tests remain open questions. The model youtested against. The best model for scanning a receipt, transcribing audio, and searching documents may differ. A model ID lets a developer ask for the same model and release in any browser. A PROPOSAL FOR THE WEB The model your app was built for. With user permission. In the browser. navigator.models is a proposed browser API for web apps that need a particular open-weight model on-device. A workflow built around one model may not work with another. Apps should be able to ask for the model they built and tested against, regardless of which browser someone uses. Web Models makes that request explicit. The page names a model ID. The browser runs that model or tells the page it can’t. There is no quiet fallback. Some models take gigabytes to download and plenty of memory to run. The browser can share their weights across sites, so every site does not need to download and store another copy. An app asks for a model, and the browser asks the user. They can see and revoke access for each site and model. The browser also keeps an eye on setup, execution, and resource limits. Every top-level inference call on navigator.models names one model ID. Your app picks the model and calls the API. The user grants access. The browser runs it. 01// Request the model your app was built and tested against. 02const model = '