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
What this article covers

  • Listing models with the models command and --list-models
  • Claude's hook timeout is seconds; Gemini's is milliseconds
  • The IDE companion now works inside container sandboxes

A models command for listing models

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.

Migrating a Claude hook made its timeout 1000x smaller

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.

Tool Unit of timeout Default
Claude Code Seconds 600 for command / http / mcp_tool, 30 for prompt, 60 for agent
Gemini CLI Milliseconds 60000

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 } ] } ] } } 

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.

IDE integration and containers

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.

Two IDE fixes also landed:

  • IDE settings files and GEMINI.md are excluded from the open-file context (PR #29848)
  • Relative file paths resolve against the active IDE workspace root (PR #29838)

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.

Cancellation and display fixes

Three fixes matter for unattended runs:

  • Termination signals are handled in non-interactive mode, and tools no longer execute after cancellation (PR #29849)
  • Continuation stream processing and auto-nudge stop after a request is cancelled (PR #29868)
  • Project spending cap errors are classified as terminal quota errors (PR #29961)

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.

Summary

  • v0.67.0 has two features and 22 fixes among 27 entries
  • A models command and --list-models list available models, though neither is documented yet
  • Migrating a Claude hook made its timeout 1000x smaller: Claude uses seconds, Gemini milliseconds
  • Environment variables need rewriting too, from CLAUDE_PROJECT_DIR to GEMINI_PROJECT_DIR
  • The IDE companion now works inside container sandboxes