Gemini CLI v0.67 adds a models command and fixes the unit in Claude hook migration
Originally published at https://aicoding-guide.com . Gemini CLI v0.67.0 carries 27 changes: two features and 22 fixes. One of those fixes had real consequences for anyone running both Claude Code and Gemini CLI. Migrating a Claude hook configuration made its timeout 1000 times smaller . Key point W

Posted on Nov 5 • Originally published at aicoding-guide.com
Originally published at https://aicoding-guide.com.
Gemini CLI v0.67.0 carries 27 changes: two features and 22 fixes.
One of those fixes had real consequences for anyone running both Claude Code and Gemini CLI. Migrating a Claude hook configuration made its timeout 1000 times smaller.
PR #29880 adds a models command and a --list-models flag for model discovery.
Until now there was no direct way to see which models you could pass to -m. This fills that gap.
Not in the documentation yet As of 2026-11-06, neither the models command nor --list-models appears in the official documentation. v0.67.0 shipped on November 4, and the docs have not caught up. Check --help locally for the output format and options.
This is PR #29899: "fix(cli): convert Claude hook timeout from seconds to milliseconds during migration."
The cause is a unit mismatch, visible when you put both references side by side.
Claude Code's reference describes timeout as "Seconds before canceling". Gemini CLI's says "Execution timeout in milliseconds (default: 60000)".
So a Claude hook set to timeout: 600 (ten minutes), moved across without conversion, became 600 milliseconds on the Gemini side — short enough that almost any command times out immediately. If you migrated a configuration before v0.67.0, check those values.
{ "hooks": { "PreToolUse": [ { "hooks": [ { "name": "security-check", "type": "command", "command": "$GEMINI_PROJECT_DIR/.gemini/hooks/security.sh", "timeout": 5000 } ] } ] } } Enter fullscreen mode Exit fullscreen mode The environment variable names differ too The other thing easily missed in a migration is the environment. Gemini CLI passes hooks GEMINI_PROJECT_DIR, GEMINI_PLANS_DIR, GEMINI_SESSION_ID and GEMINI_CWD. A command string referencing Claude Code's CLAUDE_PROJECT_DIR will not resolve when carried over as-is. The documentation also states hooks run with "a sanitized environment", so avoid relying on shell environment variables generally.
For the Claude Code side of the contract, see Claude Code hook input and output.
Relatedly, PR #29867 preserves ${VAR} placeholders during deprecated settings migration. v0.66.0 fixed placeholder resolution after.env files load, so this area has had attention in two consecutive releases.
The second feature is PR #29858, which bridges the IDE companion into container sandboxes over exec stdio — so IDE integration works where the sandbox runs in a container.
The first avoids GEMINI.md entering the context twice: it is already loaded as project context, so passing it again as an open file duplicates it. For how it is loaded, see Installing Gemini CLI and writing GEMINI.md.
The third stops pointless retries once a spending cap is reached.
On display: Thai and Lao SARA AM width is corrected, and terminals that render ambiguous-width characters as wide are now handled. The latter may help where CJK text renders misaligned.
Also fixed: duplicate agent loading when the workspace is the home directory, read-only files and hard links respected in atomic writeTextFile, ripgrep resolution on Android (Termux), CRLF normalisation in getDiffContextSnippet, and MCP server and tool metadata included in ACP permission requests. For the previous release, see Gemini CLI v0.66 is fixes only, with the keybindings.json keys array now working.