Google's AI terminal tool for developers
January 7, 2026
## What's Changed * Code assist service metrics. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/15024 * chore/release: bump version to 0.21.0-nightly.20251216.bb0c0d8ee by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15121 * Docs by @Roaimkhan in https://github.com/google-gemini/gemini-cli/pull/15103 * Use official ACP SDK and support HTTP/SSE based MCP servers by @SteffenDE in https://github.com/google-gemini/gemini-cli/pull/13856 * Remove foreground for themes other than shades of purple and holiday. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14606 * chore: remove repo specific tips by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/15164 * chore: remove user query from footer in debug mode by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/15169 * Disallow unnecessary awaits. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/15172 * Add one to the padding in settings dialog to avoid flicker. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15173 * feat(core): introduce remote agent infrastructure and rename local executor by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/15110 * feat(cli): Add `/auth logout` command to clear credentials and auth state by @CN-Scars in https://github.com/google-gemini/gemini-cli/pull/13383 * (fix) Automated pr labeller by @DaanVersavel in https://github.com/google-gemini/gemini-cli/pull/14885 * feat: launch Gemini 3 Flash in Gemini CLI ⚡️⚡️⚡️ by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15196 * Refactor: Migrate console.error in ripGrep.ts to debugLogger by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/15201 * chore: update a2a-js to 0.3.7 by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/15197 * chore(core): remove redundant isModelAvailabilityServiceEnabled toggle and clean up dead code by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/15207 * feat(core): Late resolve `GenerateContentConfig`s and reduce mutation. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/14920 * Respect previewFeatures value from the remote flag if undefined by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/15214 * feat(ui): add Windows clipboard image support and Alt+V paste workaround by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15218 * chore(core): remove legacy fallback flags and migrate loop detection by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/15213 * fix(ui): Prevent eager slash command completion hiding sibling commands by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/15224 * Docs: Update Changelog for Dec 17, 2025 by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/15204 * Code Assist backend telemetry for user accept/reject of suggestions by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/15206 * fix(cli): correct initial history length handling for chat commands by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/15223 * chore/release: bump version to 0.21.0-nightly.20251218.739c02bd6 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15231 * Change detailed model stats to use a new shared Table class to resolve robustness issues. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15208 * feat: add agent toml parser by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15112 * Add core tool that adds all context from the core package. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15238 * (docs): Add reference section to hooks documentation by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15159 * feat(hooks): add support for friendly names and descriptions by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15174 * feat: Detect background color by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15132 * add 3.0 to allowed sensitive keywords by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15276 * feat: Pass additional environment variables to shell execution by @galz10 in https://github.com/google-gemini/gemini-cli/pull/15160 * Remove unused code by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15290 * Handle all 429 as retryableQuotaError by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/15288 * Remove unnecessary dependencies by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15291 * fix: prevent infinite loop in prompt completion on error by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14548 * fix(ui): show command suggestions even on perfect match and sort them by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/15287 * feat(hooks): reduce log verbosity and improve error reporting in UI by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15297 * feat: simplify tool confirmation labels for better UX by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/15296 * chore/release: bump version to 0.21.0-nightly.20251219.70696e364 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15301 * feat(core): Implement JIT context memory loading and UI sync by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/14469 * feat(ui): Put "Allow for all future sessions" behind a setting off by default. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15322 * fix(cli):change the placeholder of input during the shell mode by @JayadityaGit in https://github.com/google-gemini/gemini-cli/pull/15135 * Validate OAuth resource parameter matches MCP server URL by @galz10 in https://github.com/google-gemini/gemini-cli/pull/15289 * docs(cli): add System Prompt Override (GEMINI_SYSTEM_MD) by @ashmod in https://github.com/google-gemini/gemini-cli/pull/9515 * more robust command parsing logs by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15339 * Introspection agent demo by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15232 * fix(core): sanitize hook command expansion and prevent injection by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/15343 * fix(folder trust): add validation for trusted folder level by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/12215 * fix(cli): fix right border overflow in trust dialogs by @galz10 in https://github.com/google-gemini/gemini-cli/pull/15350 * fix(policy): fix bug where accepting-edits continued after it was turned off by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15351 * fix: prevent infinite relaunch loop when --resume fails (#14941) by @Ying-xi in https://github.com/google-gemini/gemini-cli/pull/14951 * chore/release: bump version to 0.21.0-nightly.20251220.41a1a3eed by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15352 * feat(telemetry): add clearcut logging for hooks by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15405 * fix(core): Add `.geminiignore` support to SearchText tool by @xyrolle in https://github.com/google-gemini/gemini-cli/pull/13763 * fix(patch): cherry-pick 0843d9a to release/v0.23.0-preview.0-pr-15443 to patch version v0.23.0-preview.0 and create version 0.23.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15445 * fix(patch): cherry-pick 9cdb267 to release/v0.23.0-preview.1-pr-15494 to patch version v0.23.0-preview.1 and create version 0.23.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15592 * fix(patch): cherry-pick 37be162 to release/v0.23.0-preview.2-pr-15601 to patch version v0.23.0-preview.2 and create version 0.23.0-preview.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15603 * fix(patch): cherry-pick 07e597d to release/v0.23.0-preview.3-pr-15684 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15734 * fix(patch): cherry-pick c31f053 to release/v0.23.0-preview.4-pr-16004 to patch version v0.23.0-preview.4 and create version 0.23.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/16027 * fix(patch): cherry-pick 788bb04 to release/v0.23.0-preview.5-pr-15817 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/16038 ## New Contributors * @Roaimkhan made their first contribution in https://github.com/google-gemini/gemini-cli/pull/15103 * @SteffenDE made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13856 * @CN-Scars made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13383 * @Ying-xi made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14951 * @xyrolle made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13763 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.22.5...v0.23.0
Features
December 30, 2025
## What's Changed * fix(patch): cherry-pick 07e597d to release/v0.22.4-pr-15684 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15733 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.22.4...v0.22.5
Features
December 27, 2025
## What's Changed * fix(patch): cherry-pick 37be162 to release/v0.22.3-pr-15601 to patch version v0.22.3 and create version 0.22.4 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15602 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.22.3...v0.22.4
Features
December 26, 2025
## What's Changed * fix(patch): cherry-pick 9cdb267 to release/v0.22.2-pr-15494 to patch version v0.22.2 and create version 0.22.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15591 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.22.2...v0.22.3
Features
December 22, 2025
## What's Changed * feat(ide): fallback to GEMINI_CLI_IDE_AUTH_TOKEN env var by @skeshive in https://github.com/google-gemini/gemini-cli/pull/14843 * feat: display quota stats for unused models in /stats by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/14764 * feat: ensure codebase investigator uses preview model when main agent does by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/14412 * chore: add closing reason to stale bug workflow by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14861 * Send the model and CLI version with the user agent by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/14865 * refactor(sessions): move session summary generation to startup by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14691 * Limit search depth in path corrector by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14869 * Fix: Correct typo in code comment by @kuishou68 in https://github.com/google-gemini/gemini-cli/pull/14671 * feat(core): Plumbing for late resolution of model configs. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/14597 * feat: attempt more error parsing by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/14899 * Add missing await. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/14910 * feat(core): Add support for transcript_path in hooks for git-ai/Gemini extension by @svarlamov in https://github.com/google-gemini/gemini-cli/pull/14663 * refactor: implement DelegateToAgentTool with discriminated union by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/14769 * feat: reset availabilityService on /auth by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/14911 * chore/release: bump version to 0.21.0-nightly.20251211.8c83e1ea9 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14924 * Fix: Correctly detect MCP tool errors by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/14937 * increase labeler timeout by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14922 * tool(cli): tweak the frontend tool to be aware of more core files from the cli by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14962 * feat(cli): polish cached token stats and simplify stats display when quota is present. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14961 * feat(settings-validation): add validation for settings schema by @lifefloating in https://github.com/google-gemini/gemini-cli/pull/12929 * fix(ide): Update IDE extension to write auth token in env var by @skeshive in https://github.com/google-gemini/gemini-cli/pull/14999 * Revert "chore(deps): bump express from 5.1.0 to 5.2.0" by @skeshive in https://github.com/google-gemini/gemini-cli/pull/14998 * feat(a2a): Introduce /init command for a2a server by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/13419 * feat: support multi-file drag and drop of images by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14832 * fix(policy): allow codebase_investigator by default in read-only policy by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15000 * refactor(ide ext): Update port file name + switch to 1-based index for characters + remove truncation text by @skeshive in https://github.com/google-gemini/gemini-cli/pull/10501 * fix(vscode-ide-companion): correct license generation for workspace dependencies by @skeshive in https://github.com/google-gemini/gemini-cli/pull/15004 * fix: temp fix for subagent invocation until subagent delegation is merged to stable by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/15007 * test: update ide detection tests to make them more robust when run in an ide by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/15008 * Remove flex from stats display. See snapshots for diffs. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14983 * Add license field into package.json by @jb-perez in https://github.com/google-gemini/gemini-cli/pull/14473 * feat: Persistent "Always Allow" policies with granular shell & MCP support by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/14737 * chore/release: bump version to 0.21.0-nightly.20251212.54de67536 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14969 * fix(core): commandPrefix word boundary and compound command safety by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/15006 * chore(docs): add 'Maintainers only' label info to CONTRIBUTING.md by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14914 * Refresh hooks when refreshing extensions. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14918 * Add clarity to error messages by @gsehgal in https://github.com/google-gemini/gemini-cli/pull/14879 * chore : remove a redundant tip by @JayadityaGit in https://github.com/google-gemini/gemini-cli/pull/14947 * chore/release: bump version to 0.21.0-nightly.20251213.977248e09 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15029 * Disallow redundant typecasts. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/15030 * fix(auth): prioritize GEMINI_API_KEY env var and skip unnecessary key… by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14745 * fix: use zod for safety check result validation by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/15026 * update(telemetry): add hashed_extension_name to field to extension events by @kiranani in https://github.com/google-gemini/gemini-cli/pull/15025 * fix: similar to policy-engine, throw error in case of requiring tool execution confirmation for non-interactive mode by @MayV in https://github.com/google-gemini/gemini-cli/pull/14702 * Clean up processes in integration tests by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15102 * docs: update policy engine getting started and defaults by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/15105 * Fix tool output fragmentation by encapsulating content in functionResponse by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/13082 * Simplify method signature. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/15114 * Show raw input token counts in json output. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15021 * fix: Mark A2A requests as interactive by @MayV in https://github.com/google-gemini/gemini-cli/pull/15108 * use previewFeatures to determine which pro model to use for A2A by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/15131 * refactor(cli): fix settings merging so that settings using the new json format take priority over ones using the old format by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/15116 * fix(patch): cherry-pick a6d1245 to release/v0.22.0-preview.1-pr-15214 to patch version v0.22.0-preview.1 and create version 0.22.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15226 * fix(patch): cherry-pick 9e6914d to release/v0.22.0-preview.2-pr-15288 to patch version v0.22.0-preview.2 and create version 0.22.0-preview.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15294 ## New Contributors * @kuishou68 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14671 * @svarlamov made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14663 * @jb-perez made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14473 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.21.3...v0.22.0
Features
December 19, 2025
## What's Changed * fix(patch): cherry-pick 9e6914d to release/v0.21.2-pr-15288 to patch version v0.21.2 and create version 0.21.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15295 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.21.2...v0.21.3
Features
December 18, 2025
## What's Changed * fix(patch): cherry-pick a6d1245 to release/v0.21.1-pr-15214 to patch version v0.21.1 and create version 0.21.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15227 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.21.1...v0.21.2
Features
December 16, 2025
## What's Changed * refactor(stdio): always patch stdout and use createWorkingStdio for clean output by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/14159 * chore(release): bump version to 0.21.0-nightly.20251202.2d935b379 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14409 * implement fuzzy search inside settings by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/13864 * feat: enable message bus integration by default by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/14329 * docs: Recommend using --debug intead of --verbose for CLI debugging by @bbiggs in https://github.com/google-gemini/gemini-cli/pull/14334 * feat: consolidate remote MCP servers to use `url` in config by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/13762 * Restrict integration tests tools by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14403 * track github repository names in telemetry events by @IamRiddhi in https://github.com/google-gemini/gemini-cli/pull/13670 * Allow telemetry exporters to GCP to utilize user's login credentials, if requested by @mboshernitsan in https://github.com/google-gemini/gemini-cli/pull/13778 * refactor(editor): use const assertion for editor types with single source of truth by @amsminn in https://github.com/google-gemini/gemini-cli/pull/8604 * fix(security): Fix npm audit vulnerabilities in glob and body-parser by @afarber in https://github.com/google-gemini/gemini-cli/pull/14090 * Add new enterprise instructions by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/8641 * feat(hooks): Hook Session Lifecycle & Compression Integration by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/14151 * Avoid triggering refreshStatic unless there really is a banner to display. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14328 * feat(hooks): Hooks Commands Panel, Enable/Disable, and Migrate by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/14225 * fix: Bundle default policies for npx distribution by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/14457 * feat(hooks): Hook System Documentation by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/14307 * Fix tests by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14458 * feat: add scheduled workflow to close stale issues by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14404 * feat: Support Extension Hooks with Security Warning by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/14460 * feat: Add enableAgents experimental flag by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/14371 * docs: fix typo 'socus' to 'focus' in todos.md by @Viktor286 in https://github.com/google-gemini/gemini-cli/pull/14374 * Markdown export: move the emoji to the end of the line by @mhansen in https://github.com/google-gemini/gemini-cli/pull/12278 * fix(acp): prevent unnecessary credential cache clearing on re-authent… by @h-michael in https://github.com/google-gemini/gemini-cli/pull/9410 * fix(cli): Fix word navigation for CJK characters by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/14475 * Remove example extension by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/14376 * Add commands for listing and updating per-extension settings by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/12664 * chore(tests): remove obsolete test for hierarchical memory by @pareshjoshij in https://github.com/google-gemini/gemini-cli/pull/13122 * feat(cli): support /copy in remote sessions using OSC52 by @ismellpillows in https://github.com/google-gemini/gemini-cli/pull/13471 * Update setting search UX by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/14451 * Fix(cli): Improve Homebrew update instruction to specify gemini-cli by @DaanVersavel in https://github.com/google-gemini/gemini-cli/pull/14502 * do not toggle the setting item when entering space by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/14489 * fix: improve retry logic for fetch errors and network codes by @megha1188 in https://github.com/google-gemini/gemini-cli/pull/14439 * remove unused isSearching field by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/14509 * feat(mcp): add `--type` alias for `--transport` flag in gemini mcp add by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14503 * feat(cli): Move key restore logic to core by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/13013 * feat: add auto-execute on Enter behavior to argumentless MCP prompts by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14510 * fix(shell): cursor visibility when using interactive mode by @aswinashok44 in https://github.com/google-gemini/gemini-cli/pull/14095 * Adding session id as part of json o/p by @MJjainam in https://github.com/google-gemini/gemini-cli/pull/14504 * fix(extensions): resolve GitHub API 415 error for source tarballs by @jpoehnelt in https://github.com/google-gemini/gemini-cli/pull/13319 * fix(client): Correctly latch hasFailedCompressionAttempt flag by @pareshjoshij in https://github.com/google-gemini/gemini-cli/pull/13002 * Disable flaky extension reloading test on linux by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/14528 * Add support for MCP dynamic tool update by `notifications/tools/list_changed` by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/14375 * Fix privacy screen for legacy tier users by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14522 * feat: Exclude maintainer labeled issues from stale issue closer by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14532 * Grant chained workflows proper permission. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14534 * Make trigger_e2e manually fireable. by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14547 * Write e2e status to local repo not forked repo by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14549 * Fixes [API Error: Cannot read properties of undefined (reading 'error')] by @silviojr in https://github.com/google-gemini/gemini-cli/pull/14553 * Trigger chained e2e tests on all pull requests by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14551 * Fix bug in the shellExecutionService resulting in both truncation and 3X bloat by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14545 * Fix issue where we were passing the model content reflecting terminal line wrapping. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14566 * chore/release: bump version to 0.21.0-nightly.20251204.3da4fd5f7 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14476 * feat(sessions): use 1-line generated session summary to describe sessions by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14467 * Use Robot PAT for chained e2e merge queue skipper by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14585 * fix(core): improve API response error handling and retry logic by @mattKorwel in https://github.com/google-gemini/gemini-cli/pull/14563 * Docs: Model routing clarification by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/14373 * expose previewFeatures flag in a2a by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/14550 * Fix emoji width in debug console. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14593 * Fully detach autoupgrade process by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14595 * Docs: Update Gemini 3 on Gemini CLI documentation by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/14601 * Disallow floating promises. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/14605 * chore/release: bump version to 0.21.0-nightly.20251207.025e450ac by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14662 * feat(modelAvailabilityService): integrate model availability service into backend logic by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/14470 * Add prompt_id propagation in a2a-server task by @koxkox111 in https://github.com/google-gemini/gemini-cli/pull/14581 * Fix: Prevent freezing in non-interactive Gemini CLI when debug mode is enabled by @parthasaradhie in https://github.com/google-gemini/gemini-cli/pull/14580 * fix(audio): improve reading of audio files by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14658 * Update automated triage workflow to stop assigning priority labels by @skeshive in https://github.com/google-gemini/gemini-cli/pull/14717 * set failed status when chained e2e fails by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14725 * feat(github action) Triage and Label Pull Requests by Size and Comple… by @DaanVersavel in https://github.com/google-gemini/gemini-cli/pull/5571 * refactor(telemetry): Improve previous PR that allows telemetry to use the CLI auth and add testing by @mboshernitsan in https://github.com/google-gemini/gemini-cli/pull/14589 * Always set status in chained_e2e workflow by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14730 * feat: Add OTEL log event `gemini_cli.startup_stats` for startup stats. by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/14734 * feat: auto-execute on slash command completion functions by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14584 * Docs: Proper release notes by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/14405 * Add support for user-scoped extension settings by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/13748 * refactor(core): Improve environment variable handling in shell execution by @galz10 in https://github.com/google-gemini/gemini-cli/pull/14742 * Remove old E2E Workflows by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14749 * fix: handle missing local extension config and skip hooks when disabled by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/14744 * chore/release: bump version to 0.21.0-nightly.20251209.ec9a8c7a7 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14751 * feat: Add support for MCP Resources by @MrLesk in https://github.com/google-gemini/gemini-cli/pull/13178 * Always set pending status in E2E tests by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14756 * fix(lint): upgrade pip and use public pypi for yamllint by @allenhutchison in https://github.com/google-gemini/gemini-cli/pull/14746 * fix: use Gemini API supported image formats for clipboard by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14762 * feat(a2a): Introduce restore command for a2a server by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/13015 * allow final:true to be returned on a2a server edit calls. by @DavidAPierce in https://github.com/google-gemini/gemini-cli/pull/14747 * (fix) Automated pr labeller by @DaanVersavel in https://github.com/google-gemini/gemini-cli/pull/14788 * Update CODEOWNERS by @kklashtorny1 in https://github.com/google-gemini/gemini-cli/pull/14830 * Docs: Fix errors preventing site rebuild. by @jkcinouye in https://github.com/google-gemini/gemini-cli/pull/14842 * chore(deps): bump express from 5.1.0 to 5.2.0 by @dependabot[bot] in https://github.com/google-gemini/gemini-cli/pull/14325 * fix(patch): cherry-pick 3f5f030 to release/v0.21.0-preview.0-pr-14843 to patch version v0.21.0-preview.0 and create version 0.21.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14851 * fix(patch): cherry-pick ee6556c to release/v0.21.0-preview.1-pr-14691 to patch version v0.21.0-preview.1 and create version 0.21.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14908 * fix(patch): cherry-pick 54de675 to release/v0.21.0-preview.2-pr-14961 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14968 * fix(patch): cherry-pick 12cbe32 to release/v0.21.0-preview.3-pr-15000 to patch version v0.21.0-preview.3 and create version 0.21.0-preview.4 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15003 * fix(patch): cherry-pick edbe548 to release/v0.21.0-preview.4-pr-15007 to patch version v0.21.0-preview.4 and create version 0.21.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15015 * fix(patch): cherry-pick 2995af6 to release/v0.21.0-preview.5-pr-15131 to patch version v0.21.0-preview.5 and create version 0.21.0-preview.6 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15153 ## New Contributors * @afarber made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14090 * @Viktor286 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14374 * @mhansen made their first contribution in https://github.com/google-gemini/gemini-cli/pull/12278 * @h-michael made their first contribution in https://github.com/google-gemini/gemini-cli/pull/9410 * @pareshjoshij made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13122 * @ismellpillows made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13471 * @DaanVersavel made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14502 * @jpoehnelt made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13319 * @parthasaradhie made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14580 * @MrLesk made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13178 * @DavidAPierce made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14747 * @kklashtorny1 made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14830 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.20.2...v0.21.0
Features
December 12, 2025
## What's Changed * fix(patch): cherry-pick edbe548 to release/v0.20.1-pr-15007 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15016 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.20.1...v0.20.2
Features
December 12, 2025
## What's Changed * fix(patch): cherry-pick 3f5f030 to release/v0.20.0-pr-14843 to patch version v0.20.0 and create version 0.20.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/15002 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.20.0...v0.20.1
Features
December 9, 2025
## What's Changed * Update error codes when process exiting the gemini cli by @megha1188 in https://github.com/google-gemini/gemini-cli/pull/13728 * chore(release): bump version to 0.20.0-nightly.20251126.d2a6cff4d by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/13835 * feat(core): Improve request token calculation accuracy by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/13824 * Changes in system instruction to adapt to gemini 3.0 to ensure that the CLI explains its actions before calling tools by @silviojr in https://github.com/google-gemini/gemini-cli/pull/13810 * feat(hooks): Hook Tool Execution Integration by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/9108 * Add support for MCP server instructions behind config option by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/13432 * Update System Instructions for interactive vs non-interactive mode. by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/12315 * Add consent flag to Link command by @kevinjwang1 in https://github.com/google-gemini/gemini-cli/pull/13832 * feat(mcp): Inject GoogleCredentialProvider headers in McpClient by @sai-sunder-s in https://github.com/google-gemini/gemini-cli/pull/13783 * feat(core): implement towards policy-driven model fallback mechanism by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/13781 * feat(core): Add configurable inactivity timeout for shell commands by @galz10 in https://github.com/google-gemini/gemini-cli/pull/13531 * fix(auth): improve API key authentication flow by @galz10 in https://github.com/google-gemini/gemini-cli/pull/13829 * feat(hooks): Hook LLM Request/Response Integration by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/9110 * feat(ui): Show waiting MCP servers in ConfigInitDisplay by @werdnum in https://github.com/google-gemini/gemini-cli/pull/13721 * Add usage limit remaining in /stats by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/13843 * feat(shell): Standardize pager to 'cat' for shell execution by model by @galz10 in https://github.com/google-gemini/gemini-cli/pull/13878 * chore/release: bump version to 0.20.0-nightly.20251127.5bed97064 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/13877 * Revert to default LICENSE (Revert #13449) by @scidomino in https://github.com/google-gemini/gemini-cli/pull/13876 * update(telemetry): OTel API response event with finish reasons by @kiranani in https://github.com/google-gemini/gemini-cli/pull/13849 * feat(hooks): Hooks Comprehensive Integration Testing by @Edilmo in https://github.com/google-gemini/gemini-cli/pull/9112 * chore: fix session browser test and skip hook system tests by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14099 * feat(telemetry): Add Semantic logging for to ApiRequestEvents by @kiranani in https://github.com/google-gemini/gemini-cli/pull/13912 * test: Add verification for $schema property in settings schema by @maryamariyan in https://github.com/google-gemini/gemini-cli/pull/13497 * Fixes `/clear` command to preserve input history for up-arrow navigation while still clearing the context window and screen by @korade-krushna in https://github.com/google-gemini/gemini-cli/pull/14182 * fix(core): handle EPIPE error in hook runner when writing to stdin by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/14231 * fix: Exclude web-fetch tool from executing in default non-interactive mode to avoid CLI hang. by @MayV in https://github.com/google-gemini/gemini-cli/pull/14244 * Always use MCP server instructions by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/14297 * feat: auto-execute simple slash commands on Enter by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/13985 * chore/release: bump version to 0.20.0-nightly.20251201.2fe609cb6 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14304 * feat: Add startup profiler to measure and record application initialization phases. by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/13638 * bug(core): Avoid stateful tool use in `executor`. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/14305 * feat(themes): add built-in holiday theme 🎁 by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/14301 * Updated ToC on docs intro; updated title casing to match Google style by @pcoet in https://github.com/google-gemini/gemini-cli/pull/13717 * feat(a2a): Urgent fix - Process modelInfo agent message by @cocosheng-g in https://github.com/google-gemini/gemini-cli/pull/14315 * feat(core): enhance availability routing with wrapped fallback and single-model policies by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/13874 * chore(logging): log the problematic event for #12122 by @briandealwis in https://github.com/google-gemini/gemini-cli/pull/14092 * fix: remove invalid type key in bug_report.yml by @fancive in https://github.com/google-gemini/gemini-cli/pull/13576 * update screenshot by @Transient-Onlooker in https://github.com/google-gemini/gemini-cli/pull/13976 * docs: Fix grammar error in Release Cadence (Nightly section) by @JuanCS-Dev in https://github.com/google-gemini/gemini-cli/pull/13866 * fix(async): prevent missed async errors from bypassing catch handlers by @amsminn in https://github.com/google-gemini/gemini-cli/pull/13714 * fix(zed-integration): remove extra field from acp auth request by @marcocondrache in https://github.com/google-gemini/gemini-cli/pull/13646 * feat(cli): Documentation for model configs. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/12967 * fix(ui): misaligned markdown table rendering by @dumbbellcode in https://github.com/google-gemini/gemini-cli/pull/8336 * docs: Update 4 files by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/13628 * fix: Conditionally add set -eEuo pipefail in setup-github command by @Smetalo in https://github.com/google-gemini/gemini-cli/pull/8550 * fix(cli): fix issue updating a component while rendering a different component by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/14319 * Increase flakey test timeout by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/14377 * Remove references to deleted kind/bug label by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14383 * Don't fail test if we can't cleanup by @scidomino in https://github.com/google-gemini/gemini-cli/pull/14389 * feat(core): Implement JIT context manager and setting by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/14324 * Use polling for extensions-reload integration test by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/14391 * Add docs directive to GEMINI.md by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/14327 * Hide sessions that don't have user messages by @bl-ue in https://github.com/google-gemini/gemini-cli/pull/13994 * chore(ci): mark GitHub release as pre-release if not on "latest" npm channel by @ljxfstorm in https://github.com/google-gemini/gemini-cli/pull/7386 * fix(patch): cherry-pick d284fa6 to release/v0.20.0-preview.0-pr-14545 [CONFLICTS] by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14559 * fix(patch): cherry-pick 828afe1 to release/v0.20.0-preview.1-pr-14159 to patch version v0.20.0-preview.1 and create version 0.20.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14733 * fix(patch): cherry-pick 171103a to release/v0.20.0-preview.2-pr-14742 to patch version v0.20.0-preview.2 and create version 0.20.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/14752 ## New Contributors * @aishaneeshah made their first contribution in https://github.com/google-gemini/gemini-cli/pull/12315 * @sai-sunder-s made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13783 * @maryamariyan made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13497 * @korade-krushna made their first contribution in https://github.com/google-gemini/gemini-cli/pull/14182 * @pcoet made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13717 * @Transient-Onlooker made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13976 * @JuanCS-Dev made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13866 * @marcocondrache made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13646 * @g-samroberts made their first contribution in https://github.com/google-gemini/gemini-cli/pull/13628 **Full Changelog**: https://github.com/google-gemini/gemini-cli/compare/v0.19.4...v0.20.0
Features