Gemini CLI v0.66.0: terminal rendering and git shell fixes#

Published by

Part of the Gemini CLI Version Tracker series. | Gemini CLI on GitHub | Releases

Gemini CLI v0.66.0 is a maintenance release over v0.65.0, built almost entirely from fixes. The terminal renderer gets synchronized output and preserved scrollback, git and shell subprocesses run with the user-level ~/.gitconfig preserved and interactive credential prompts suppressed, and the self-updater verifies the active binary so a PATH-shadowed install cannot report a false success.[1]

Steadier terminal rendering#

Several fixes land on how the CLI draws to the terminal. Output is now synchronized and spinner rendering is isolated from it.[2] The debug console height calculation is corrected and terminalBuffer flickering is fixed.[3] Scrollable tool containers no longer bleed their right-hand border.[4] Terminal scrollback is preserved during viewport refreshes.[5] Underneath these, the scheduler now emits tool-call groups and the UI lookahead is removed.[6]

Shell, git, and the processes the CLI spawns#

A cluster of fixes concerns the environment the CLI hands to the git and shell commands it runs, and the signals that pass between the parent and child processes.

AreaWhat changed
Git credentialsInteractive credential and SSH prompts are disabled in getSafeGitEnv.[7]
Git configShell and git environments preserve the user-level ~/.gitconfig.[8]
Windows diffDiff command arguments are formatted and quoted in openDiff on Windows.[9]
Self-updateThe active binary update is verified to prevent a PATH-shadowing false success.[10]
Termination signalsTermination signals are forwarded from the bootstrap parent to the child process.[11]
HTTP activityStreamed Node HTTP activity chunks are decoded with StringDecoder.[12]

Auth, config, and a Gemini 4 banner#

The authentication path drops false-positive matches in isAuthenticationError.[13] MCP OAuth flows can opt in to private network endpoints.[14] On the configuration side, settings placeholders are resolved after .env files are loaded,[15] keybindings.json accepts a keys array,[16] SKILL.md frontmatter parsing is hardened for single-line descriptions,[17] and slash-command conflict dedupe resets when conflicts reappear.[18] formatDuration rounds before selecting units.[19] This release also adds a banner stating that Gemini CLI is not optimized for Gemini 4.[20]

Most of the work lands on the subprocess and terminal boundary#

No configuration variable, model identifier, or experimental setting changed between v0.65.0 and v0.66.0. The surface a user configures is the same; the work is in how the CLI drives the terminal and manages the processes it spawns.

That boundary is where a long agent session tends to break. The git-environment fixes, the signal forwarding from the bootstrap parent, the PATH-shadow verification on update, and the StringDecoder on streamed HTTP chunks all concern the CLI acting as a parent process that runs git, spawns children, and reads their output. A run that drives real tools fails at those seams more often than at the model call, and v0.66.0 spends its fixes there.

Sources#

This analysis is based on publicly available open-source code and release metadata, conducted for educational and research purposes. All trademarks and software referenced belong to their respective owners.

Previous Gemini CLI analysis: v0.65.0 (October 20, 2026)

All 8 Gemini CLI analyses: Gemini CLI Version Tracker · Official Gemini CLI changelog