Skip to content

itamaker/go-chrome-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

go-chrome-ai

All Contributors

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.

go-chrome-ai social preview

Support

Buy Me A Coffee

Quickstart

Install

brew install --cask itamaker/tap/go-chrome-ai
curl -fsSL https://raw.githubusercontent.com/itamaker/go-chrome-ai/main/scripts/install.sh | sh
You 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.

First Run

Run:

go-chrome-ai        # CLI mode on every release
go-chrome-ai gui    # GUI mode on macOS release builds or source builds

On 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) -> true
  • variations_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 -> Disabled
  • chrome://flags/#prompt-api-for-gemini-nano -> Disabled
  • GenAILocalFoundationalModelSettings = 1 written 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\Chrome REG_DWORD

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.

Screenshot

go-chrome-ai GUI

Requirements

  • Go 1.26+
  • Google Chrome installed (Stable / Canary / Dev / Beta)

Run CLI

go run ./cmd/go-chrome-ai

Flags:

  • -dry-run: show changes without writing files or killing Chrome
  • -no-restart: patch but do not restart Chrome
  • -disable-ai-download (default true): block on-device AI model downloads by disabling the relevant chrome://flags entries and writing GenAILocalFoundationalModelSettings=1 to the OS managed-policy store. Use -disable-ai-download=false to skip.

Run GUI

go run ./cmd/go-chrome-ai gui

Prebuilt 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://flags and chrome://policy changes before you press Run

Build From Source

make build
go build -o output/go-chrome-ai ./cmd/go-chrome-ai

Makefile:

  • make build
  • make release-check to validate .goreleaser.yaml
  • make snapshot to build GoReleaser release assets into dist/

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

What It Does

  1. Detects Chrome user-data directories per OS/channel.
  2. Stops running Chrome processes to avoid file locks.
  3. Patches Local State.
  4. Restarts previously running Chrome executables (unless disabled).

Notes

  • Back up Chrome User Data if 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.

Acknowledgements

Built with OpenAI Codex

Special thanks to OpenAI Codex for assisting with parts of the implementation of this project.

Contributors ✨

Zhaoyang Jia
Zhaoyang Jia

License

MIT

About

Cross-platform Go tool to patch Chrome Local State and enable Ask Gemini and other Chrome AI features, with both CLI and GUI.

Topics

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors