Skip to content

How to Enable Gemini Nano

Gemini Nano is Google’s on-device language model shipped inside Chrome itself. When enabled, prompts run in the browser process, never cross a network boundary, and require no API key. This guide walks you through enabling the model in Chrome, verifying it works, and selecting it in Daneel.

  • Chrome 138 or later (stable channel). The Prompt API for on-device usage ships in Chrome 138+, and the LanguageModel global is available as of this version. (Chrome for Developers — Prompt API)
  • Operating system: Windows 10/11, macOS 13 (Ventura) or later, Linux, or ChromeOS Platform 16389.0.0+ on a Chromebook Plus device. (Chrome for Developers — Get started with built-in AI)
  • Hardware: at least 16 GB RAM, 4+ CPU cores, and a GPU with more than 4 GB of VRAM.
  • Storage: roughly 22 GB free for the model download. The model is shared across Chrome profiles.
  • Network: unmetered connection for the initial download.

Gemini Nano is not yet available on Android or iOS Chrome.

Open two URLs in Chrome and flip both flags.

  1. Navigate to chrome://flags/#optimization-guide-on-device-model.
  2. Set it to Enabled BypassPerfRequirement. The plain Enabled state also works on machines that meet the hardware bar, but BypassPerfRequirement avoids silent “unavailable” results if Chrome’s heuristics disagree with your GPU. (Chrome for Developers — Get started)
  3. Navigate to chrome://flags/#prompt-api-for-gemini-nano.
  4. Set it to Enabled. Choose Enabled multilingual if you plan to prompt in languages other than English.
  5. Click Relaunch at the bottom of the page.

After Chrome restarts, both flags must show as enabled. If either reverts to Default, re-open the flag URL and save again.

The model is fetched lazily the first time Chrome recognizes it is needed.

  1. Open chrome://components/.
  2. Scroll to Optimization Guide On Device Model. If the version reads 0.0.0.0, click Check for update.
  3. The component status will progress through Downloading to a real version string (for example 2024.x.x.x). The download is roughly 2 GB on disk and may take several minutes.
  4. Keep Chrome open until the version number appears. The download resumes across restarts but stalls if Chrome is closed mid-fetch.

If the version stays at 0.0.0.0 after a few minutes, see Troubleshooting below.

Step 3 — Verify availability from the DevTools console

Section titled “Step 3 — Verify availability from the DevTools console”

Confirm the model is ready before switching providers in Daneel.

  1. Open any tab and press F12 to open DevTools.

  2. In the Console, run:

    await LanguageModel.availability();
  3. The expected return values are:

    • "available" — ready to use.
    • "downloadable" — flags are set but the model has not been fetched yet. Return to Step 2.
    • "downloading" — the component is still being fetched.
    • "unavailable" — hardware, OS, or flag requirements are not met.

The global is called LanguageModel, not ai.languageModel or window.ai — earlier Chrome builds exposed different surfaces, and Daneel’s provider targets the current LanguageModel class directly. (Chrome for Developers — Prompt API)

You can also smoke-test a prompt:

const session = await LanguageModel.create();
await session.prompt("Write one sentence about otters.");
  1. Open Daneel from the Chrome toolbar.
  2. Go to Settings > Gemini Nano.
  3. Daneel runs its own availability check and shows a status badge: Available, Downloadable, Downloading, or Unavailable.
  4. If the status is Available, pick a language from the Language dropdown (used as the session’s expected input and output locale).
  5. Close settings, open the chat panel, and switch the provider selector to Gemini Nano.

You can now ask page questions, summarize selections, and run vault RAG with zero network traffic for inference. Embeddings still run locally through the WebGPU embedding provider.

LanguageModel is undefined in the console. The flags did not take effect. Re-check both chrome://flags/#optimization-guide-on-device-model and chrome://flags/#prompt-api-for-gemini-nano, confirm they read Enabled, and relaunch Chrome from the prompt at the bottom of the flags page (not by closing the window manually).

Component stuck at 0.0.0.0. Chrome only downloads the model when the Optimization Guide flag is enabled and the device passes the performance check. Switch the flag to Enabled BypassPerfRequirement, relaunch, then click Check for update in chrome://components/ again. Corporate proxies and strict DNS filters also block the download — try from an unfiltered network.

Availability returns "unavailable" after download. Confirm you have at least 22 GB free on the Chrome user data partition and more than 4 GB of VRAM. On laptops with hybrid graphics, force Chrome onto the discrete GPU via your OS graphics settings.

Daneel shows “Unavailable” even though the console test works. Reload the Daneel side panel. The provider caches its availability probe for the lifetime of the panel.

Responses are short, repetitive, or off-topic. Gemini Nano is a ~3B parameter model. It handles summarization, rewriting, and simple Q&A well, but struggles with long multi-step reasoning and tool calling. For complex agentic workflows, switch to Claude, Azure OpenAI, or a larger Ollama model. See the provider spectrum for guidance.