Gemini CLI のエラー

Error in <path>/settings.json: Unexpected end of JSON input

結論

settings.json が JSON として読めない状態。終了コード52で、起動前に止まる。

確認した版 Gemini CLI v0.58.0
確認日 2026年9月3日
最終更新 2026年9月3日
根拠 実機で確認

エラー文字列

Gemini CLI
Error in <path>/settings.json: Unexpected end of JSON input

⚠️ 標準エラーに出て、終了コードは 52 です。

Error in C:\Users\<名前>\.gemini\settings.json: Unexpected end of JSON input
Please fix the configuration file(s) and try again.

何が起きているか

settings.jsonJSON として読めません。

どのファイルかはメッセージが教えてくれます。 探す必要はありません。

黙って無視せず、止まってくれます。 設定が効かないまま動き続けるより安全な作り方です。

メッセージ別の意味

出るもの 意味
Unexpected end of JSON input 途中で終わっている。閉じ括弧が足りない
Unexpected token ... in JSON その位置に書けないものがある
Unexpected non-whitespace character after JSON 閉じたあとに余計なものがある

よくある原因

原因
末尾のカンマ {"theme": "dark",} — JSON では許されません
閉じ括弧の不足 編集の途中で保存した
コメントを書いた // .../* ... */ は JSON では使えません
シングルクォート {'theme': 'dark'} — JSON は二重引用符のみ
BOM が付いている エディタの保存設定

🔴 末尾のカンマとコメントが群を抜いて多いです。 どちらも他の設定ファイル(JavaScript や TOML)では許されるため、つい書いてしまいます。

直し方

1. どこにあるか確認する

macOS / Linux

ls -la ~/.gemini/settings.json .gemini/settings.json 2>/dev/null

Windows(PowerShell)

Get-ChildItem "$env:USERPROFILE\.gemini\settings.json", ".gemini\settings.json" -ErrorAction SilentlyContinue

⚠️ プロジェクト側(.gemini/settings.json)にもあります。 両方を確認してください。

2. 先にバックアップを取る

cp ~/.gemini/settings.json ~/.gemini/settings.json.bak
Copy-Item "$env:USERPROFILE\.gemini\settings.json" "$env:USERPROFILE\.gemini\settings.json.bak"

3. JSON として妥当か確かめる

macOS / Linux

python3 -m json.tool ~/.gemini/settings.json

行と桁を教えてくれます。

Windows(PowerShell)

try { Get-Content "$env:USERPROFILE\.gemini\settings.json" -Raw | ConvertFrom-Json | Out-Null; "OK" }
catch { $_.Exception.Message }

4. よくある形を直す

{
  "theme": "Default",
  "selectedAuthType": "gemini-api-key",
}

🔴 最後の , を消します。JSON に末尾のカンマはありません。

コメントを書いている場合は、行ごと削除してください。

5. BOM を取り除く(Windows)

$p = "$env:USERPROFILE\.gemini\settings.json"
$t = Get-Content $p -Raw
[System.IO.File]::WriteAllText($p, $t, (New-Object System.Text.UTF8Encoding $false))

⚠️ $false が「BOM なし」です。 ここを間違えると直りません。

6. どうしても直らない場合

一度消せば既定に戻ります。設定は作り直しになります。

mv ~/.gemini/settings.json ~/.gemini/settings.json.broken
Move-Item "$env:USERPROFILE\.gemini\settings.json" "$env:USERPROFILE\.gemini\settings.json.broken"

⚠️ 消す前に必ず控えを取ってください。

7. 通ったか確かめる

gemini --skip-trust -p "hello"; echo "exit=$?"

52 以外になれば、設定ファイルは読めています。

再発防止

  • 🔴 JSON に末尾のカンマとコメントは書けない。 他の設定ファイルの癖で書いてしまう
  • 編集したら保存前に検証する。上の「3.」がそのまま使える
  • ユーザー側とプロジェクト側の両方を確認する
  • 終了コード 52 を「設定ファイルの問題」として判別できるようにしておく

この手順で直りませんでしたか?

環境を添えて報告いただければ、追加の原因を検証してこのページに反映します。

エラーを報告する