Open6

"あの頃"の強かったClaude Codeを少しでも取り戻す方法

動詞動詞

みなさんが最近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=0
CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL=1
CLAUDE_CODE_IDE_SKIP_VALID_CHECK=1

オートアップデートを停止する、その他

オートアップデートを無効にする。
その他、無駄なトラフィックやテレメトリーなどをまとめて停止しておく。

DISABLE_AUTOUPDATER=1
CLAUDE_CODE_ENABLE_TELEMETRY=0
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
DISABLE_ERROR_REPORTING=1
DISABLE_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以前が好ましい気がする)
npm install @anthropic-ai/claude-code@1.0.24 -g
# Claude Codeのオートアップデートを停止
claude config set -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 mcp add 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で指示しておくと良い。

kyohei_nft(へいきょ)kyohei_nft(へいきょ)

記事とても助かりました🙏

一連の手順で安心していたら、なぜか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 --force
rm ~/.local/bin/claude
rm -rf ~/.local/state/claude/
rm -rf ~/.local/share/claude
rm -rf ~/.claude.json
rm -rf .claude.backup.json
rm -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
}