
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.

## Prerequisites

- **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](https://developer.chrome.com/docs/ai/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](https://developer.chrome.com/docs/ai/get-started))
- **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.

## Step 1 — Enable the Chrome flags

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](https://developer.chrome.com/docs/ai/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.

## Step 2 — Trigger the model download

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](#troubleshooting) below.

## 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:

   ```js
   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](https://developer.chrome.com/docs/ai/prompt-api))

You can also smoke-test a prompt:

```js
const session = await LanguageModel.create();
await session.prompt("Write one sentence about otters.");
```

## Step 4 — Select Gemini Nano in Daneel

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.

:::note
Gemini Nano is Daneel's highest privacy tier — prompts never leave the Chrome process. See the [privacy model](/concepts/privacy/) for where it sits relative to other providers.
:::

## Troubleshooting

**`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](/concepts/providers/) for guidance.

## Next steps

- Try it on a page: follow [Your First Page Chat](/guides/first-chat/) with Gemini Nano selected.
- Compare it against other local options in the [AI Providers reference](/reference/providers/).
- Learn [how to use Daneel fully offline](/how-to/offline/).
