Release notes

FEATURE

Native Termux support is live, running directly on Android without emulation environments

When you want to travel light with only a phone or tablet and call on AI to write code directly on your mobile device, you can now launch right inside Termux. Pre-compiled native Android binaries are now provided, allowing the CLI to run directly within Termux. Previously, you had to set up proot-distro (an environment tool that emulates a full Linux operating system on Android) on your phone just to get it running, a tedious process that consumed extra storage.

Now, simply install Termux, download the binary directly, and start chatting.

PERF

Screen refresh memory streamlined for snappier typing, scrolling, and output response

When you watch AI rapidly stream long responses while scrolling through history or typing new text simultaneously, the interface no longer lags. Memory allocated during each screen update and redraw has now been significantly reduced. Previously, every text stream or visual change repeatedly requested large amounts of temporary memory, which tended to slow down terminal responsiveness during lengthy conversations.

Now, regardless of output length, typing and scrolling remain crisp and smooth.

FEATURE

/usage quota reset time now displays in local timezone without affecting automated scripts

When checking when your quota resets by entering -p "/usage" in the terminal, the reset time is now automatically converted to your local time. Previously, the terminal always printed Universal Coordinated Time, forcing you to manually calculate timezone offsets in your head to know the exact time you could resume usage. To preserve compatibility with automated programs, piping the output or passing the --json flag still outputs standard UTC timestamps.

This adjustment enhances human readability while leaving existing scripts completely unaffected.

FEATURE

Permission approvals narrowed to subcommands, honoring denials without workaround execution

When authorizing AI to run specific version control commands or denying an operation, permission boundaries are now handled much more strictly. When prompting permissions for repo, "Always Allow" suggestions target only the specific subcommand (such as granting only repo status for status queries) instead of approving every risky command at once, aligning behavior with git, hg, and jj. If a permission request is denied—such as when a subagent running in the background encounters a block without the ability to prompt you—the AI strictly respects the denial. It will never secretly bypass the block by switching to other commands, scripts, or alternative tools.

BUGFIX

Fixed terminal resizing freezing the conversation UI, adding automatic reconnection on drop

Rapidly resizing the terminal window during lengthy conversations no longer freezes the screen. Previously, consecutive resizes triggering redraws often caused the session screen to stop displaying new execution steps, leaving you staring at a frozen view while AI continued working in the background. The tool now automatically attempts to reconnect whenever the connection drops, raising a warning only if retries fail; if the connection is truly lost, sending a new message immediately restores the visual connection.

BUGFIX

Immediate notice when quota is exhausted and credits are insufficient to cover the request, ending two-and-a-half-minute hangs

When plan quota is exhausted and account AI credits are insufficient, the system now provides an immediate and clear notification. Previously, submitting a request with insufficient balance left the terminal stuck on "Working..." retrying repeatedly for about two and a half minutes before throwing a vague "Agent execution terminated due to error." error; it now promptly informs you on the spot that "Your AI credits balance is too low to continue.", saving you unnecessary waiting time.

BUGFIX

Exiting over remote SSH no longer leaves behind garbled image protocol artifacts

When using the CLI tool over SSH, exiting the CLI no longer clutters your terminal screen with strange character codes. Previously, using the CLI over SSH in macOS Terminal.app often left behind garbled image protocol probing strings like Ga=q,f=32,s=1,v=1,i=31;AAAAAA== after exit. The tool now queries terminal identity before checking image support, recognizing only Kitty and Ghostty as image-capable terminals under SSH connections to prevent WezTerm and Konsole from generating mojibake placeholder strings.

BUGFIX

Vim mode cursor correctly skips emojis and composite characters without breaking glyphs

Cursor navigation and editing are now more precise when handling emojis or complex combining marks in terminal Vim editing mode. Previously, moving the cursor over multi-codepoint emojis like 👩‍💻 or ⚠️, or scripts with combining marks such as Devanagari, caused the cursor to get stuck midway through characters. Navigation keys like h and l now traverse entire composite characters in a single step, and pressing x to delete or r to replace acts on the complete grapheme cluster without breaking glyphs apart.

BUGFIX

/resume session search input spans full terminal width, preventing long queries from wrapping

When entering /resume to pick and restore previous session history, longer search queries are much less likely to wrap. Previously, the search input box in the conversation picker had limited width, causing longer queries to wrap automatically and push the beginning of the text out of view. The search box now expands to fill the entire terminal width, making longer queries less likely to wrap and preventing the start of text from getting pushed off-screen.

BUGFIX

Unrestricted read access for global custom rules, eliminating duplicate symlink loading

When managing custom rules in the configuration directory, AI can now properly read the rules/ directory, AGENTS.md, GEMINI.md, skills.json, rules.json, plugins.json, and agents.json within ~/.gemini/config, asking for confirmation before making edits while keeping all other files restricted. If ~/.gemini/GEMINI.md, ~/.gemini/AGENTS.md, or their counterparts under ~/.gemini/config/ are symlinks pointing to the exact same physical file, the system automatically deduplicates them to prevent rules from loading multiple times.

