Gemini CLI v0.63 fixes the cannot spawn diff error and negative output truncation

Gemini CLI Published:

Every one of the 15 changes in Gemini CLI v0.63.0 is a fix. The removed Git diff.external override, truncation that inflated output at negative maxChars, and the MCP config fix.

Verified on Oct 8, 2026 Verified with Gemini CLI v0.63.0 These tools change quickly. Please also check the latest official documentation.
Contents
  1. What the 15 items are
  2. The cannot spawn diff error is fixed
  3. Truncation at 0 or below behaves correctly now
  4. MCP and plan-execution fixes
  5. Summary

Gemini CLI v0.63.0 is a release of fixes only — all 15 items. The notes list no new setting keys, no new commands and no breaking changes.

Two of them are worth your attention: the removal of the thing that caused cannot spawn : No such file or directory during diffs, and a truncation bug where a negative threshold made output bigger instead of smaller.

The v0.63.0 release notes are a list of PR titles with no per-change description. This article covers only what the individual PRs and the official configuration reference confirm, and says so where confirmation was not available.

KEY POINT

What you will learn

  • What caused the cannot spawn : diff error, and that it is fixed
  • What happens when you set the tool-output truncation threshold to 0 or below
  • The MCP config and plan-execution fixes in this release

What the 15 items are

CategoryCountWhat it covers
Fixes developers will notice9diff, tool output, MCP config, auth loops, stdin, temp directories, plan execution
Release housekeeping (changelogs, version bumps)4Changelogs for v0.61.0-preview.1, v0.61.0, v0.62.0-preview.0, and a nightly version bump
Internal fixes2ACP session init ordering, policy and workflow parsing alignment

Nothing in the list is a new feature. The previous release, v0.62.0, did add two models — see Gemini CLI v0.62 changes.

The cannot spawn diff error is fixed

This is the fix with the widest reach. The symptom was a Git diff failing during Gemini CLI work:

cannot spawn : No such file or directory
error: cannot run : No such file or directory

The cause was on the Gemini CLI side. An earlier change isolated Git operations by injecting Git config overrides through the environment, and it set diff.external to an empty string, on the assumption that this turns external diffing off.

Git does not read it that way. Git treats any non-NULL value of diff.external as the path to an executable command, so it tried to spawn the empty string and failed.

v0.63.0 removes that diff.external entry from both the Git override list in ShellExecutionService and gitUtils.getSafeGitEnv(). Git now uses its built-in diff engine.

diff.external is not a Gemini CLI setting

diff.external is a Git config key. The official configuration reference has no diff section and no external key, so putting it in settings.json does nothing. The documented editor-related keys are general.preferredEditor and general.openEditorInNewWindow.

Truncation at 0 or below behaves correctly now

The configuration reference documents these keys for tool-output truncation:

Setting keyDefaultWhat it does
tools.truncateToolOutputThreshold40000Maximum characters to show when truncating large tool outputs. 0 or a negative value disables truncation. Requires restart
contextManagement.tools.distillation.maxOutputTokens10000Maximum tokens to show to the model when truncating large tool outputs. Requires restart

To turn truncation off, put this in your user settings at ~/.gemini/settings.json:

{
  "tools": {
    "truncateToolOutputThreshold": 0
  }
}

Before v0.63.0, a negative value did not disable truncation — it inflated output to roughly twice its size. The internal formatTruncatedToolOutput sliced a head and a tail with negative indices, so both slices captured nearly the whole string.

v0.63.0 adds a non-positive guard that returns the string unchanged, so both 0 and negative values now disable truncation.

The link between the setting and the function was not confirmed

Whether tools.truncateToolOutputThreshold feeds maxChars in formatTruncatedToolOutput directly is stated neither in the PR nor in the official documentation, so it could not be confirmed. Using 0 follows the configuration reference's own description.

MCP and plan-execution fixes

Two remaining fixes touch configuration:

  • A missing MCP enablement config is now distinguished from malformed JSON. Until now, "the MCP enablement setting is absent" and "your settings.json is broken" were handled the same way. The documented keys that enable or disable MCP are mcp.allowed, mcp.excluded and admin.mcp.enabled, all of which require a restart. Individual server entries have no enabled field. For how to write them, see Add an MCP server to Gemini CLI.
  • Autonomous plan execution now works in non-interactive mode. The documented plan keys are general.plan.enabled (default true), general.plan.modelRouting (default true) and the approval mode general.defaultApprovalMode (default, auto_edit or plan). Which symptom this fix resolves is not described in the release notes and could not be confirmed.

The rest of the list: a retry progress indicator during connection recovery, restoring stdin after capability detection, cleaning up the temp directory when a background shell exits, and preventing an infinite auth loop caused by file contention, a headless keyring or dropped supervisor state. For auth setup, see Gemini CLI free tier limits.

Summary

  • v0.63.0 is 15 fixes with no new features and no new setting keys
  • cannot spawn : No such file or directory during diffs came from Gemini CLI overriding Git's diff.external with an empty string; v0.63.0 removes it
  • diff.external is a Git config key, not a key for Gemini CLI's settings.json
  • A negative tools.truncateToolOutputThreshold used to roughly double output; 0 or below now disables truncation as documented
  • MCP enablement is controlled by mcp.allowed, mcp.excluded and admin.mcp.enabled, not a per-server enabled field

FAQ

Are there any new features in v0.63?
No. All 15 items in the release notes are fixes or release housekeeping. The notes list no new setting keys, no new commands and no breaking changes.
Does this fix cannot spawn : No such file or directory?
Yes, if you saw it during a diff. Gemini CLI was overriding Git's diff.external with an empty string, and Git tried to run that empty string as a command. v0.63.0 removes the override, so Git uses its built-in diff.
Is diff.external a setting I put in settings.json?
No. diff.external is a Git config key. The official Gemini CLI configuration reference has no diff section and no external key. What v0.63.0 removed was an internal Git config override.
How do I turn tool output truncation off?
The configuration reference documents tools.truncateToolOutputThreshold (default 40000) and says that setting it to 0 or a negative value disables truncation. It requires a restart.

Primary sources

This article was drafted by AI from official documentation and reviewed by the site operator before publishing. Found a mistake? Let us know via the contact page.