Claude Codeを使っていると、「最新が必ずしも最適とは限らない」という、わりとAIツールあるあるにぶつかります。今回紹介する記事は、Claude CodeをOpus 4.6に固定して使いつつ、普段のClaude Code環境はそのままにしておくための方法を解説したものです。
これ、地味にかなり大事です。
AIアシスタントって、モデルだけでなく、CLIの動き方や内部の振る舞いまで更新で変わることがあるので、昨日まで安定していたワークフローが急にズレることがあります。筆者はそこをかなり実務的に見ていて、「便利だけど、勝手に変わるのは困る」という気持ちがよく伝わってきます。正直、すごくわかる話です。
--model でモデルを固定しても、CLI本体の挙動までは固定できないclaude46 という別コマンド**を用意する方法を紹介claude46 は Claude Code 2.1.110 に固定し、Opus 4.6 1M をデフォルトで使うclaude 環境は壊さない記事の中心はここです。
Claude Codeは更新されるたびに、単に「使うモデル」が変わるだけではありません。
その裏側で動く harness(ここでは、AIにツールを渡したり、会話の流れを管理したりするCLIの土台みたいなもの)や、system prompt(AIへの基本ルール)、tool-calling behavior(外部ツールの呼び出し方)、context management(文脈の持ち方)まで変わることがあります。
つまり、--model でモデル名を指定しても、完全に昔の挙動には戻らないわけです。
このあたり、AIツールは「モデルが同じなら同じ結果」と思いがちですが、実際はそう単純じゃない。ここが面白くもあり、面倒でもあります。
筆者は、自分で作った skills や agents、プロジェクトのワークフローが更新後に少しずつ違う動きをするのを感じたそうです。
「悪くなった」とまでは言わないけれど、予測可能性が落ちる。これが困る、という話です。AI支援開発では、結果の良し悪し以上に「毎回ほぼ同じように動くこと」が重要だったりします。これはかなり実践的な視点だと思います。
claude46 を作る筆者が作ったのは、**claude46 という別コマンド**です。
これを使うと、次のような状態になります。
claude はそのまま残るこの設計がうまいです。
「古い版を入れる」のではなく、別名の安全な実行口を作る感じですね。これなら、最新を試したいときは通常の claude、安定した挙動がほしいときは claude46 と使い分けられます。個人的には、この“逃げ道”を作る発想がとても良いと思います。
記事では、ワンライナーで入れられると案内しています。
curl -fsSL https://raw.githubusercontent.com/sparklingneuronics/claude-code-helpers/v0.2.0/install-claude46.sh | bash
irm https://raw.githubusercontent.com/sparklingneuronics/claude-code-helpers/v0.2.0/install-claude46.ps1 | iex
インストール後は、claude の代わりに claude46 を使います。
ただし、こういう curl | bash や irm | iex は便利な反面、中身を確認してから実行するのが本来は安全です。この記事でもオープンソースのリポジトリが提示されているので、気になる人は先にコードを見たほうがいいでしょう。便利さと慎重さのバランス、大事です。
仕組みもシンプルです。
~/.local/share/claude46/ にダウンロードDISABLE_AUTOUPDATER=1DISABLE_UPDATES=1ANTHROPIC_MODEL=claude-opus-4-6[1m]exec で起動
npm install --prefix を使って %LOCALAPPDATA%\claude46\ にインストール.cmd ラッパーを作成要するに、「起動時に環境を整えて、固定版Claude Codeを動かす」ということです。
環境変数というのは、プログラムに「今回はこう動いてね」と伝える見えない設定値だと思えばOKです。

このやり方の良いところは、既存のインストールをいじらないこと。
だから、通常の claude は更新を続けられるし、claude46 は安定版として残せる。分離がきれいです。こういう設計は、運用の現場だとかなり信頼されます。
筆者は「万能ではない」とちゃんと書いています。ここも好感が持てます。

たとえば、コンパイラやframeworkを固定して使うのと似ています。
新機能をすぐ取り込むより、「自分がアップグレードするタイミングを選べる」ことが大事なんですね。
これ、AI時代の開発ではかなり本質的だと思います。
AIツールは速く進化する一方で、毎回動きが変わると、検証コストやメンタルコストが増えます。だからこそ、安定版の避難所を持っておく価値があるわけです。

この話は単なる小技ではなくて、AIツールとの付き合い方そのものを示している気がします。
昔のソフトウェアは「バージョンを固定する」が当たり前でした。
でもAIツールは、モデルだけでなく周辺の挙動まで変わるので、固定すべき対象が増えています。
その結果、**“同じ名前のコマンドでも中身は別物になりうる”**という、なかなか厄介な世界になっているわけです。
だから今回の claude46 は、単なる便利ツール以上に、
「AI開発でも、安定運用のためのバージョン管理が必要だよね」というメッセージを持っているように感じました。
この感覚、今後もっと重要になるのではないかと思います。

claude46 を使うと、Opus 4.6で固定した別コマンドを作れるclaude はそのまま残るので、最新と安定版を使い分けやすいこういうツール、派手さはないけれど実務ではかなり効きます。
個人的には、AIを“賢い道具”として使うほど、こうした地味で堅実な工夫が価値を持つと思います。
参考: How to keep Claude Code on Opus 4.6 without breaking your normal install