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日
根拠
実機で確認
エラー文字列
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.json が JSON として読めません。
⭐ どのファイルかはメッセージが教えてくれます。 探す必要はありません。
⭐ 黙って無視せず、止まってくれます。 設定が効かないまま動き続けるより安全な作り方です。
メッセージ別の意味
| 出るもの | 意味 |
|---|---|
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 を「設定ファイルの問題」として判別できるようにしておく