To update Gemini CLI installed globally with npm, run npm install -g @google/gemini-cli@latest, the command Google’s FAQ gives. Installs made with Homebrew, pnpm, yarn, bun or Volta update through that tool instead, npx runs need no update, and by default the CLI checks for a new version at startup and updates npm-style installs itself. Check the result with gemini --version.
npm install -g @google/gemini-cli@latest
Applies to: Gemini CLI 0.62.0 (stable, latest tag on npm), 0.63.0-preview.0 (preview) and the 0.64.0 nightly builds; google-gemini/gemini-cli docs as of October 2, 2026. Last checked: October 2, 2026.
On this page
How do I check which version I have?
The FAQ lists three ways:
- Run
gemini --versionorgemini -vin your terminal. - Ask your package manager:
- npm:
npm list -g @google/gemini-cli - pnpm:
pnpm list -g @google/gemini-cli - yarn:
yarn global list @google/gemini-cli - bun:
bun pm ls -g @google/gemini-cli - homebrew:
brew list --versions gemini-cli
- npm:
- Inside a session, run
/about, which the commands reference describes as “Show version info. Share this information when filing issues.”
The version number also tells you the channel: a stable build looks like 0.62.0, a preview build like 0.63.0-preview.0, and a nightly build like 0.64.0-nightly.20261002.gc9096a847 (npm).
Update commands by install method
Gemini CLI works out how it was installed from the path it runs from, and its update message gives the matching command (installationInfo.ts):
| Installed with | Update command or message from the CLI |
|---|---|
| npm (global) | npm install -g @google/gemini-cli@latest |
| Homebrew (macOS) | “Installed via Homebrew. Please update with “brew upgrade gemini-cli”.” |
| pnpm (global) | pnpm add -g @google/gemini-cli@latest |
| yarn (global) | yarn global add @google/gemini-cli@latest |
| bun (global) | bun add -g @google/gemini-cli@latest |
| Volta | volta install @google/gemini-cli@latest |
| npx, pnpx or bunx | “update not applicable” |
| Standalone binary | “Please update by downloading the latest version from GitHub.” |
| Local git clone | “Please update with “git pull”.” |
A project’s node_modules | “Please update via your project’s package.json.” |
The troubleshooting page also names npm update -g @google/gemini-cli as a way to update a global npm install, and says the npm WARN deprecated node-domexception and npm WARN deprecated glob messages you may see during an install or update “are harmless and can be safely ignored.”
Homebrew and MacPorts
The installation guide installs with brew install gemini-cli on macOS and Linux, or sudo port install gemini-cli with MacPorts. For Homebrew, the CLI’s own message gives the update command:
brew upgrade gemini-cli
Gemini CLI only detects a Homebrew install on macOS, so on Linux it may not show that message. The docs give install and uninstall commands for MacPorts but no update command.
npx
npx @google/gemini-cli runs the CLI “without permanent installation”, and the CLI reports “Running via npx, update not applicable” (installation guide, installationInfo.ts). npx runs packages “from a temporary cache”, and the uninstall page shows how to clear it on macOS and Linux:
# The path is typically ~/.npm/_npx
rm -rf "$(npm config get cache)/_npx"
On Windows (PowerShell):
# The path is typically $env:LocalAppData\npm-cache\_npx
Remove-Item -Path (Join-Path $env:LocalAppData "npm-cache\_npx") -Recurse -Force
Note that this removes every package npx has cached, not only Gemini CLI.
From source
If you built Gemini CLI from a clone, the FAQ says to “pull the latest changes from the repository, and then rebuild using the command npm run build.”
Stable, preview and nightly: which channel to install
Gemini CLI publishes three npm tags. The installation guide recommends stable for most users, and it is what you get without a tag.
| Channel | npm tag | Published | Install or switch |
|---|---|---|---|
| Stable | latest | Weekly; last week’s preview plus fixes | npm install -g @google/gemini-cli@latest |
| Preview | preview | Weekly; “not fully vetted and may contain regressions” | npm install -g @google/gemini-cli@preview |
| Nightly | nightly | Daily at 00:00 UTC, from the main branch | npm install -g @google/gemini-cli@nightly |
Per the release process, new stable and preview releases are cut each Tuesday at about 20:00 UTC: the latest preview is promoted to stable, and the latest nightly becomes the new preview. Fixes between those releases ship as patch versions. Release notes for each channel are on the changelogs page.
Running the @latest command takes you back to stable from preview or nightly. These channel commands are npm commands; the docs do not give channel commands for Homebrew or the other package managers.
How automatic updates work
Two settings control updates, both on by default (configuration reference):
| Setting | Description | Default |
|---|---|---|
general.enableAutoUpdate | “Enable automatic updates.” | true |
general.enableAutoUpdateNotification | “Enable update notification prompts.” | true |
You can change them in ~/.gemini/settings.json or in the settings dialog, where the first one is labelled Enable Auto Update (settings). What the CLI does with them, from its source (updateCheck.ts, handleAutoUpdate.ts):
- The check. At startup the CLI asks npm for the newest version and shows “Gemini CLI update available! current → new”. With
enableAutoUpdateNotificationoff, it skips the check entirely. - The update. For npm, pnpm, yarn, bun and Volta installs with
enableAutoUpdateon, it runs the update command in the background and reports “Update successful! The new version will be used on your next run.” If that fails, it prints the command to run yourself. - What it leaves alone. Homebrew, git-clone and project installs get the message only. npx, pnpx, bunx and standalone-binary runs get nothing. In sandbox mode the message says “Automatic update is not available in sandbox mode.”
- Channels. The CLI offers only updates that are as stable as your current build or more stable. A nightly build compares the newest nightly with the newest stable release and installs the better one.





