Obsah

Gemini Nano v Chrome

Vytvořeno: 1.7.2026 | Aktualizováno: 01.07.2026 08:11

Gemini Nano v Chrome je lokální AI model spravovaný přímo prohlížečem Chrome a dostupný přes Built-in AI / Prompt API. Projekt gemini-nano-chrome ukazuje praktický způsob, jak Gemini Nano vystavit jako lokální OpenAI-compatible API a použít ho i z nástrojů, které umí mluvit s OpenAI API.

Námět vychází z příspěvku Arnav Gupta na X, kde autor popisuje pokus zpřístupnit Gemini Nano z Chromu jako lokální API bez API klíče a bez externích síťových volání po stažení modelu.

Princip

Gemini Nano neběží jako samostatný proces typu Ollama nebo llama.cpp server. Model je dostupný uvnitř Chromu přes JavaScriptové rozhraní Prompt API, konkrétně přes globální objekt LanguageModel.

Projekt gemini-nano-chrome kolem toho staví bridge:

OpenAI-compatible klient → lokální HTTP server → Chrome CDP → LanguageModel / Gemini Nano

Praktický výsledek je lokální endpoint:

http://localhost:8788/v1/chat/completions

Ten se z pohledu klienta chová podobně jako OpenAI Chat Completions API. Díky tomu ho lze napojit i do nástrojů, které umí OpenAI-compatible providery.

Co projekt gemini-nano-chrome dělá

Repozitář obsahuje několik částí:

Základní spuštění:

git clone https://github.com/Ar9av/gemini-nano-chrome.git
cd gemini-nano-chrome
npm start

Po spuštění jsou dostupné dvě služby:

Chat UI:    http://localhost:8123
API server: http://localhost:8788/v1/chat/completions

První běh stáhne lokální model do Chrome profilu. README projektu uvádí velikost stažení přibližně 4 GB. Další spuštění už stejný Chrome profil znovu používá.

Požadavky

Podle dokumentace Chrome Built-in AI jsou pro Prompt API potřeba hlavně tyto podmínky:

Projekt v README doporučuje Chrome 138+ a uvádí ověření na Chromu 149. Pro lokální testování se zapínají flags:

chrome://flags/#optimization-guide-on-device-model
chrome://flags/#prompt-api-for-gemini-nano

Skript v repozitáři to umí udělat automaticky, takže není nutné flags ručně naklikávat.

API server

Lokální server implementuje jen část OpenAI API, která dává smysl pro textový lokální model v Chromu.

Podporované endpointy:

Jednoduchý test:

curl http://localhost:8788/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemini-nano",
    "messages": [
      {"role": "user", "content": "What are you, in one sentence?"}
    ]
  }'

Streaming je řešený přes SSE. response_format s JSON schema se mapuje na responseConstraint v Chrome Prompt API.

Napojení do OpenCode

OpenCode podporuje vlastní providery přes AI SDK. Pro OpenAI-compatible lokální API se používá balíček @ai-sdk/openai-compatible. To znamená, že gemini-nano-chrome lze přidat jako custom provider.

Příklad konfigurace v ~/.config/opencode/opencode.json nebo v projektovém opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "gemini-nano-chrome": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Gemini Nano Chrome",
      "options": {
        "baseURL": "http://localhost:8788/v1",
        "apiKey": "not-needed"
      },
      "models": {
        "gemini-nano": {
          "name": "Gemini Nano"
        }
      }
    }
  },
  "model": "gemini-nano-chrome/gemini-nano",
  "small_model": "gemini-nano-chrome/gemini-nano"
}

OpenCode skládá plné ID modelu ve tvaru provider_id/model_id. V tomto příkladu je tedy model dostupný jako:

gemini-nano-chrome/gemini-nano

Před spuštěním OpenCode musí běžet lokální server z projektu gemini-nano-chrome:

npm start

Pro lokální endpoint je vhodné dát pozor na proxy proměnné. Dokumentace OpenCode Network uvádí, že OpenCode respektuje standardní HTTP_PROXY, HTTPS_PROXY a NO_PROXY. Pokud je v prostředí proxy, měl by být localhost v NO_PROXY:

export NO_PROXY=localhost,127.0.0.1

Limity

Tohle je experimentální lokální integrace, ne plnohodnotná náhrada velkého coding modelu.

Z README projektu a dokumentace Chrome vyplývají hlavně tyto limity:

Pro malé lokální úlohy, rychlé dotazy nebo experiment se zapojením on-device modelu do nástrojů je to zajímavé. Pro komplexní agentní práci s repozitářem je potřeba počítat s malým kontextem a ověřovat výsledky.

Souvislost s Phi-4 Mini

V diskuzích kolem tohoto tématu se objevuje i zmínka o phi4-mini. To ale není součást projektu gemini-nano-chrome. Phi-4 Mini v Ollamě je samostatný lokální model, který lze spustit přes Ollamu.

Ollama u modelu uvádí i přímé použití s OpenCode:

ollama launch opencode --model phi4-mini

To je jiná integrační cesta než Gemini Nano v Chromu:

Poznámka ke Gemini Web Proxy

Existuje také projekt gemini-web-proxy, který se prezentuje jako Gemini web interface proxy pro OpenCode. Ten ale nepracuje s Gemini Nano v Chromu. Používá Playwright k automatizaci webového rozhraní Gemini a převádí ho na OpenAI-compatible API.

Je tedy potřeba rozlišovat:

Kdy to dává smysl

gemini-nano-chrome dává smysl hlavně jako experiment s lokálním modelem, který už je spravovaný Chromem. Prakticky může sloužit jako:

Pro běžné použití v OpenCode je ale potřeba počítat s tím, že model má malý kontext a není primárně trénovaný jako coding-agent backend.

Zdroje