Originally published at https://aicoding-guide.com.
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
| Category | Count | What it covers |
|---|---|---|
| Fixes developers will notice | 9 | diff, tool output, MCP config, auth loops, stdin, temp directories, plan execution |
| Release housekeeping (changelogs, version bumps) | 4 | Changelogs for v0.61.0-preview.1, v0.61.0, v0.62.0-preview.0, and a nightly version bump |
| Internal fixes | 2 | ACP 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.externalis a Git config key. The official configuration reference has nodiffsection and noexternalkey, so putting it insettings.jsondoes nothing. The documented editor-related keys aregeneral.preferredEditorandgeneral.openEditorInNewWindow.
Truncation at 0 or below behaves correctly now
The configuration reference documents these keys for tool-output truncation:
| Setting key | Default | What it does |
|---|---|---|
tools.truncateToolOutputThreshold |
40000 |
Maximum characters to show when truncating large tool outputs. 0 or a negative value disables truncation. Requires restart |
contextManagement.tools.distillation.maxOutputTokens |
10000 |
Maximum 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
Whethertools.truncateToolOutputThresholdfeedsmaxCharsinformatTruncatedToolOutputdirectly 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.jsonis broken" were handled the same way. The documented keys that enable or disable MCP aremcp.allowed,mcp.excludedandadmin.mcp.enabled, all of which require a restart. Individual server entries have noenabledfield. 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(defaulttrue),general.plan.modelRouting(defaulttrue) and the approval modegeneral.defaultApprovalMode(default,auto_editorplan). 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 directoryduring diffs came from Gemini CLI overriding Git'sdiff.externalwith an empty string; v0.63.0 removes it -
diff.externalis a Git config key, not a key for Gemini CLI'ssettings.json - A negative
tools.truncateToolOutputThresholdused to roughly double output; 0 or below now disables truncation as documented - MCP enablement is controlled by
mcp.allowed,mcp.excludedandadmin.mcp.enabled, not a per-serverenabledfield
Top comments (0)