BUGFIX

Fix MCP Server OAuth Login Issue with HTTP 200 Responses

When logging in to certain external tools integrated through standard protocols, login attempts no longer fail due to server response status codes. When logging in to servers supporting MCP (Model Context Protocol, a protocol connecting AI to external tools), if the server's OAuth client registration flow returned a successful HTTP 200 instead of the expected 201, the tool previously misidentified it as an error and threw "registration failed with status 200". This issue is now fixed to properly support both successful status codes and complete the login process smoothly.

BUGFIX

Automatically Downscale Large WebP Images to Fit Size Limits

When asking AI to analyze high-resolution images, format differences no longer cause issues. Previously, when AI read large PNG and JPEG images, it automatically downscaled them to fit image size limits, but WebP format was overlooked. Following this fix, WebP images are also automatically downscaled accordingly, preventing oversized image files from exceeding specification limits.

Original changelog

Original changelogNative Termux support is live, running directly on Android without emulation environments
Added prebuilt native Android binaries of the CLI that can run directly in Termux, without requiring a proot-distro environment.
Original changelogScreen refresh memory streamlined for snappier typing, scrolling, and output response
Improved responsiveness while typing, scrolling, and streaming agent output by sharply reducing the memory the CLI allocates on every update and redraw
Original changelog/usage quota reset time now displays in local timezone without affecting automated scripts
Improved `-p "/usage"` to show quota reset times in your local time zone when printing to a terminal; piped and `--json` output still use UTC timestamps, so existing scripts are unaffected
Original changelogPermission approvals narrowed to subcommands, honoring denials without workaround execution
Improved the always-allow suggestion when approving `repo` commands: it is now limited to the subcommand, such as `repo status`, instead of allowing every `repo` command, matching `git`, `hg`, and `jj`
Improved how the agent handles a permission request that is not approved, such as one raised by a subagent that cannot ask you: it now respects the denial and no longer tries to work around it with other commands, scripts, or tools
Original changelogFixed terminal resizing freezing the conversation UI, adding automatic reconnection on drop
Fixed the conversation view freezing for the rest of the session, with no new steps appearing while the agent kept working, after redraws such as several quick terminal resizes in a long conversation; the CLI now reconnects automatically, warns only if reconnecting fails, and sending a new message recovers a lost connection
Original changelogImmediate notice when quota is exhausted and credits are insufficient to cover the request, ending two-and-a-half-minute hangs
Fixed requests made after your plan quota is used up and your AI credits balance cannot cover them: instead of retrying on `Working...` for about two and a half minutes and then showing the generic "Agent execution terminated due to error.", the CLI now immediately says "Your AI credits balance is too low to continue."
Original changelogExiting over remote SSH no longer leaves behind garbled image protocol artifacts
Fixed text like `Ga=q,f=32,s=1,v=1,i=31;AAAAAA==` being left behind in macOS Terminal.app after exiting the CLI over SSH; the CLI now asks the terminal to identify itself before probing for image support, and over SSH only Kitty and Ghostty are treated as image-capable, so WezTerm and Konsole no longer show garbled image placeholders
Original changelogVim mode cursor correctly skips emojis and composite characters without breaking glyphs
Fixed the Vim mode cursor stopping inside emoji such as 👩‍💻 or ⚠️ and characters with combining marks such as Devanagari: `h`, `l`, and other motions now move over whole characters, and `x` and `r` delete or replace the whole character instead of a hidden part of it
Original changelog/resume session search input spans full terminal width, preventing long queries from wrapping
Fixed the search box in the `/resume` conversation picker wrapping long queries so that their beginning scrolled out of view; the box now uses the full terminal width
Original changelogUnrestricted read access for global custom rules, eliminating duplicate symlink loading
Fixed the agent being blocked from reading your global rules and customization files in `~/.gemini/config`, including the `rules/` folder, `AGENTS.md`, `GEMINI.md`, `skills.json`, `rules.json`, `plugins.json`, and `agents.json`; it can now read them and asks before editing them, while other files in that folder stay off-limits
Fixed global rules being added to the agent's context more than once when `~/.gemini/GEMINI.md`, `~/.gemini/AGENTS.md`, or their `~/.gemini/config/` counterparts are symlinks to the same file
Original changelogFix MCP Server OAuth Login Issue with HTTP 200 Responses
Fixed signing in to MCP servers whose OAuth client registration responds with HTTP `200` instead of `201`, which previously failed with `registration failed with status 200`
Original changelogAutomatically Downscale Large WebP Images to Fit Size Limits
Fixed large WebP images opened by the agent not being scaled down to fit image size limits the way PNG and JPEG images are