English | 中文
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. Pass -disable-ai-download=false (CLI) or untick the option (GUI) if you do not want that.
- 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): block on-device AI model downloads by disabling the relevantchrome://flagsentries and writingGenAILocalFoundationalModelSettings=1to the OS managed-policy store. Use-disable-ai-download=falseto skip.
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 "Disable on-device AI model download" toggle that previews the exact
chrome://flagsandchrome://policychanges 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.
Special thanks to OpenAI Codex for assisting with parts of the implementation of this project.
![]() |
|---|
| Zhaoyang Jia |


