Gemini CLI v0.29.0

What's Changed fix: remove askuser tool from non-interactive modes by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18154 fix(cli): allow restricted .env loading in untrusted...

What's Changed fix: remove askuser tool from non-interactive modes by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18154 fix(cli): allow restricted .env loading in untrusted sandboxed folders by @galz10 in https://github.com/google-gemini/gemini-cli/pull/17806 Encourage agent to utilize ecosystem tools to perform work by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/17881 feat(plan): unify workflow location in system prompt to optimize caching by @jerop in https://github.com/google-gemini/gemini-cli/pull/18258 feat(core): enable getUserTierName in config by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18265 feat(core): add default execution limits for subagents by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18274 Fix issue where agent gets stuck at interactive commands. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18272 chore(release): bump version to 0.29.0-nightly.20260203.71f46f116 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18243 feat(core): remove hardcoded policy bypass for local subagents by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18153 feat(plan): implement plan slash command by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/17698 feat: increase askuser label limit to 16 characters by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18320 Add information about the agent skills lifecycle and clarify docs-writer skill metadata. by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18234 feat(core): add enterplanmode tool by @jerop in https://github.com/google-gemini/gemini-cli/pull/18324 Stop showing an error message in /plan by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18333 fix(hooks): remove unnecessary logging for hook registration by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18332 fix(mcp): ensure MCP transport is closed to prevent memory leaks by @cbcoutinho in https://github.com/google-gemini/gemini-cli/pull/18054 feat(skills): implement linking for agent skills by @MushuEE in https://github.com/google-gemini/gemini-cli/pull/18295 Changelogs for 0.27.0 and 0.28.0-preview0 by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18336 chore: correct docs as skills and hooks are stable by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18358 feat(admin): Implement admin allowlist for MCP server configurations by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18311 fix(core): add retry logic for transient SSL/TLS errors (17318) by @ppgranger in https://github.com/google-gemini/gemini-cli/pull/18310 Add support for /extensions config command by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/17895 fix(core): handle non-compliant mcpbridge responses from Xcode 26.3 by @peterfriese in https://github.com/google-gemini/gemini-cli/pull/18376 feat(cli): Add W, B, E Vim motions and operator support by @ademuri in https://github.com/google-gemini/gemini-cli/pull/16209 fix: Windows Specific Agent Quality & System Prompt by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18351 feat(plan): support replace tool in plan mode to edit plans by @jerop in https://github.com/google-gemini/gemini-cli/pull/18379 Improving memory tool instructions and eval testing by @alisa-alisa in https://github.com/google-gemini/gemini-cli/pull/18091 fix(cli): color extension link success message green by @MushuEE in https://github.com/google-gemini/gemini-cli/pull/18386 undo by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18147 feat(plan): add guidance on iterating on approved plans vs creating new plans by @jerop in https://github.com/google-gemini/gemini-cli/pull/18346 feat(plan): fix invalid tool calls in plan mode by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18352 feat(plan): integrate planning artifacts and tools into primary workflows by @jerop in https://github.com/google-gemini/gemini-cli/pull/18375 Fix permission check by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18395 ux(polish) autocomplete in the input prompt by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18181 fix: resolve infinite loop when using 'Modify with external editor' by @ppgranger in https://github.com/google-gemini/gemini-cli/pull/17453 feat: expand verify-release to macOS and Windows by @yunaseoul in https://github.com/google-gemini/gemini-cli/pull/18145 feat(plan): implement support for MCP servers in Plan mode by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18229 chore: update folder trust error messaging by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18402 feat(plan): create a metric for execution of plans generated in plan mode by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18236 perf(ui): optimize stripUnsafeCharacters with regex by @gsquared94 in https://github.com/google-gemini/gemini-cli/pull/18413 feat(context): implement observation masking for tool outputs by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18389 feat(core,cli): implement session-linked tool output storage and cleanup by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18416 Shorten temp directory by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/17901 feat(plan): add behavioral evals for plan mode by @jerop in https://github.com/google-gemini/gemini-cli/pull/18437 Add extension registry client by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18396 Enable extension config by default by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18447 Automatically generate change logs on release by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18401 Remove previewFeatures and default to Gemini 3 by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18414 feat(admin): apply MCP allowlist to extensions & gemini mcp list command by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18442 fix(cli): improve focus navigation for interactive and background shells by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18343 Add shortcuts hint and panel for discoverability by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18035 fix(config): treat system settings as read-only during migration and warn user by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/18277 feat(plan): add positive test case and update eval stability policy by @jerop in https://github.com/google-gemini/gemini-cli/pull/18457 fix- windows: add shell: true for spawnSync to fix EINVAL with .cmd editors by @zackoch in https://github.com/google-gemini/gemini-cli/pull/18408 bug(core): Fix bug when saving plans. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/18465 Refactor atCommandProcessor by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18461 feat(core): implement persistence and resumption for masked tool outputs by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18451 refactor: simplify tool output truncation to single config by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18446 bug(core): Ensure storage is initialized early, even if config is not. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/18471 chore: Update build-and-start script to support argument forwarding by @Abhijit-2592 in https://github.com/google-gemini/gemini-cli/pull/18241 fix(core): prevent subagent bypass in plan mode by @jerop in https://github.com/google-gemini/gemini-cli/pull/18484 feat(cli): add WebSocket-based network logging and streaming chunk support by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18383 feat(cli): update approval modes UI by @jerop in https://github.com/google-gemini/gemini-cli/pull/18476 fix(cli): reload skills and agents on extension restart by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18411 fix(core): expand excludeTools with legacy aliases for renamed tools by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18498 feat(core): overhaul system prompt for rigor, integrity, and intent alignment by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/17263 Patch for generate changelog docs yaml file by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18496 Code review fixes for show question mark pr. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18480 fix(cli): add SS3 Shift+Tab support for Windows terminals by @ThanhNguyxn in https://github.com/google-gemini/gemini-cli/pull/18187 chore: remove redundant planning prompt from final shell by @jerop in https://github.com/google-gemini/gemini-cli/pull/18528 docs: require pr-creator skill for PR generation by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18536 chore: update colors for askuser dialog by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18543 feat(core): exempt high-signal tools from output masking by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18545 refactor(core): remove memory tool instructions from Gemini 3 prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18559 chore: remove feedback instruction from system prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18560 feat(context): add remote configuration for tool output masking thresholds by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18553 feat(core): pause agent timeout budget while waiting for tool confirmation by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18415 refactor(config): remove experimental.enableEventDrivenScheduler setting by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/17924 feat(cli): truncate shell output in UI history and improve active shell display by @jwhelangoog in https://github.com/google-gemini/gemini-cli/pull/17438 refactor(cli): switch useToolScheduler to event-driven engine by @abhipatel12 in https://github.com/google-gemini/gemini-cli/pull/18565 fix(core): correct escaped interpolation in system prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18557 propagate abortSignal by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18477 feat(core): conditionally include ctrl+f prompt based on interactive shell setting by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18561 fix(core): ensure enterplanmode tool registration respects experimental.plan by @jerop in https://github.com/google-gemini/gemini-cli/pull/18587 feat(core): transition sub-agents to XML format and improve definitions by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18555 docs: Add Plan Mode documentation by @jerop in https://github.com/google-gemini/gemini-cli/pull/18582 chore: strengthen validation guidance in system prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18544 Fix newline insertion bug in replace tool by @werdnum in https://github.com/google-gemini/gemini-cli/pull/18595 fix(evals): update savememory evals and simplify tool description by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18610 chore(evals): update validationfidelitypreexistingerrors to USUALLYPASSES by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18617 fix: shorten tool call IDs and fix duplicate tool name in truncated output filenames by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18600 feat(cli): implement atomic writes and safety checks for trusted folders by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18406 Remove relative docs links by @chrstnb in https://github.com/google-gemini/gemini-cli/pull/18650 docs: add legacy snippets convention to GEMINI.md by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18597 fix(chore): Support linting for cjs by @aswinashok44 in https://github.com/google-gemini/gemini-cli/pull/18639 feat: move shell efficiency guidelines to tool description by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18614 Added "" as default value, since getText() used to expect a string only and thus crashed when undefined... Fixes 18076 by @019-Abhi in https://github.com/google-gemini/gemini-cli/pull/18099 Allow @-includes outside of workspaces (with permission) by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18470 chore: make askuser header description more clear by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18657 refactor(core): model-dependent tool definitions by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/18563 Harded code assist converter. by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18656 bug(core): Fix minor bug in migration logic. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/18661 feat: enable plan mode experiment in settings by @jerop in https://github.com/google-gemini/gemini-cli/pull/18636 refactor: push isValidPath() into parsePastedPaths() by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18664 fix(cli): correct 'esc to cancel' position and restore duration display by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18534 feat(cli): add DevTools integration with gemini-cli-devtools by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18648 chore: remove unused exports and redundant hook files by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18681 Fix number of lines being reported in rewind confirmation dialog by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18675 feat(cli): disable folder trust in headless mode by @galz10 in https://github.com/google-gemini/gemini-cli/pull/18407 Disallow unsafe type assertions by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18688 Change event type for release by @g-samroberts in https://github.com/google-gemini/gemini-cli/pull/18693 feat: handle multiple dynamic context filenames in system prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18598 Properly parse at-commands with narrow non-breaking spaces by @scidomino in https://github.com/google-gemini/gemini-cli/pull/18677 refactor(core): centralize core tool definitions and support model-specific schemas by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/18662 feat(core): Render memory hierarchically in context. by @joshualitt in https://github.com/google-gemini/gemini-cli/pull/18350 feat: Ctrl+O to expand paste placeholder by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18103 fix(cli): Improve header spacing by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18531 Feature/quota visibility 16795 by @spencer426 in https://github.com/google-gemini/gemini-cli/pull/18203 Inline thinking bubbles with summary/full modes by @LyalinDotCom in https://github.com/google-gemini/gemini-cli/pull/18033 docs: remove TOC marker from Plan Mode header by @jerop in https://github.com/google-gemini/gemini-cli/pull/18678 fix(ui): remove redundant newlines in Gemini messages by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18538 test(cli): fix AppContainer act() warnings and improve waitFor resilience by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18676 refactor(core): refine Security & System Integrity section in system prompt by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18601 Fix layout rounding. by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18667 docs(skills): enhance pr-creator safety and interactivity by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18616 test(core): remove hardcoded model from TestRig by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18710 feat(core): optimize sub-agents system prompt intro by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18608 feat(cli): update approval mode labels and shortcuts per latest UX spec by @jerop in https://github.com/google-gemini/gemini-cli/pull/18698 fix(plan): update persistent approval mode setting by @Adib234 in https://github.com/google-gemini/gemini-cli/pull/18638 fix: move toasts location to left side by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18705 feat(routing): restrict numerical routing to Gemini 3 family by @mattKorwel in https://github.com/google-gemini/gemini-cli/pull/18478 fix(ide): fix ide nudge setting by @skeshive in https://github.com/google-gemini/gemini-cli/pull/18733 fix(core): standardize tool formatting in system prompts by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18615 chore: consolidate to green in ask user dialog by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18734 feat: add extensionsExplore setting to enable extensions explore UI. by @sripasg in https://github.com/google-gemini/gemini-cli/pull/18686 feat(cli): defer devtools startup and integrate with F12 by @SandyTao520 in https://github.com/google-gemini/gemini-cli/pull/18695 ui: update & subdue footer colors and animate progress indicator by @keithguerin in https://github.com/google-gemini/gemini-cli/pull/18570 test: add model-specific snapshots for coreTools by @aishaneeshah in https://github.com/google-gemini/gemini-cli/pull/18707 ci: shard windows tests and fix event listener leaks by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18670 fix: allow askuser tool in yolo mode by @jackwotherspoon in https://github.com/google-gemini/gemini-cli/pull/18541 feat: redact disabled tools from system prompt (13597) by @NTaylorMullen in https://github.com/google-gemini/gemini-cli/pull/18613 Update Gemini.md to use the curent year on creating new files by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18460 Code review cleanup for thinking display by @jacob314 in https://github.com/google-gemini/gemini-cli/pull/18720 fix(cli): hide scrollbars when in alternate buffer copy mode by @werdnum in https://github.com/google-gemini/gemini-cli/pull/18354 Fix issues with rip grep by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18756 fix(cli): fix history navigation regression after prompt autocomplete by @sehoon38 in https://github.com/google-gemini/gemini-cli/pull/18752 chore: cleanup unused and add unlisted dependencies in packages/cli by @adamfweidman in https://github.com/google-gemini/gemini-cli/pull/18749 Fix issue where Gemini CLI creates tests in a new file by @gundermanc in https://github.com/google-gemini/gemini-cli/pull/18409 feat(telemetry): Ensure experiment IDs are included in OpenTelemetry logs by @kevin-ramdass in https://github.com/google-gemini/gemini-cli/pull/18747 fix(patch): cherry-pick e9a9474 to release/v0.29.0-preview.0-pr-18840 to patch version v0.29.0-preview.0 and create version 0.29.0-preview.1 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18841 fix(patch): cherry-pick 08e8eea to release/v0.29.0-preview.1-pr-18855 to patch version v0.29.0-preview.1 and create version 0.29.0-preview.2 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/18905 fix(patch): cherry-pick d0c6a56 to release/v0.29.0-preview.2-pr-18976 to patch version v0.29.0-preview.2 and create version 0.29.0-preview.3 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/19023 fix(patch): cherry-pick e5ff202 to release/v0.29.0-preview.3-pr-19254 to patch version v0.29.0-preview.3 and create version 0.29.0-preview.4 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/19264 fix(patch): cherry-pick 9590a09 to release/v0.29.0-preview.4-pr-18771 to patch version v0.29.0-preview.4 and create version 0.29.0-preview.5 by @gemini-cli-robot in https://github.com/google-gemini/gemini-cli/pull/19274 New Contributors @MushuEE made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18295 @peterfriese made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18376 @ademuri made their first contribution in https://github.com/google-gemini/gemini-cli/pull/16209 @zackoch made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18408 @ThanhNguyxn made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18187 @jwhelangoog made their first contribution in https://github.com/google-gemini/gemini-cli/pull/17438 @019-Abhi made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18099 @sripasg made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18686 @keithguerin made their first contribution in https://github.com/google-gemini/gemini-cli/pull/18570 Full Changelog: https://github.com/google-gemini/gemini-cli/compare/v0.28.2...v0.29.0