みなさんが最近Claude Codeの性能劣化を嘆いているのをよく観測するので、できる限り劣化を防ぐために自分がとった行動を記載してみる。
Micro Compactを無効にする
LLMは基本的にコンテキストが伸びるほど推論コストが重くなり、LLMプロバイダーにとって負担となる。
そのため、どのバージョンからかClaude Codeは、コンテキスト上限に達する前から、過去参照したファイルの内容やツール使用のログを要約するようになった模様。
直接的な健忘の原因っぽそう。
詳細はこちらのツイートを参照。
https://x.com/SIGKITTEN/status/1951372413675167809
DISABLE_MICROCOMPACT=1で無効にできる。
IDEとの統合をやめる
IDEとClaude Codeとの連携によって無駄なコンテキストが注入されるのを防ぐ。
ただし、UXに大きく関わるのでやったほうがいいかどうかは人による。
IDEのExtensionからClaude Code関連の拡張機能をアンインストールした後、以下のコマンドでClaude Code側のIDEに関わる機能を停止する。
CLAUDE_CODE_AUTO_CONNECT_IDE=0CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL=1CLAUDE_CODE_IDE_SKIP_VALID_CHECK=1オートアップデートを停止する、その他
オートアップデートを無効にする。
その他、無駄なトラフィックやテレメトリーなどをまとめて停止しておく。
DISABLE_AUTOUPDATER=1CLAUDE_CODE_ENABLE_TELEMETRY=0CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1DISABLE_ERROR_REPORTING=1DISABLE_TELEMETRY=1ここまでで書いた設定をまとめて~/.claude/settings.jsonに書き込む場合はこうなる。
{"env":{"CLAUDE_CODE_AUTO_CONNECT_IDE":false,"CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL":true,"CLAUDE_CODE_IDE_SKIP_VALID_CHECK":true,"CLAUDE_CODE_ENABLE_TELEMETRY":false,"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC":true,"DISABLE_ERROR_REPORTING":true,"DISABLE_TELEMETRY":true,"DISABLE_AUTOUPDATER":true,"DISABLE_MICROCOMPACT":true}}Claude Codeのバージョンを下げる
最近追加された機能を使えなくなるのでちょっとアレだが、もっとも間違いない方法。
# 今入っているClaude Codeをアンインストールnpm uninstall @anthropic-ai/claude-code-g# Claude Codeを適当な古いバージョンに変更(1.0.60以前が好ましい気がする)npminstall @anthropic-ai/claude-code@1.0.24-g# Claude Codeのオートアップデートを停止claude configset-g autoUpdaterStatus disabledバージョンを下げても/model claude-opus-4-1-20250805でOpus 4.1は使える模様。
claude config set -g autoUpdaterStatus disabled ではなく、claude config set -g autoUpdates disabledだと思います。(重箱の隅をつつくようですみません 🙏)
コメントありがとうございます!
例として紹介しているダウングレード先のv1.0.24の時点では、キーはautoUpdaterStatusで合っていたかと思います!
ご指摘の通り、その後のバージョンからはautoUpdatesという名前に変わっていますね。
あっ、そうなんですね!こちらの認識不足ですみません....
ご丁寧にありがとうございます! 🙏(なお当方は1.0.33へのダウングレードを実施)
そのほかのテクニックなど
個人的なもの。
serena MCPを入れる
よく言われているやつ。
claude mcpadd serena -- uvx--from git+https://github.com/oraios/serena serena-mcp-server--context ide-assistant--project$(pwd)MAX_THINKING_TOKENSを増やす
常に"ultrathink"してもらうようにする。
MAX_THINKING_TOKENS=31999関連ファイルを大量にコンテキストに含める
@relative/path/to/fileでファイルを絶対に読んでもらえるので、これを使ってコンテキストを強制的に与える。
一瞬でコンテキストが溶けてしまうが、使えないものを吐かれるよりは全然マシなのでよくやっている。
デカいファイルを少しずつ読まずに一気に読んでもらう
Claudeは700行ぐらいあるファイルを100行ずつとかチマチマ読む癖がある。
しかし、これによって全体のコンテキストを捉えられず、すでに存在するメソッドを再実装したりすることがある。そこで一度に読んでもらうようにする。
CLAUDE.mdで指示しておくと良い。
記事とても助かりました🙏
一連の手順で安心していたら、なぜかClaude Codeが自動アップデートされてしまいました。
おそらく、Claude Codeのインストール方法を途中からnpmではなくNativeにしてしまっていたからでした。(両者が競合した場合、Nativeが優先される)
https://zenn.dev/minato86/articles/8493ffc8d3975c#claude-code-native-installからnpmの戻すやり方まとめ
下記で今度こそ大丈夫になった気がします。
Claude Codeを完全に削除
下記全て削除 (VSCodeでホームディレクトリごと開いて確認したので、これ以外はないはず)。
また、Native版のClaude Codeは公式の削除コマンドがないとのことでした。
npm uninstall -g @anthropic-ai/claude-code`npm cache clean --forcerm ~/.local/bin/clauderm -rf ~/.local/state/claude/rm -rf ~/.local/share/clauderm -rf ~/.claude.jsonrm -rf .claude.backup.jsonrm -rf .claude## 古いVer.を指定してインストール- `npm install -g @anthropic-ai/claude-code@1.0.24`## ひたすら自動アップデートを無効化する- `claude config set autoUpdaterStatus disabled --global` - `~/.claude.json`で`"autoUpdaterStatus": "disabled"`を確認- `.claude/settings.json`にも自動アップデート無効化を記述(重複あるが、とにかく確実に無効化したいため)```json{ "model": "opus", "env": { "autoUpdaterStatus": "disabled", "CLAUDE_CODE_AUTO_CONNECT_IDE": false, "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL": true, "CLAUDE_CODE_IDE_SKIP_VALID_CHECK": true, "CLAUDE_CODE_ENABLE_TELEMETRY": false, "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": true, "DISABLE_ERROR_REPORTING": true, "DISABLE_TELEMETRY": true, "DISABLE_AUTOUPDATER": true, "DISABLE_MICROCOMPACT": true }, "autoUpdaterStatus": "disabled", "MAX_THINKING_TOKENS": 31999}