Turn on Chrome's built-in AI for ContractFocus

ContractFocus uses Chrome's built-in Gemini Nano model, entirely on your device, to classify legal documents and produce plain-English summaries. If Chrome's Prompt API and Summarizer API are available on your machine, ContractFocus will light up those features automatically. If they aren't, the extension still runs: the deterministic clause pattern matcher surfaces every red flag regardless. This guide walks you through the one-time AI setup.

System requirements

Chrome's built-in AI runtime has hardware and OS constraints. Before you start, confirm your machine meets them. These minimums are set by Google for the Prompt API on device.

Chrome
Version 138 or later
OS
Windows 10/11, macOS 13+, Linux
Storage
~22 GB free for the model
GPU / VRAM
4 GB VRAM or Apple Silicon
RAM
8 GB minimum, 16 GB recommended
Network
Unmetered connection for initial download
ChromeOS, Android, and iOS are not supported yet. If you're on one of those, ContractFocus still runs the pattern-based clause matcher and generates a templated summary from the detected flags, so you still get red-flag detection even without on-device AI.

Not sure what version of Chrome you have? Open chrome://version in a new tab. The number after "Google Chrome" on the first line should be 138 or higher.

Step 1 · Enable the Prompt and Summarizer flags

1
Open Chrome flags

Copy each URL and paste it into the Chrome address bar (flag URLs can't be clicked as links for security reasons):

chrome://flags/#prompt-api-for-gemini-nano
chrome://flags/#summarization-api-for-gemini-nano
chrome://flags/#optimization-guide-on-device-model
2
Set each flag
  • Prompt API for Gemini NanoEnabled
  • Summarization API for Gemini NanoEnabled
  • Enables optimization guide on deviceEnabled BypassPerfRequirement (this last one is only needed on machines under the stated VRAM floor)

ContractFocus needs both the Prompt API (for document-type classification) and the Summarizer API (for the plain-English bullet summary). Without the Summarizer flag, the side panel falls back to a templated summary built from matched clause flags.

3
Relaunch Chrome

After changing a flag, Chrome shows a blue Relaunch button at the bottom right. Click it. Your tabs will reopen after restart.

Step 2 · Download the Gemini Nano model

The Prompt and Summarizer APIs share the same on-device model component. Chrome downloads it in the background once you start using the APIs, but you can trigger and confirm the download through the Components page.

1
Open Chrome components

Paste this URL into the address bar:

chrome://components
2
Find Optimization Guide On Device Model

Scroll to the entry named Optimization Guide On Device Model. If the version shows as 0.0.0.0, the model hasn't been downloaded yet.

Click Check for update. The status will change to "Downloading" and then, once complete, the version will show something like 2024.11.xx.xxxx.

The model is roughly 2 GB compressed. First-time download can take several minutes on a fast connection, longer on metered ones. You only pay this cost once per Chrome profile.

Step 3 · Verify the setup works

Open the Chrome DevTools console on any regular webpage (right-click → Inspect → Console tab) and paste this check:

(async () => {
  if (!('LanguageModel' in self)) {
    console.log('Prompt API not available in this build');
    return;
  }
  const promptStatus = await LanguageModel.availability();
  console.log('LanguageModel availability:', promptStatus);

  if ('Summarizer' in self) {
    const sumStatus = await Summarizer.availability();
    console.log('Summarizer availability:', sumStatus);
  } else {
    console.log('Summarizer API not available in this build');
  }
})();

You're looking for one of these responses per API in the console:

When it works inside ContractFocus: open the side panel, navigate to any Terms of Service or privacy policy page, and click Decode this page. You should see a progress line ("Classifying document... Summarizing...") then a bullet summary appear, followed by the clause flags. The status pill at the top of the side panel will read "On-device AI" in green.

Troubleshooting

Availability says "unavailable"

The most common causes:

Model version stays at 0.0.0.0

Chrome will not start the download until you've actually tried to use one of the APIs once in a page where the flag is enabled. Paste the verification snippet above into DevTools, leave the tab open for a minute, then revisit chrome://components and click Check for update again.

Side panel status pill reads "Fallback mode"

If ContractFocus can't reach the Prompt or Summarizer API, it runs in fallback mode: the clause pattern matcher still flags all 34 patterns and a templated summary is generated from the flag list. To re-enable the AI pathway:

  1. Confirm LanguageModel.availability() and Summarizer.availability() both return "available" using the snippet above.
  2. Close and reopen the side panel so the panel re-checks feature detection on load.
  3. If it still doesn't light up, email dev@loopheadlabs.com with your Chrome version (chrome://version) and OS. We'll dig in.

Summary appears but document type says "Unknown"

The Prompt API classifier has a confidence threshold. On short or paywalled pages, the classifier may return "Unknown" while the Summarizer still produces output. The extension will still run all five clause packs against the extracted text, so you aren't losing any red-flag detection. To force a specific document type, use the dropdown above the summary on the side panel.

Does this work in Chromium, Edge, Brave, or Arc?

At launch, Google ships the Prompt API, Summarizer API, and the Gemini Nano model only in Chrome Stable and Chrome Canary. Chromium-based browsers that don't bundle the Optimization Guide component will not have the APIs available, so ContractFocus falls back to the pattern-matcher-only mode. The clause detection, history, version-change alerts, and exports all still work on those browsers. Only the AI-generated summary requires Chrome.

What stays on your device

Everything relevant to the AI features. ContractFocus never sends page content, uploaded file content, or AI output to any server. The Prompt and Summarizer APIs run inference locally using the Gemini Nano model that Chrome stored on your disk. We don't have an API key to give you, because there's no network call in the pipeline to make one on.

The only data that can leave your device is the optional Team plan sync, which writes redacted summary records (not raw contract text) to Firebase Firestore. See the Team plan setup page and Privacy Policy Section 5 for the full breakdown.