Why is Claude Code slow? Causes and fixes

Claude Code is slow for one of three reasons: the model, a huge conversation, or something on your machine. How to tell which, and the fix for each.

Contents

Claude Code is slow for one of three reasons: the model is thinking harder than the task needs, the conversation has grown huge, or something on your machine is in the way, such as a slow hook or a project on a Windows drive under WSL. Lower the effort level, /clear or /compact, and try claude --safe-mode once.

The trick is telling them apart, because each has a different fix. Everything below comes from Anthropic's Claude Code docs, read on 22 October 2026, plus one slowdown of our own.

Which kind of slow is it?#

What you see Likely cause First thing to try
Long pauses before each answer, even on small tasks Effort level higher than the task needs /effort low or /effort medium
Fine in a new session, sluggish hours into an old one A huge conversation /clear, or /compact with a focus
A memory warning, or the terminal itself lags The session's memory use Restart, then claude --continue
Slow from the first prompt, every session Something in your setup claude --safe-mode
Search slow or missing files on Windows Project on /mnt/c under WSL Move it to your Linux home folder
Every request slow or failing at once The service itself Check Anthropic's status page

Why is Claude Code slow to answer? The model and its effort#

Most of the wait is the model working. Two settings change that.

Effort level. Effort controls how much the model reasons on each step. Anthropic's model configuration page gives the trade-off: "Lower effort is faster and cheaper for straightforward tasks, while higher effort provides deeper reasoning for complex problems." The levels are low, medium, high, xhigh and max, depending on the model. As of 22 October 2026, Opus 5.5, Sonnet 5.5 and Haiku 5.5 default to medium; most other models that support effort default to high, and Opus 4.7 to xhigh. Run /effort to change it mid-session, or start with claude --effort low. What each level is for, and where ultrathink fits, is in Claude Code's effort levels.

The 5.5 models and the Fable models always use extended thinking, so on those, effort is your lever. Anthropic warns that max "may show diminishing returns and is prone to overthinking".

Fast mode. Fast mode runs Claude Opus "up to 2.5x faster at a higher cost per token". It's the same model with a different API setup. As of 22 October 2026 it works on Opus 5.5, Opus 5 and Opus 4.8, costs $8 per million input tokens and $40 per million output tokens on Opus 5.5, and on Pro, Max, Team and Enterprise it's paid from usage credits only. Turning it on deep into a conversation is the expensive moment: you pay the fast-mode price once for the whole context so far. Toggle it with /fast.

You can combine both: fast mode with a lower effort level is the quickest setup for small tasks.

Why does Claude Code get slower the longer I use it?#

Claude Code resends the whole conversation with every request, and Anthropic's best practices add that "LLM performance degrades as context fills". A session open all day carries every file read and every test log with it. We explain the mechanics in why Claude Code uses so many tokens.

What helps:

  • /clear between unrelated tasks. It costs nothing and starts the next task light.
  • /compact with a focus at a natural break: /compact keep only the plan and the diff. When to use which is in /compact vs /clear.
  • Subagents for big reads. Exploration runs in its own context, and only a summary comes back.
  • Watch the memory warning. The troubleshooting page says a critical warning appears once a session's heap passes 2.5GB. Restart Claude Code and run claude --continue to resume in a fresh process. Outside fullscreen rendering, /compact frees memory too.
  • If compaction loops with "Autocompact is thrashing", one file or tool output keeps refilling the window. Ask Claude to read it in smaller pieces, or move that work to a subagent.

Long sessions are also where old bugs show. Before v2.1.208, for example, resuming a session that held a huge Markdown table could stall while Claude Code re-rendered it; tables now show their first 200 rows. Keep Claude Code updated.

Is my setup slowing Claude Code down?#

