【備忘録】Claude Codeの強制自動更新を止める方法 - autoUpdates falseが効かない時の対処法
TL;DR
- Claude Codeでコンテキスト喪失やコード削除などの深刻な問題が発生中?
- 旧バージョン(1.0.33など)へのダウングレードで回避可能
- 通常の
autoUpdates: false
設定では強制更新を止められない -
対処手順:
-
which claude
で実行パスを確認し、競合ファイルがあれば削除 -
npm install -g @anthropic-ai/claude-code@1.0.33
で安定版をインストール -
~/.claude/settings.json
に"env": { "DISABLE_AUTOUPDATER": "1" }
を追加して自動更新を停止
-
- 代替ツールとしてSuperClaudeなどのラッパーも検討可能か
1. はじめに
ここ数日、Claude Codeを使用していて、コンテキストがすぐに消費されてしまったり、トートロジーのような挙動が発生したりする問題に遭遇しました。ネットで調べてみると、同様の事象が他の人にも起きているようです。
この記事では、Claude Codeの不安定な動作に対処するため、特定のバージョンへダウングレードし、自動更新を無効化する方法を解説します。
2. 現在報告されている問題
GitHub Issue #4487では、以下のような問題が報告されています:
主な症状
- コンテキスト健忘症 - 最初はコードベースを正しく読み込むが、数メッセージ後に全てのコンテキストを喪失
- コードの消失 - ファイル分割リクエストで1,684行中225行が無断削除される事例も発生
- Claude 4の性能劣化 - 1ヶ月の比較テストで、Claude 3.5より冗長で不要な複雑性を追加する傾向
影響範囲
- Claude Code CLI v1.0.61とCursor IDE両方で同じ問題が発生(macOS 15.5環境)
- 数メッセージごとにコンテキストのリマインドが必要
- Claudeのミスを修正する時間が元の作業時間を上回る状況
3. 私の環境
- OS: macOS
- パッケージマネージャー: Homebrew と npm を併用
4. npm installが効かない問題
バージョン1.0.33へのダウングレードを試みましたが、以下のような問題に遭遇しました。
# バージョン1.0.33を指定してインストール
$ npm install -g @anthropic-ai/claude-code@1.0.33
# 確認すると...バージョンが変わっていない
$ claude --version
1.0.63 (Claude Code)
原因を調査したところ、実行されているclaudeコマンドのパスに問題がありました。
$ which claude
/opt/homebrew/bin/claude
npmで管理されているものではなく、Homebrewのパスに置かれた別のファイルが実行されていました。これはHomebrewのパッケージでもなく、VS Code拡張機能などが自動で配置したファイルである可能性が高いです。
解決方法:競合ファイルの削除
競合を解決するため、古い実行ファイルを削除します。
$ rm /opt/homebrew/bin/claude
これでnpmでインストールしたバージョンが正しく認識されるようになりました。
5. 自動更新が無効にできない問題
公式ドキュメントに従って自動更新を無効にしても、Claude Code起動時に自動的に最新版へ更新されてしまいます。
$ claude config set -g autoUpdates false
公式ドキュメントによると、Claude CodeにはDISABLE_AUTOUPDATER
という環境変数があり、これはautoUpdates
設定よりも優先されます。特定のバージョンでは強制更新機能が働き、通常の設定では無効化できないようです。
6. 自動更新を制御する方法
方法A:コマンド実行時に環境変数を指定
環境変数を直接指定することで、自動更新をブロックできます。
# claudeコマンドの前に環境変数を付ける
DISABLE_AUTOUPDATER=1 claude
エイリアスを設定すれば、毎回入力する手間も省けます:
# シェルの設定ファイル(~/.zshrc や ~/.bash_profile など)にエイリアスを追加
alias claude='DISABLE_AUTOUPDATER=1 claude'
方法B:settings.jsonを編集(私はこっちにしてます。)
~/.claude/settings.json
ファイルを直接編集して、環境変数を永続化する方法です。
- 設定ファイルを開く:
nano ~/.claude/settings.json
- 以下の内容を追加:
{
"model": "opus",
"env": {
"DISABLE_AUTOUPDATER": "1"
}
}
この設定により、Claude Code起動時に自動的にDISABLE_AUTOUPDATER=1
が適用され、強制更新が無効化されます。
7. バージョン固定の手順まとめ
7-1. 現在のバージョンと実行パスの確認
# 現在のバージョンを確認
$ claude --version
# 実行されているclaudeコマンドのパスを確認
$ which claude
7-2. 競合ファイルの削除(必要な場合)
# Homebrewのbin配下などに古いclaudeがある場合は削除
$ rm /opt/homebrew/bin/claude
7-3. 安定版へのダウングレード
# バージョン1.0.33をインストール
$ npm install -g @anthropic-ai/claude-code@1.0.33
# インストール確認
$ claude --version
# 1.0.33 (Claude Code) と表示されればOK
7-4. 自動更新の無効化
settings.jsonを編集
# 設定ファイルを編集
$ nano ~/.claude/settings.json
以下の内容を追加または編集:
{
"model": "opus",
"env": {
"DISABLE_AUTOUPDATER": "1"
}
}
7-5. 動作確認
# Claude Codeを起動して自動更新されないことを確認
$ claude
# /exit後、バージョンが固定されていることを再確認
$ claude --version
8. 代替ツールの紹介
正直なところ、バージョンによってClaude Codeの挙動が変わっているかどうかは不明確なので、現在のバージョンのままでClaude Codeのラッパーツールを使うという選択肢も検討する価値があります。(私はSuperClaudeを実験的に使用しています。)
- https://github.com/SuperClaude-Org/SuperClaude_Framework
- https://github.com/ruvnet/claude-flow
- https://github.com/oraios/serena
まとめ
Claude Codeの強制的な自動更新は、DISABLE_AUTOUPDATER
環境変数を使用することで制御できます。settings.json
への直接編集が解決策として有効です。
現在のバージョンで問題が発生している方は、この方法で安定したバージョンに固定することで問題を回避できます。
他にも知見があれば、コメント欄で共有いただけると幸いです。
Discussion