DEV Community

Dimitar Stoyanov
Dimitar Stoyanov

Posted on

How to keep Claude Code on Opus 4.6 without breaking your normal install

There's been a lot of discussion recently around how Claude Code updates affect behavior, predictability, and token usage.

When Claude Code updates, it's not just the model that changes - the CLI harness, system prompts, tool-calling behavior, and context management all evolve too. Newer is often better. But not always for every workflow.

In my own setup, I noticed that some skills, agents, and project workflows I'd built behaved differently after recent updates. Not necessarily worse, but differently enough that predictability started to matter.

For AI-assisted development, that matters.

The problem

Sometimes you want the latest model. Sometimes you want the setup your workflow was built around.

There's no built-in way to run an older Claude Code version side-by-side with the latest one. If you pin the model with --model, you still get the latest harness — and harness changes can affect behavior just as much as model changes.

The solution: claude46

I made a small open-source helper that gives you a separate claude46 command:

  • Claude Code pinned to 2.1.110 (the pre-Opus-4.7 harness)
  • Opus 4.6 1M as the default model
  • Auto-updates fully blocked for that launcher only
  • Your normal claude install is left untouched and free to update

One-liner install

macOS / Linux:

curl -fsSL https://raw.githubusercontent.com/sparklingneuronics/claude-code-helpers/v0.2.0/install-claude46.sh | bash
Enter fullscreen mode Exit fullscreen mode

Windows (PowerShell):

irm https://raw.githubusercontent.com/sparklingneuronics/claude-code-helpers/v0.2.0/install-claude46.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

Then just run claude46 instead of claude.

Is it better?

Not universally. I still use newer versions. But for workflows tuned around previous behavior — especially skills and agents built on top of Claude Code — having a stable pinned setup is useful.

The same idea as pinning a compiler or framework version: you want to choose when to upgrade, not have it happen under you.

How it works

The bash installer downloads Claude Code 2.1.110 to ~/.local/share/claude46/ and writes a wrapper script that sets DISABLE_AUTOUPDATER=1, DISABLE_UPDATES=1, and ANTHROPIC_MODEL=claude-opus-4-6[1m] before exec-ing the pinned binary.

The Windows installer does the same via npm install --prefix into %LOCALAPPDATA%\claude46\, writing a .cmd wrapper with the same env vars.

Both are tested end-to-end via CI on real runners.

Links

Top comments (0)