If it's slow from the first prompt, look at what loads with every session.

  1. Start once with claude --safe-mode. It turns off CLAUDE.md, skills, plugins, hooks, MCP servers, custom agents and the rest for that session. Faster there? One of them is the cause. Add them back one at a time.
  2. Check your hooks. A hook runs on every event it matches. A linter or type-check after every edit adds its own run time to every edit. Run /hooks to see what's configured.
  3. Check MCP servers. By default, servers connect in the background and don't hold up startup. A server set to alwaysLoad: true does: startup waits for its tools, up to the 5-second connect timeout. In a script, claude -p with --mcp-config waits for pending servers up to MCP_TIMEOUT (30 seconds by default). Run /mcp to see each server's status and turn off the ones you don't use.
  4. On WSL, keep the project on Linux. Anthropic: working across file systems "may result in fewer-than-expected matches". Move the project from /mnt/c/ to /home/, or run Claude Code natively on Windows.
  5. If search misbehaves, the bundled ripgrep may not run on your system. Install your platform's ripgrep and set USE_BUILTIN_RIPGREP=0; claude doctor then shows your system copy on the Search line.
  6. Keep build output out. The troubleshooting page suggests adding large build folders to .gitignore; Claude's searches skip what git ignores.

When none of that explains it, run /doctor inside a session for a checkup of your install, settings and context use.

Our own slowdown: one huge chat#

We hit the "long history" problem ourselves, in our own app rather than in Claude Code. On 20 October, Shuriken 5.0.0 on the machine we were working at started showing "not reached", reloading its window and dropping agents mid-turn. The cause was one enormous chat: about 120,000 replayed subagent events. Loading it overflowed the stack, froze the background service for 10 to 14 seconds at a time, and the watchdog restarted it, again and again.

We fixed it for 5.1.0: long histories load in steps with bounded memory, and the service guards its own memory before it runs out. The full story is in why chats said "Connection lost". The lesson carries over to any agent tool: the longest conversation someone keeps open is the one to test.

Where Shuriken helps#

Shuriken runs Claude Code itself, so the model and its speed are Anthropic's, and every fix above applies. Two things make the context side easier to see:

  • A context meter by the message box. It opens a map of what fills the chat's context window (system prompt, tools, MCP tools, memory files, messages) with hints such as "close to auto-compact", and for an MCP server that takes space, a button to turn it off for that chat.
  • Spend per source and per project on the Analytics page, so a session that suddenly costs ten times the last one stands out. Checking Claude Code usage covers what Claude Code shows on its own.

Sources

  1. Troubleshooting: performance and stability (Claude Code docs) (accessed 22 October 2026)
  2. Model configuration: effort levels (Claude Code docs) (accessed 22 October 2026)
  3. Speed up responses with fast mode (Claude Code docs) (accessed 22 October 2026)
  4. Connect Claude Code to tools via MCP: tool search and alwaysLoad (Claude Code docs) (accessed 22 October 2026)
  5. CLI reference: --safe-mode, --effort, --continue (Claude Code docs) (accessed 22 October 2026)
  6. Best practices for Claude Code: manage context (Claude Code docs) (accessed 22 October 2026)
  7. Manage costs effectively: extended thinking (Claude Code docs) (accessed 22 October 2026)
  8. Set up Claude Code in a monorepo or large codebase: searches respect .gitignore (Claude Code docs) (accessed 22 October 2026)
  9. Claude status page (Anthropic) (accessed 22 October 2026)

Frequently asked questions

Does a lower effort level make Claude Code faster?

Yes, for simple work. Anthropic's docs say lower effort is faster and cheaper for straightforward tasks, while higher effort reasons more deeply. Change it with /effort or the --effort flag.

Is fast mode worth it?

Only when waiting costs you more than tokens. Fast mode runs Opus up to 2.5x faster at a higher price per token, and on a subscription it is paid from usage credits, not your plan's included usage.

Why is Claude Code slow on WSL?

Usually because the project sits on the Windows file system under /mnt/c. Anthropic's troubleshooting page says reading across file systems is slower and search can return fewer results. Move the project into your Linux home folder, or run Claude Code natively on Windows.

How do I check whether a plugin or MCP server is the problem?

Start a session with claude --safe-mode. It turns off CLAUDE.md, plugins, hooks, MCP servers, skills and the rest of your customisations for that session. If it's fast there, add things back one at a time.

Does a long conversation make Claude Code slower?

It makes every request bigger, because Claude Code resends the whole conversation each time, and a huge session can use a lot of memory. Run /clear between unrelated tasks and /compact on long ones.

Free tools