Releases: google-gemini/gemini-cli
Releases · google-gemini/gemini-cli
Release v0.27.0-nightly.20260127.00f60ef53
What's Changed
- Improve error messages on failed onboarding by @gsquared94 in #17357
- Follow up to "enableInteractiveShell for external tooling relying on a2a server" by @DavidAPierce in #17130
- Fix/issue 17070 by @alih552 in #17242
- fix(core): handle URI-encoded workspace paths in IdeClient by @dong-jun-shin in #17476
- feat(cli): add quick clear input shortcuts in vim mode by @harshanadim in #17470
- feat(core): optimize shell tool llmContent output format by @SandyTao520 in #17538
- Fix bug in detecting already added paths. by @jacob314 in #17430
- feat(scheduler): support multi-scheduler tool aggregation and nested call IDs by @abhipatel12 in #17429
- feat(agents): implement first-run experience for project-level sub-agents by @gundermanc in #17266
- Update extensions docs by @chrstnb in #16093
- Docs: Refactor left nav on the website by @jkcinouye in #17558
- fix(core): stream grep/ripgrep output to prevent OOM by @adamfweidman in #17146
- feat(plan): add persistent plan file storage by @jerop in #17563
- feat(agents): migrate subagents to event-driven scheduler by @abhipatel12 in #17567
- Fix extensions config error by @chrstnb in #17580
- fix(plan): remove subagent invocation from plan mode by @jerop in #17593
- feat(ui): add solid background color option for input prompt by @jacob314 in #16563
- feat(plan): refresh system prompt when approval mode changes (Shift+Tab) by @jerop in #17585
- feat(cli): add global setting to disable UI spinners by @galz10 in #17234
New Contributors
- @alih552 made their first contribution in #17242
- @dong-jun-shin made their first contribution in #17476
- @harshanadim made their first contribution in #17470
Full Changelog: v0.27.0-nightly.20260126.cb772a5b7...v0.27.0-nightly.20260127.00f60ef53
Release v0.27.0-nightly.20260126.cb772a5b7
What's Changed
- feat(core): Enable AgentRegistry to track all discovered subagents by @SandyTao520 in #17253
- feat(core): Have subagents use a JSON schema type for input. by @joshualitt in #17152
- feat: replace large text pastes with [Pasted Text: X lines] placeholder by @jackwotherspoon in #16422
- security(hooks): Wrap hook-injected context in distinct XML tags by @yunaseoul in #17237
- Enable the ability to queue specific nightly eval tests by @gundermanc in #17262
- docs(hooks): comprehensive update of hook documentation and specs by @abhipatel12 in #16816
- refactor: improve large text paste placeholder by @jacob314 in #17269
- feat: implement /rewind command by @Adib234 in #15720
- Feature/jetbrains ide detection by @SoLoHiC in #16243
- docs: update typo in mcp-server.md file by @schifferl in #17099
- Sanitize command names and descriptions by @ehedlund in #17228
- fix(auth): don't crash when initial auth fails by @skeshive in #17308
- Added image pasting capabilities for Wayland and X11 on Linux by @devr0306 in #17144
- feat: add AskUser tool schema by @jackwotherspoon in #16988
- fix cli settings: resolve layout jitter in settings bar by @Mag1ck in #16256
- fix: show whitespace changes in edit tool diffs by @Ujjiyara in #17213
- Remove redundant calls setting linuxClipboardTool. getUserLinuxClipboardTool() now handles the caching internally by @jacob314 in #17320
- ci: allow failure in evals-nightly run step by @gundermanc in #17319
- feat(cli): Add state management and plumbing for agent configuration dialog by @SandyTao520 in #17259
- bug: fix ide-client connection to ide-companion when inside docker via ssh/devcontainer by @kapsner in #15049
- Emit correct newline type return by @scidomino in #17331
- New skill: docs-writer by @g-samroberts in #17268
- fix(core): Resolve AbortSignal MaxListenersExceededWarning (#5950) by @spencer426 in #16735
- Disable tips after 10 runs by @Adib234 in #17101
- Fix so rewind starts at the bottom and loadHistory refreshes static content. by @jacob314 in #17335
- feat(core): Remove legacy settings. by @joshualitt in #17244
- feat(plan): add 'communicate' tool kind by @jerop in #17341
- feat(routing): A/B Test Numerical Complexity Scoring for Gemini 3 by @mattKorwel in #16041
- feat(plan): update UI Theme for Plan Mode by @Adib234 in #17243
- fix(ui): stabilize rendering during terminal resize in alternate buffer by @lkk214 in #15783
- feat(cli): add /agents config command and improve agent discovery by @SandyTao520 in #17342
- feat(mcp): add enable/disable commands for MCP servers (#11057) by @jasmeetsb in #16299
- fix(cli)!: Default to interactive mode for positional arguments by @ishaanxgupta in #16329
- Fix issue #17080 by @jacob314 in #17100
- feat(core): Refresh agents after loading an extension. by @joshualitt in #17355
- fix(cli): include source in policy rule display by @allenhutchison in #17358
- fix: remove obsolete CloudCode PerDay quota and 120s terminal threshold by @gsquared94 in #17236
- Refactor subagent delegation to be one tool per agent by @gundermanc in #17346
- fix(core): Include MCP server name in OAuth message by @jerop in #17351
- Fix pr-triage.sh script to update pull requests with tags "help wanted" and "maintainer only" by @jacob314 in #17324
- feat(plan): implement simple workflow for planning in main agent by @jerop in #17326
- fix: exit with non-zero code when esbuild is missing by @yuvrajangadsingh in #16967
- fix: ensure @-command UI message ordering and test by @medic-code in #12038
- fix(core): add alternative command names for Antigravity editor detec… by @BaeSeokJae in #16829
- Refactor: Migrate CLI
appEventsto CorecoreEventsby @Adib234 in #15737 - fix(core): await MCP initialization in non-interactive mode by @Ratish1 in #17390
- Fix modifyOtherKeys enablement on unsupported terminals by @seekskyworld in #16714
- fix(core): gracefully handle disk full errors in chat recording by @godwiniheuwa in #17305
- fix(oauth): update oauth to use 127.0.0.1 instead of localhost by @skeshive in #17388
- fix(core): use RFC 9728 compliant path-based OAuth protected resource discovery by @vrv in #15756
- Update Code Wiki README badge by @PatoBeltran in #15229
- Add conda installation instructions for Gemini CLI by @ishaanxgupta in #16921
- chore(refactor): extract BaseSettingsDialog component by @SandyTao520 in #17369
- fix(cli): preserve input text when declining tool approval (#15624) by @ManojINaik in #15659
- chore: upgrade dep: diff 7.0.0-> 8.0.3 by @scidomino in #17403
- feat: add AskUserDialog for UI component of AskUser tool by @jackwotherspoon in #17344
- feat(ui): display user tier in about command by @sehoon38 in #17400
- feat: add
clearContexttoAfterAgenthooks by @jackwotherspoon in #16574 - fix(cli): change image paste location to global temp directory (#17396) by @devr0306 in #17396
- Fix line endings issue with Notice file by @scidomino in #17417
- feat(plan): implement persistent
approvalModesetting by @Adib234 in #17350 - feat(ui): Move keyboard handling into BaseSettingsDialog by @SandyTao520 in #17404
- Allow prompt queueing during MCP initialization by @Adib234 in #17395
- feat: implement AgentConfigDialog for /agents config command by @SandyTao520 in #17370
- fix(agents): default to all tools when tool list is omitted in subagents by @gundermanc in #17422
- feat(cli): Moves tool confirmations to a queue UX by @abhipatel12 in #17276
- fix(core): hide user tier name by @sehoon38 in #17418
- feat: Enforce unified folder trust for /directory add by @galz10 in #17359
- migrate fireToolNotificationHook to hookSystem by @ved015 in #17398
- Clean up dead code by @scidomino in #17443
- feat(workflow): add stale pull request closer with linked-issue enforcement by @bdmorgan in #17449
- feat(workflow): expand stale-exempt labels to include help wanted and Public Roadmap by @bdmorgan in #17459
- chore(workflow): remove redundant label-enforcer workflow by @bdmorgan in #17460
- Resolves the confusing error message `ripgrep exited with code null that occurs when a search operation is cancelled or aborted by @maximmasiutin in #14267
- fix: detect pnpm/pnpx in ~/.local by @rwakulszowa in #15254
- docs: Add instructions for MacPorts and uninstall instructions for Homebrew by @breun in #17412
- docs(hooks): clarify mandatory 'type' field an...
Release v0.26.0-preview.4
What's Changed
- fix(patch): cherry-pick 12a5490 to release/v0.26.0-preview.3-pr-17395 [CONFLICTS] by @gemini-cli-robot in #17424
Full Changelog: v0.26.0-preview.3...v0.26.0-preview.4
Release v0.25.2
What's Changed
- fix(patch): cherry-pick 9866eb0 to release/v0.25.1-pr-17166 to patch version v0.25.1 and create version 0.25.2 by @gemini-cli-robot in #17419
Full Changelog: v0.25.1...v0.25.2
Release v0.27.0-nightly.20260122.61040d0eb
What's Changed
- fix(cli): fix newline support broken in previous PR by @scidomino in #17159
- Add interactive ValidationDialog for handling 403 VALIDATION_REQUIRED errors. by @gsquared94 in #16231
- Add Esc-Esc to clear prompt when it's not empty by @Adib234 in #17131
- Avoid spurious warnings about unexpected renders triggered by appEvents and coreEvents. by @jacob314 in #17160
- fix(cli): resolve home/end keybinding conflict by @scidomino in #17124
- fix(cli): display 'http' type on mcp list by @pamanta in #16915
- fix bad fallback logic external editor logic by @scidomino in #17166
- Fix bug where System scopes weren't migrated. by @jacob314 in #17174
- Fix mcp tool lookup in tool registry by @werdnum in #17054
- remove fireAgent and beforeAgent hook by @ishaanxgupta in #16919
- Remove unused modelHooks and toolHooks by @ved015 in #17115
- feat(cli): sanitize ANSI escape sequences in non-interactive output by @sehoon38 in #17172
- Update Attempt text to Retry when showing the retry happening to the … by @sehoon38 in #17178
- chore(skills): update pr-creator skill workflow by @sehoon38 in #17180
- feat(cli): implement event-driven tool execution scheduler by @abhipatel12 in #17078
- chore(release): bump version to 0.27.0-nightly.20260121.97aac696f by @gemini-cli-robot in #17181
- Remove other rewind reference in docs by @chrstnb in #17149
- feat(skills): add code-reviewer skill by @sehoon38 in #17187
- feat(plan): Extend
Shift+TabMode Cycling to includePlanMode by @Adib234 in #17177 - feat(plan): refactor TestRig and eval helper to support configurable approval modes by @jerop in #17171
- feat(workflows): support recursive workstream labeling and new IDs by @bdmorgan in #17207
- Run evals for all models. by @gundermanc in #17123
- fix(github): improve label-workstream-rollup efficiency with GraphQL by @bdmorgan in #17217
- Docs: Update changelogs for v.0.25.0 and v0.26.0-preview.0 releases. by @g-samroberts in #17215
- Migrate beforeTool and afterTool hooks to hookSystem by @ved015 in #17204
- fix(github): improve label-workstream-rollup efficiency and fix bugs by @bdmorgan in #17219
- feat(cli): improve skill enablement/disablement verbiage by @NTaylorMullen in #17192
- fix(admin): Ensure CLI commands run in non-interactive mode by @skeshive in #17218
- feat(core): support dynamic variable substitution in system prompt override by @NTaylorMullen in #17042
- fix(core,cli): enable recursive directory access for by @galz10 in #17094
- Docs: Marking for experimental features by @jkcinouye in #16760
- Support command/ctrl/alt backspace correctly by @scidomino in #17175
- feat(plan): add approval mode instructions to system prompt by @jerop in #17151
- feat(core): enable disableLLMCorrection by default by @SandyTao520 in #17223
- Remove unused slug from sidebar by @chrstnb in #17229
- drain stdin on exit by @scidomino in #17241
- refactor(cli): decouple UI from live tool execution via ToolActionsContext by @abhipatel12 in #17183
- fix(core): update token count and telemetry on /chat resume history load by @psinha40898 in #16279
- fix: /policy to display policies according to mode by @ishaanxgupta in #16772
- fix(core): simplify replace tool error message by @SandyTao520 in #17246
- feat(cli): consolidate shell inactivity and redirection monitoring by @NTaylorMullen in #17086
- fix(scheduler): prevent stale tool re-publication and fix stuck UI state by @abhipatel12 in #17227
- feat(config): default enableEventDrivenScheduler to true by @abhipatel12 in #17211
- feat(hooks): enable hooks system by default by @abhipatel12 in #17247
New Contributors
Full Changelog: v0.26.0-nightly.20260121.211d2c5fd...v0.27.0-nightly.20260122.61040d0eb
Release v0.26.0-preview.3
What's Changed
- fix(patch): cherry-pick addb57c to release/v0.26.0-preview.2-pr-17331 [CONFLICTS] by @gemini-cli-robot in #17345
Full Changelog: v0.26.0-preview.2...v0.26.0-preview.3
Release v0.26.0-preview.2
What's Changed
- fix(patch): cherry-pick 87a0db2 to release/v0.26.0-preview.1-pr-17308 [CONFLICTS] by @gemini-cli-robot in #17317
Full Changelog: v0.26.0-preview.1...v0.26.0-preview.2
Release v0.26.0-preview.1
What's Changed
- fix(patch): cherry-pick 61040d0 to release/v0.26.0-preview.0-pr-17247 to patch version v0.26.0-preview.0 and create version 0.26.0-preview.1 by @gemini-cli-robot in #17258
Full Changelog: v0.26.0-preview.0...v0.26.0-preview.1
Release v0.25.1
What's Changed
- fix(patch): cherry-pick 87a0db2 to release/v0.25.0-pr-17308 [CONFLICTS] by @gemini-cli-robot in #17316
Full Changelog: v0.25.0...v0.25.1
Release v0.26.0-preview.0
What's Changed
- fix: PDF token estimation (#16494) by @korade-krushna in #16527
- chore(release): bump version to 0.26.0-nightly.20260114.bb6c57414 by @gemini-cli-robot in #16604
- docs: clarify F12 to open debug console by @jackwotherspoon in #16570
- docs: Remove .md extension from internal links in architecture.md by @medic-code in #12899
- Add an experimental setting for extension config by @chrstnb in #16506
- feat: add Rewind Confirmation dialog and Rewind Viewer component by @Adib234 in #15717
- fix(a2a): Don't throw errors for GeminiEventType Retry and InvalidStream. by @ehedlund in #16541
- prefactor: add rootCommands as array so it can be used for policy parsing by @abhipatel12 in #16640
- remove unnecessary
\x7fkey bindings by @scidomino in #16646 - docs(skills): use body-file in pr-creator skill for better reliability by @abhipatel12 in #16642
- chore(automation): recursive labeling for workstream descendants by @bdmorgan in #16609
- feat: introduce 'skill-creator' built-in skill and CJS management tools by @NTaylorMullen in #16394
- chore(automation): remove automated PR size and complexity labeler by @bdmorgan in #16648
- refactor(skills): replace 'project' with 'workspace' scope by @NTaylorMullen in #16380
- Docs: Update release notes for 1/13/2026 by @jkcinouye in #16583
- Simplify paste handling by @scidomino in #16654
- chore(automation): improve scheduled issue triage discovery and throughput by @bdmorgan in #16652
- fix(acp): run exit cleanup when stdin closes by @codefromthecrypt in #14953
- feat(scheduler): add types needed for event driven scheduler by @abhipatel12 in #16641
- Remove unused rewind key binding by @scidomino in #16659
- Remove sequence binding by @scidomino in #16664
- feat(cli): undeprecate the --prompt flag by @alexaustin007 in #13981
- chore: update dependabot configuration by @cosmopax in #13507
- feat(config): add 'auto' alias for default model selection by @sehoon38 in #16661
- Enable & disable agents by @sehoon38 in #16225
- cleanup: Improve keybindings by @scidomino in #16672
- Add timeout for shell-utils to prevent hangs. by @jacob314 in #16667
- feat(plan): add experimental plan flag by @jerop in #16650
- feat(cli): add security consent prompts for skill installation by @NTaylorMullen in #16549
- fix: replace 3 consecutive periods with ellipsis character by @Vist233 in #16587
- chore(automation): ensure status/need-triage is applied and never cleared automatically by @bdmorgan in #16657
- fix: Handle colons in skill description frontmatter by @maru0804 in #16345
- refactor(core): harden skill frontmatter parsing by @NTaylorMullen in #16705
- feat(skills): add conflict detection and warnings for skill overrides by @NTaylorMullen in #16709
- feat(scheduler): add SchedulerStateManager for reactive tool state by @abhipatel12 in #16651
- chore(automation): enforce 'help wanted' label permissions and update guidelines by @bdmorgan in #16707
- fix(core): resolve circular dependency via tsconfig paths by @sehoon38 in #16730
- chore/release: bump version to 0.26.0-nightly.20260115.6cb3ae4e0 by @gemini-cli-robot in #16738
- fix(automation): correct status/need-issue label matching wildcard by @bdmorgan in #16727
- fix(automation): prevent label-enforcer loop by ignoring all bots by @bdmorgan in #16746
- Add links to supported locations and minor fixes by @g-samroberts in #16476
- feat(policy): add source tracking to policy rules by @allenhutchison in #16670
- feat(automation): enforce '🔒 maintainer only' and fix bot loop by @bdmorgan in #16751
- Make merged settings non-nullable and fix all lints related to that. by @jacob314 in #16647
- fix(core): prevent ModelInfo event emission on aborted signal by @sehoon38 in #16752
- Replace relative paths to fix website build by @chrstnb in #16755
- Restricting to localhost by @cocosheng-g in #16548
- fix(cli): add explicit dependency on color-convert by @sehoon38 in #16757
- fix(automation): robust label enforcement with permission checks by @bdmorgan in #16762
- fix(cli): prevent OOM crash by limiting file search traversal and adding timeout by @galz10 in #16696
- fix(cli): safely handle /dev/tty access on macOS by @korade-krushna in #16531
- docs: clarify workspace test execution in GEMINI.md by @mattKorwel in #16764
- Add support for running available commands prior to MCP servers loading by @Adib234 in #15596
- feat(plan): add experimental 'plan' approval mode by @jerop in #16753
- feat(scheduler): add functional awaitConfirmation utility by @abhipatel12 in #16721
- fix(infra): update maintainer rollup label to 'workstream-rollup' by @bdmorgan in #16809
- fix(infra): use GraphQL to detect direct parents in rollup workflow by @bdmorgan in #16811
- chore(workflows): rename label-workstream-rollup workflow by @bdmorgan in #16818
- skip simple-mcp-server.test.ts by @scidomino in #16842
- Steer outer agent to use expert subagents when present by @gundermanc in #16763
- Fix race condition by awaiting scheduleToolCalls by @chrstnb in #16759
- cleanup: Organize key bindings by @scidomino in #16798
- feat(core): Add
generalistagent. by @joshualitt in #16638 - perf(ui): optimize text buffer and highlighting for large inputs by @NTaylorMullen in #16782
- fix(core): fix PTY descriptor shell leak by @galz10 in #16773
- feat(plan): enforce strict read-only policy and halt execution on violation by @jerop in #16849
- remove need-triage label from bug_report template by @sehoon38 in #16864
- fix(core): truncate large telemetry log entries by @sehoon38 in #16769
- docs(extensions): add Agent Skills support and mark feature as experimental by @NTaylorMullen in #16859
- fix(core): surface warnings for invalid hook event names in configuration (#16788) by @sehoon38 in #16873
- feat(plan): remove
read_many_filesfrom approval mode policies by @jerop in #16876 - feat(admin): implement admin controls polling and restart prompt by @skeshive in #16627
- Remove LRUCache class migrating to mnemoist by @jacob314 in #16872
- feat(settings): rename negative settings to positive naming (disable* -> enable*) by @afarber in #14142
- refactor(cli): unify shell confirmation dialogs by @NTaylorMullen in #16828
- feat(agent): enable agent skills by default by @NTaylorMullen in #16736
- refactor(core): foundational truncation refactoring and token estimation optimization ...