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