Gemini CLI v0.66.0: terminal rendering and git shell fixes#
Published by Alex Sorokoletov
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.
| Area | What changed |
|---|---|
| Git credentials | Interactive credential and SSH prompts are disabled in getSafeGitEnv.[7] |
| Git config | Shell and git environments preserve the user-level ~/.gitconfig.[8] |
| Windows diff | Diff command arguments are formatted and quoted in openDiff on Windows.[9] |
| Self-update | The active binary update is verified to prevent a PATH-shadowing false success.[10] |
| Termination signals | Termination signals are forwarded from the bootstrap parent to the child process.[11] |
| HTTP activity | Streamed 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#
- [1] Gemini CLI v0.66.0 release notes (v0.65.0 to v0.66.0)
- [2] PR #29725: implement synchronized output and isolate spinner rendering
- [3] PR #29695: fix debug console height calculation and terminalBuffer flickering
- [4] PR #29742: prevent right-hand border bleed in scrollable tool containers
- [5] PR #29792: preserve terminal scrollback during viewport refreshes
- [6] PR #29736: emit tool call groups from the scheduler and drop the UI lookahead
- [7] PR #29760: disable interactive credential and SSH prompts in getSafeGitEnv
- [8] PR #29832: preserve user-level ~/.gitconfig in shell and git environments
- [9] PR #29753: format and quote Windows diff command arguments in openDiff
- [10] PR #29757: verify active binary update to prevent PATH shadowing false success
- [11] PR #29790: forward termination signals from bootstrap parent to child process
- [12] PR #29827: decode streamed Node HTTP activity chunks with StringDecoder
- [13] PR #29835: prevent false positive matches in isAuthenticationError
- [14] PR #29844: support opt-in private network endpoints for MCP OAuth flows
- [15] PR #29750: resolve settings placeholders after loading .env files
- [16] PR #29773: support 'keys' array in keybindings.json
- [17] PR #29769: harden SKILL.md frontmatter parsing for single-line descriptions
- [18] PR #29768: reset slash-command conflict dedupe when conflicts reappear
- [19] PR #29766: round before selecting units in formatDuration
- [20] PR #29774: Add Banner about Gemini CLI not being optimized for Gemini 4
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