Back
AI summary
Written by AI from the official notes. Check them for exact details.Gemini CLI 0.1.21 introduces 50 new features and 30 bug fixes, enhancing functionality and user experience.
- Add hideBanner setting to disable startup banner.
- Introduce VSCode companion extension for better integration.
- Implement loop detection service to prevent infinite loops.
- Add /ide status & /ide install commands for IDE management.
- Enhance OAuth callback for robust Docker support.
Why it matters: Users of Gemini CLI and IDE integrations should review these updates for improved functionality and bug fixes.
Full release notes299 changes
What's Changed
- feat(cli): add hideBanner setting to disable startup banner
- Fix duplicate help text for build targets in Makefile
- Show stderr output from mcp servers in debug mode
- Fix markdown heading level issue
- Add documentation for the /extensions command
- Introduce VSCode companion extension
- Add feature flag for IDE integration
- fix(docs): clarify global installation in readme
- updated '/auth' to use new slash command arch
- Don't start uncompressed history with a function response
- fix(checkpoint): Prevent silent failure and enable for non-Git projects
- Refactor MCP code for reuse and testing
- Fix circular reference JSON serialization in telemetry logging
- Make @ command sort file without extension name
- Introduce loop detection service that breaks simple loop
- Log the 2 types of loop detection
- Migrate /privacy to new architecture
- Pure refactor: Consolidate isWithinRoot() function calling.
- Update to yargs v18
- migrate /about
- Roadmap release
- feat: add a warning that shows if user uses node -v <20 #2930
- Fix: Standardize capitalization for "Troubleshooting Guide" in README
- Adds the user's active file in the IDE to the footer
- [ide-mode] Stream notifications when the active file changes
- Enable tool summarization only when explicitly set in settings.json
- feat(tool): sort tool list alphabetically for deterministic output
- Include api key in header instead of in the URL
- Revert Node <20 warning
- Upload VSIX of companion VS Code extension
- Revert "Update to yargs v18 (#3759)"
- updated
/statsto use new slash command arch - Add support for allowed/excluded MCP server names in settings
- update
/extensionsto new slash command arch - Set port dynamically in VSCode extension and read from it in gemini-cli and send initial notification
- [ide-mode] Thread active file through to system prompt
- Update MaxSizedBox.tsx
- Improve altName completion behavior in slash commands
- Clarifies that Gemini Code Assist, when offered through the Google De…
- refactor: Optimize the display information of "/chat list" and "/chat resume"
- migrate compress command
- Move MCP slash command to new system
- feat(cli): clear input buffer on CTRL+C when not executing commands
- Run model availability check in the background to speed up startup
- chore: update numbering in release-docker.yaml
- update
/docsto new slash command arch - Revert "[ide-mode] Thread active file through to system prompt"
- Include companion VS Code extension VSIX as part of build/release
- update
/toolsto new slash command arch - fix: update google/genai to v1.9.0 and switch to parametersJsonSchema for MCP related tools
- Minor UX updates for IDE mode
- Add /ide status & /ide install commands to manage IDE integration
- update
/editorto new slash command arch - Minor refactoring of IDE companion server
- update
/bugto new slash command arch - updated
/quitto use new slash command arch - Fix resetting loop counts on every other event
- bug(ux): update context percentage when /clear command is run
- [ide-mode] Add active file to user model request
- Logging surface field in the start_session_event. Also logging sessio…
- (fix) - regression to quit shortcut from command migration
- Update companionPort not existing to be a warning so the user can still proceed with running /ide install
- Fix ANSI escape crash in text buffer (#3987)
- feat(cli): add explicit proxy option in cli
- Fix link for checkpointing doc for
--checkpointing - Zed integration
- Fix #4220: allow up/down arrow to toggle history when only one sugges…
- Add numbers to selection list
- Update ESLint and related packages to latest versions
- fix: remove direct gaxios dependency
- Test/add loadcodeassist mock
- migrate restore command
- Migrate /corgi
- fix(cli): not show update avaialble messages when running gemini-cli locally
- feat(ui): hide cursor when terminal is unfocused
- Light theme color improvements
- feat(auth): Enhance OAuth callback for robust Docker support
- (fix): broken releases and e2e workflows
- feat(cli): allow executing commands on perfect match
- MCP OAuth Part 1 - OAuth Infrastructure
- Implement loop check with LLM
- Show blocked MCP servers in display
- [ide-mode] Send ping every 30 seconds to prevent client from closing connection
- Use simple name for MCP tools where possible.
- improve command completion trigger logic based on cursor position
- Display open IDE file in context section above input box rather than in the footer
- Demo background agent
- Add /background commands (when background agent is configured)
- Automatically detect non-interactive environments and fall back to a manual, code-based authentication flow
- Revert background agent commits
- Make shell output consistent.
- feat(core): display declined confirmation code diff
- Simplify MCP connection errors.
- Extend mcp-server timeout.
- chore(release): v0.1.13
- fix: prevent RangeError in GitIgnoreParser for root paths
- Feature custom themes logic
- feat: full implementation for.geminiignore in settings and respective tool calls
- feat: Added /copy command for copying output to clipboard with new Command Service approach
- Check for zeditor if zed binary is not found
- prefactor(commands): Command Service Prefactor for Extensible Commands
- feat(cli): add warnings when gemini-cli is called in the root directory
- fix typos in diverse files
- build(deps): Add missing
resolvedandintegrityfor all dependencies - docs: add documentation for mcp excludeTools and includeTools
- feat: Make file type detection and binary checks asynchronous (#3286)
- [ide-mode] Keep track of recently-opened files and send them to the CLI
- fix: handle cross-device issues with running otel collector
- Add env var to configure system settings path
- Simplify streaming code for code assist server
- [ide-mode] Use active files and selected text in user prompt
- feat(edit): Prevent no-op edits
- feat(cli):suggestion-navigation-shortcut
- docs: add Homebrew installation instructions
- Various spelling improvements
- fix: Add warning message for token limit truncation
- fix: character encoding issues in shell command processor
- Address flaky integration tests with retries
- fix(eslint): remove custom rule in favor of
eslint-plugin-import - Refactor the logic for deciding whether to launch a browser into config
- chore: Expand node version test matrix
- feat(ci): run e2e tests on macos during ci
- (feat): Initial Version of Custom Commands
- Fix windows bugs + refactor tests.
- MCP OAuth Part 2 - MCP Client Integration
- MCP OAuth Part 3 - CLI/UI/Documentation
- feat(auth): support gemini api key and vertex auth in non-interactive mode
- feat(core): Resolve GEMINI_SYSTEM_MD case-insensitively
- add notes on API keys and.gemini/.env to authentication.md
- feat(core): add partUtils module with unit tests
- Fix windows bugs in atCommandProcessor.ts
- Log when flash model decided to continue
- Log flash continue
- feat(commands): Implement argument handling for custom commands via a prompt pipeline
- Fix memoryDiscovery test to work in windows.
- Make ideCommand test windows compatible.
- feat(memory): make directory search limit on memory discovery configurable with settings.json
- add
--telemetry-outfileflag - Fix tests to work in windows
- Update diff colors
- Fix InputPrompt.test.tsx to be windows compatible
- Polish companion extension README and package.json file ahead of publishing
- feat(cli): display timestamp in /chat list
- Minor refactoring of VS Code companion extension code
- Log prompt id when a loop is detected
- Updated Docs to inform users about the ability to have custom theme
- feat: add GEMINI_CLI environment variable to spawned shell commands
- Add Google credentials provider for authenticating with MCP servers
- Move vscode extension build into its own command
- Add support for logging the entire request and response object
- [ide-mode] Send the cursor and selected text from the IDE server
- Add "Gemini CLI: Run" command shortcut
- docs: clarify shell command does not use default shell
- Sanitize checkpoint tags
- feat: add /mcp refresh command
- [Refactor] Centralizes autocompletion logic within useCompletion
- Upgrade test to work on windows.
- Add drawer for active files in IDE mode
- adh/bugfix/1563
- feat(auth): Enhance non-interactive gcp auth
- Fix read-file.test.ts to be windows compatible.
- Make errorReporting test windows compatible.
- Make useCompletion.test.ts windows compatible
- [ide-mode] Create an IDE manager class to handle connecting to and exposing methods from the IDE server
- Make shell.test.ts windows compatible
- Fix userStartupWarnings to be windows compatible.
- Safer Shell command Execution
- Make restoreCommand test windows compatible.
- Implement hashing based loop detection
- fix(ci): Fix failing release workflow by creating a self-contained bundle
- Fix bugs breaking drag and drop of files.
- Load and use MCP server prompts as slash commands in the CLI
- Make fileDiscoveryService.test.ts win compatible
- Make oauth2 test windows compatible.
- Fix test to be windows compatible.
- Make glob.test.ts win compatible.
- Fix grep.test to work on windows.
- Vim mode
- Run presubmit tests in windows as well as linux.
- Run pre-merge checks in mac os as well as ubutnu+win
- Regression test for paste when the terminal lacks focus.
- Handle unhandled rejections more gracefully.
- fix(ui): remove extraneous whitespace from startup screen
- Fix so legacy custom themes still load.
- refactor(core): Centralize shell logic into ShellExecutionService
- fix: Clean up transport on IDE connection failure
- (fix): Custom Commands follow symlinks
- docs: add missing --prompt-interactive/-i flag documentation
- feat: Add Shell Command Execution to Custom Commands
- Bug: add resource parameter to MCP OAuth Flow
- refactor(telemetry): enhance flushToClearcut method with retry logic and early return for empty events
- Propagate user_prompt_id to GenerateConentRequest for logging
- (docs) - Fix small markdown mistake for custom commands docs
- (model) - Use Flash Lite For Next Speaker Checks
- fix: yolo mode not respected
- feat(chat): Implement /chat delete command
- Clarify ToS and privacy documentation FAQs.
- Update documentation for read_many_files.
- Revert "Propagate user_prompt_id to GenerateConentRequest for logging"
- Fix author attribution
- Updates schema, UX and prompt for IDE context
- feat: Add /config refresh command
- docs: Add more examples to Popular tasks
- Add documentation for MCP prompts
- fix: Clear previous thoughts when starting new prompts
- Revert "feat: Add /config refresh command"
- Refactors companion VS Code extension to import & use notification schema defined in gemini-cli
- Adds docs outlining keyboard shortcuts for gemini-cli
- Add new fallback state as prefactor for routing
- feat: Add tests for checkpoint tag sanitization
- Only enable IDE integration if gemini-cli is running in the same path as open workspace
- feat: Add auto update functionality
- feat(commands): add custom commands support for extensions
- feat(cli): introduce /init command for GEMINI.md creation
- Adds centralized support to log slash commands + sub commands
- Update Triage Logic to improve issue categorization.
- Fix typo in RFC 9728 impl
- Add Starcraft ref to witty loading phrases
- feat(docs): document GEMINI.md import syntax
- fix(update): correctly report new updates
- Docs: add documentation for.geminiignore
- Skip and reset loop checking around code blocks
- chore(release): v0.1.15
- docs: Update chat command documentation with checkpoint locations
- do not mention GEMINI.md in system prompt as it is not fixed and can confuse model as it is not mentioned by memory tool and memory file paths are generally not exposed to model (yet)
- perf(core): parallelize bfsFileSearch for 40% faster CLI startup
- feat(ui): Update tool confirmation cancel button text
- Srithreepo Fixes for Scheduled triage
- feat: Multi-Directory Workspace Support (part1: add
--include-directoriesoption) - Introduce IDE mode installer
- fix(testing): make ModelStatsDisplay snapshot test deterministic
- confirm save_memory tool, with ability to see diff and edit manually for advanced changes that may override past memories
- Add toggleable IDE mode setting
- Exclude companion extension from release versioning
- Improve error message for discoverTools function
- Add render counter in debug mode
- feat(docs): Add
/initcommand in commands.md - Replace FlashDecidedToContinueEvent with NextSpeakerCheckEvent
- Fix: Ensure that non interactive mode and interactive mode are calling the same entry points
- bug(core): UI reporting for truncated read_file.
- fix: CLAUDE.md compatibility for GEMINI.md '@' file import behavior
- feat: Multi-Directory Workspace Support (part2: add "directory" command)
- feat: Implement /setup-github command
- Add emacs support, as per user requests.:)
- feat(cli): Improve @ autocompletion for mid-sentence edits
- fix(ux) bug in replaceRange dealing with newLines that was breaking vim support
- Highlight slash commands in history
- Fix bug executing commands in windows whose flags contain spaces
- Update gemini-automated-issue-triage.yml
- fix(core): Remove json output schema form the next speaker check prompt
- New browser launcher for MCP OAuth.
- Add missing emacs entry in UI.
- [Fix Telemetry for tool calls, PR 1/n] Propagate tool reported errors via ToolCallResponseInfo and ToolResult
- doc: use standard Google security policy for GitHub projects
- feat(sandbox): Add SANDBOX_FLAGS for custom container options
- Add a setting to disable auth mode validation on startup
- feat(core): Use completionStart/End for slash command auto-completion
- feat(github): add workflow to manage stale issues and PRs
- bug(cli): Prefer IPv4 dns resolution by default.
- Propagate prompt
- Switch utility calls to use the gemini-2.5-flash-lite model
- fix(tests): refactor integration tests to be less flaky
- fix(config): Resolve duplicate config loading from home directory
- feat(autoupdate): Improve update check and refactor for testability
- Add a setting to disable the version update nag message
- fix: exclude DEBUG and DEBUG_MODE from project.env files by default
- feat: Add reverse search capability for shell commands
- Generate NOTICES.TXT and surface via command
- chore(release): v0.1.16
- docs(fix): Update themes documentation to include new color keys for…
- Fix: Preserve conversation history when changing auth methods via /auth
- feat(docs): create new documentation for automation and triage
- Cloud Shell surface logging fix
- fix: /help remove flickering and respect clear shortcut (ctr+l)
- feat(cli): Handle Punctuation in @ Command Parsing
- feat(core): Add trailing space when completing an at completion suggestion
- remove unnecessary checks in WriteFileChecks.getDescription
- Use new URLs for downloading workflows
- refactor(core): Rename useSlashCompletion to useCommandCompletion
- fix(core): Allow model to be set from
settings.json - Improve user-facing error messages for IDE mode
- ide-mode flag cleanup
- feat(cli): Prevent redundant opening of browser tabs when zero MCP servers are configured
- [ide-mode] Add openDiff tool to IDE MCP server
- Update MCP client to connect to servers with only prompts
- fix self-reference in build script
- Remove the "local modifications" string from bug and about reports.
- chore(release): v0.1.17
- docs: update typo in commands.md
- feat: Multi-Directory Workspace Support (part 3: configuration in settings.json)
- fix(mcp): ensure authorization url is valid when containing query params
- bug(core): fix
contentRangeTruncatedcalculation. - fix: small typo in ROADMAP.md
- chore(settings): clean up comments in settings.ts
- feat(core): Parse Multimodal MCP Tool responses
- GitHub Action for velocity reporting purposes
- Fix format
- fix(core): prevent UI shift after vim edit
- bug(core): Fix flaky test by using waitFor.