Skip to content

Why Is Claude Opus Slow? 5 Proven Fixes to Restore Performance

Slow computer performance frustrated

Why is Claude Opus Slow?

Claude Opus used to be my go-to model. It was the most capable, the smartest, the one I trusted for complex tasks. Then something changed.

Responses got slower. The quality felt more superficial. Tasks that used to take minutes now took longer, and the results weren’t as good. I thought maybe I was imagining it, or that Anthropic had quietly nerfed the model.

I wasn’t alone. On Reddit, I found multiple users reporting the same thing:

User Reports
"Opus has been performing poorly for a while now"
"It used to be their most capable model, and now there are many people
who find it more superficial"
"I've noticed a significant slowdown"

I spent a week investigating. Here’s what I found and how I fixed it.

Fix #1: Disable Adaptive Thinking

This was the biggest surprise. Claude Opus has a feature called “adaptive thinking” or “adaptive reasoning” that can significantly slow down responses without improving output quality for many tasks.

I tried disabling it with an environment variable:

disable adaptive thinking
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1

Or if you’re using Claude Code directly, add it to your shell config:

add to ~/.zshrc or ~/.bashrc
echo 'export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1' >> ~/.zshrc
source ~/.zshrc

The difference was immediate. Responses were noticeably faster. The quality was the same or better for most coding tasks.

What didn’t work: I initially tried toggling settings in the UI, but the environment variable approach was the only thing that consistently worked.

Fix #2: Manage Context Window Size

Claude Opus now defaults to a 1M token context window. That sounds amazing, but here’s the catch: performance degrades significantly when you exceed 200k tokens.

I didn’t realize my sessions were growing that large. Between long conversations, large code files, and accumulated context, I was regularly hitting 300k+ tokens.

The fix is simple - use the /compact command to reduce context:

using compact command
/compact

This tells Claude to summarize and compress the conversation context, bringing it back to a manageable size.

I also started monitoring my token usage:

Token Management Checklist
- Run /compact every 50k tokens or so
- Start fresh sessions for new features
- Don't keep large files in context unless needed
- Use /compact before complex reasoning tasks

What didn’t work: I tried manually asking Claude to “forget” earlier parts of the conversation, but that was inconsistent. The /compact command is the proper tool for this.

Fix #3: Update to Latest Version

This one embarrassed me. I had been running version 0.81 when 0.92 was the latest. The version gap was causing compatibility issues and performance problems.

Check your current version:

check claude code version
claude --version

Update to the latest:

update claude code
npm update -g @anthropic-ai/claude-code

Or if you installed via a different method:

alternative update methods
# If installed via Homebrew
brew upgrade claude-code
# If installed via pip
pip install --upgrade claude-code

After updating, I saw a noticeable improvement in both speed and reliability.

What didn’t work: I assumed automatic updates were working. They weren’t. Manual version checks are now part of my weekly routine.

Fix #4: Use the Right Model for the Task

Not every task needs Opus. I was using Opus for everything - simple edits, quick questions, routine refactoring. That’s wasteful and slow.

Here’s the model selection strategy I now use:

Model Selection Guide
Task Type Recommended Model
─────────────────────────────────────────────────
Simple edits/formatting Haiku 4.5
Code review/cleanup Haiku 4.5
Documentation updates Haiku 4.5
Standard features Sonnet 4.5
Debugging Sonnet 4.5
Architecture decisions Opus 4.5
Complex refactoring Opus 4.5
Novel problem solving Opus 4.5

Using Haiku for simple tasks made my overall workflow 3x faster. Haiku handles 90% of my daily work with 90% of Sonnet’s capability.

What didn’t work: I tried to force everything through Opus thinking it would give “better” results. For simple tasks, it just added latency without quality improvement.

Fix #5: Monitor and Debug Performance

When Claude feels slow, I now have a systematic way to diagnose:

Performance Diagnosis Steps
1. Check token count: Is it over 200k?
→ If yes, run /compact
2. Check model selection: Is Opus necessary?
→ If no, switch to Sonnet or Haiku
3. Check version: Am I on latest?
→ If no, update
4. Check adaptive thinking: Is it enabled?
→ If yes, verify CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
5. Check network: Is API latency high?
→ If yes, wait or try different time

I also started a log to track patterns:

Performance Log Example
Date Time Task Model Tokens Duration Notes
2026-04-09 10:00 Simple refactor Haiku 15k 12s Fast
2026-04-09 10:15 Complex debug Sonnet 45k 45s Good
2026-04-09 11:00 Architecture Opus 180k 2m Slow, should have compacted

This helped me identify patterns and optimize my workflow.

What didn’t work: I tried various “optimization” settings in config files, but most were placebo effects. The fundamentals (context size, model selection, version) mattered far more.

Summary of Fixes

Quick Reference Card
Problem Fix
────────────────────────────────────────────────────────
Slow responses Disable adaptive thinking
export CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1
Context too large Run /compact at 200k+ tokens
Outdated version Update to latest
npm update -g @anthropic-ai/claude-code
Wrong model for task Use Haiku for simple tasks
Use Sonnet for standard work
Use Opus for complex reasoning
Performance issues Follow diagnosis steps above

After applying all five fixes, my Claude Opus experience returned to what it was. The model is still the most capable for complex tasks, but now I use it strategically instead of as a default.

The key insight: Claude Opus isn’t slow because Anthropic nerfed it. It’s slow because we’re using it wrong. Manage your context, pick the right model, keep your tools updated, and disable unnecessary overhead. Performance returns.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments