# Built-in AI Test

> Check Gemini Nano in Chrome: Translator, Summarizer, Language Detector and Prompt API. availability() never downloads; a try may fetch ~2 GB. Desktop 138+.

- URL: https://bytescope.dev/en/built-in-ai-test/
- Locale: en · Also: [ja](https://bytescope.dev/ja/built-in-ai-test.md) · [zh-Hant](https://bytescope.dev/zh-Hant/built-in-ai-test.md)
- Runs: Everything runs locally in your browser — nothing is uploaded.
- Requires: Runs in any browser and reports what it finds. Only Chrome 138+ on desktop currently exposes any built-in AI API.
- Updated: 2026-09-08

## What it does

This page is a lab for Chrome's on-device Gemini Nano: `Translator`, `Summarizer`, `LanguageDetector`, and the Prompt API (`LanguageModel`). Each card answers three questions here: is the constructor on `self`, what does `availability()` say, and can one sentence actually run. Nothing is uploaded. `availability()` never fetches a model; the playground buttons can, and they say so — first use is often about 2 GB.

### What the four values mean

`unavailable`, `downloadable`, `downloading`, and `available` are the only answers `availability()` is allowed to give. `downloadable` means a model exists for this machine but is not on disk yet; opening the page does not start that download. Translator is also pair-shaped: `availability({ sourceLanguage, targetLanguage })` is how you ask about one language pair, and that set is not hard-coded here because Chrome's list goes stale.

### Platform facts, not hopes

Translator and Language Detector shipped in Chrome 138 stable, desktop only — mobile Chrome is a hard no. Summarizer is Chrome 138+ on Windows 10/11, macOS 13+, Linux, and ChromeOS Chromebook Plus. Prompt is already stable; Chrome 148 adds multimodal and structured output. Audio multimodal Prompt is in production on Video Subtitles. Gemini Nano wants about 22 GB free disk and 4 GB+ VRAM; Translator packs are much smaller. Firefox and Safari do not ship these APIs. Edge is Chromium and untested here. If this browser cannot run them, the matrix, about, and FAQ still render.

## Limits

Does not download or enable the model for you; it reports which built-in AI APIs this browser exposes and their state.

## Machine output

Copy JSON copies an envelope `{ tool, url, generatedAt, userAgentHint, result }`. `tool` is `"built-in-ai-test"`; `result` is capability only — API presence, availability, download percent, the language pair Translator queried. User prompts and model output are omitted.

- `translator` (object) — Translator probe: `apiPresent` (boolean or `null`; `null` = in-self not probed yet, `false` = constructor missing), `availability` (`"unavailable"` | `"downloadable"` | `"downloading"` | `"available"` | `"error"` or `null`; `null` = not asked — no constructor, or the query has not settled; `"error"` = constructor existed but `availability()` rejected), `downloadPercent` (0–100 while `create()` is downloading, otherwise `null`), plus `sourceLanguage`, `targetLanguage`, `checkSourceLanguage`, `checkTargetLanguage` (string or `null`; `null` = API missing or that pair was not queried), `checkAvailability` (same enum as availability, or `null` when not asked).
- `summarizer` (object) — Summarizer probe: `apiPresent`, `availability`, `downloadPercent` with the same null rules as Translator.
- `languageDetector` (object) — LanguageDetector probe: `apiPresent`, `availability`, `downloadPercent` with the same null rules.
- `languageModel` (object) — LanguageModel probe: `apiPresent`, `availability`, `downloadPercent` with the same null rules. Temperature / topK ranges are not fields here.

## FAQ

### Does opening this page download Gemini Nano?

No. `availability()` is a probe and does not fetch a model. A playground button can, on first use, download on the order of 2 GB. The button says so. Translator language packs are much smaller than the Prompt / Summarizer model.

### Which browsers actually run these APIs?

Desktop Chrome at the versions in the matrix (Translator and Language Detector from 138; Prompt multimodal from 148). Mobile Chrome is unsupported for every API on this page. Firefox and Safari do not ship them. Edge is Chromium and marked untested until someone measures it. The table stays on the page even when this browser cannot run the playground.

### Why does the first playground run take so long?

That is the on-device model, not your sentence. Chrome fetches Gemini Nano once (disk on the order of 22 GB free, and 4 GB+ VRAM). The percentage is the browser's own `downloadprogress` event from `create({ monitor })`, not a spinner we invented.

### Why is mobile Chrome marked unavailable?

Translator and Language Detector are desktop-only in Chrome 138+. Summarizer and Prompt have an OS list that does not include Android. This page does not guess; mobile Chrome is ✗ in the matrix for every row.

### Is the sentence I type uploaded?

No. Detection, translation, summarization and prompting all run in this tab. The only network traffic is Chrome fetching the on-device model the first time this machine needs it, and your text is not attached to that request.

## Related tools

- [Video Subtitles](https://bytescope.dev/en/video-subtitles.md) — Transcribe a recording to SRT or VTT with on-device Gemini Nano.
- [Image to Text](https://bytescope.dev/en/image-to-text.md) — Chinese OCR in this tab, then optional local rewrite or translation.
- [My Computer Specs](https://bytescope.dev/en/my-computer-specs.md) — See which GPU, how many CPU threads and how much RAM this browser reports, and whether hardware acceleration is on.
