go-chrome-ai is a cross-platform Chrome profile patcher written in Go, with both CLI and GUI modes.
It helps enable Chrome AI-related features (including Ask Gemini) without reinstalling Chrome or recreating your profile, and can also block Chrome from silently downloading the on-device Gemini Nano model (~2–4 GB) by flipping the relevant chrome://flags and applying Google's GenAILocalFoundationalModelSettings Enterprise policy.
brew install --cask itamaker/tap/go-chrome-aicurl -fsSL https://raw.githubusercontent.com/itamaker/go-chrome-ai/main/scripts/install.sh | shYou can also download binaries from GitHub Releases.
Each archive contains a single executable: go-chrome-ai.
The macOS archives include the GUI-capable binary. Linux and Windows releases ship the CLI binary for portable installs.
Run:
go-chrome-ai # CLI mode on every release
go-chrome-ai gui # GUI mode on macOS release builds or source buildsOn some macOS systems, Gatekeeper may block first launch for downloaded binaries. If that happens, run:
xattr -d com.apple.quarantine $(which go-chrome-ai)Typical warning:
Apple could not verify “go-chrome-ai” is free of malware that may harm your Mac or compromise your privacy.
It enables Chrome AI-related features (such as Ask Gemini) by patching local profile state:
is_glic_eligible(recursive) ->truevariations_country->"us"variations_permanent_consistency_country->["<last_version>", "us"](if field exists and is patchable)
It can also block on-device AI model downloads (Gemini Nano), which is the default in both CLI and GUI. The block applies three changes:
chrome://flags/#optimization-guide-on-device-model-> Disabledchrome://flags/#prompt-api-for-gemini-nano-> DisabledGenAILocalFoundationalModelSettings = 1written to the OS managed-policy store- macOS:
defaults write com.google.Chrome GenAILocalFoundationalModelSettings -int 1 - Linux:
/etc/opt/chrome/policies/managed/go-chrome-ai.json(needs sudo) - Windows:
HKLM\Software\Policies\Google\ChromeREG_DWORD
- macOS:
Because the third change is an Enterprise policy, Chrome will display the "managed by your organization" banner afterwards. All three are independently selectable options — the two chrome://flags entries (CLI: -disable-flag, GUI: per-flag checkboxes) and the chrome://policy write (CLI: -disable-ai-policy, GUI: policy checkbox) — or all three at once via the "select all" option (CLI: -disable-ai-download, GUI: "Select all" checkbox, both default on). Turn off -disable-ai-download (CLI) or "Select all" (GUI) to pick and choose, e.g. to disable the flags without triggering the Enterprise-policy banner, or vice versa.
Every run fully syncs Chrome to the current selection, in both directions: a selected item is applied (flag forced to Disabled / policy written), and a deselected item is actively reverted — its chrome://flags override is removed (back to Chrome's default) and the chrome://policy entry is deleted from the OS managed-policy store, if either was previously set by this tool. Unchecking an option is not a no-op; it undoes that option's effect on the next run.
- Go
1.26+ - Google Chrome installed (Stable / Canary / Dev / Beta)
go run ./cmd/go-chrome-aiFlags:
-dry-run: show changes without writing files or killing Chrome-no-restart: patch but do not restart Chrome-disable-ai-download(defaulttrue): "select all" — block on-device AI model downloads by disabling every knownchrome://flagsentry and writingGenAILocalFoundationalModelSettings=1to the OS managed-policy store. Use-disable-ai-download=falseto pick individually with-disable-flagand/or-disable-ai-policyinstead.-disable-flag <name>(repeatable): disable one specificchrome://flagsentry by name (e.g.optimization-guide-on-device-model,prompt-api-for-gemini-nano). Only takes effect when-disable-ai-download=false.-disable-ai-policy(defaulttrue): write theGenAILocalFoundationalModelSettingsEnterprise policy, independent of which flags are selected. Only takes effect when-disable-ai-download=false.
go run ./cmd/go-chrome-ai guiPrebuilt Linux and Windows releases are CLI-only. Build from source if you want the Fyne GUI on those platforms.
The GUI includes:
- auto-detection of installed Chrome channels
- left/right split layout (configuration on the left, run controls + logs on the right)
- one-click patch flow
- progress bar
- real-time logs
- a checkbox per
chrome://flagsentry, a checkbox for thechrome://policywrite, and a "Select all" master switch over both (checking it selects and locks everything; uncheck it to pick items individually), with a live preview of the exact changes before you press Run
make buildgo build -o output/go-chrome-ai ./cmd/go-chrome-aiMakefile:
make buildmake release-checkto validate.goreleaser.yamlmake snapshotto build GoReleaser release assets intodist/
Local build output is written to output/. GoReleaser packaging output is written to dist/.
Installed binary usage:
go-chrome-ai # CLI mode on every release
go-chrome-ai gui # GUI mode on macOS release builds or source builds- Detects Chrome user-data directories per OS/channel.
- Stops running Chrome processes to avoid file locks.
- Patches
Local State. - Restarts previously running Chrome executables (unless disabled).
- Back up Chrome
User Dataif you want a safety net. - Run with the same OS user that owns the Chrome profile.
- Not affiliated with Google. Use at your own risk.
![]() |
|---|
| Zhaoyang Jia |


