Skip to content

Thinking Modes & Extended Reasoning

Claude Code can show you its thinking process. For complex problems, it can engage extended reasoning—thinking deeply before responding. Understanding these modes helps you leverage Claude’s full problem-solving capability.

When Claude works on a problem, it thinks through the solution internally. You can see this thinking process displayed in the interface:

<thinking>
The user wants to add authentication. I need to consider:
- Which auth method fits their stack?
- What security requirements apply?
- How does this integrate with existing code?
</thinking>
Based on your Flask setup, I recommend JWT authentication...

Visible thinking helps you:

  • Understand Claude’s reasoning - See why it chose an approach
  • Catch misunderstandings early - Notice if Claude misread requirements
  • Learn problem-solving patterns - Observe how to break down complex tasks
  • Trust the output - Verify the logic behind suggestions

Claude has two thinking modes:

ModeWhen UsedCharacteristics
NormalMost tasksQuick, focused reasoning
ExtendedComplex problemsDeep, multi-step reasoning

For standard tasks, Claude thinks briefly:

> add input validation to the login form
<thinking>
Need to validate email format and password requirements.
Check existing validation patterns in the codebase.
</thinking>
I'll add validation to the login form...

For complex problems, Claude engages extended reasoning automatically:

> debug why the payment webhook fails intermittently
<thinking>
This is a complex debugging task. Let me think through this systematically:
1. Intermittent failures suggest:
- Race condition?
- Network timeout?
- Webhook signature validation timing out?
2. Need to check:
- Webhook logs for patterns
- Signature verification code
- Database transaction handling
3. Common causes for Stripe webhooks:
- Idempotency key issues
- Database locks during high traffic
- Signature timestamp expiry (5 min window)
Let me start by examining the webhook handler code...
</thinking>
I'll investigate the webhook handler. Based on the symptoms...

Claude automatically engages extended reasoning for:

> the authentication flow works locally but fails in production
> users report intermittent login issues
> no obvious errors in logs

Why extended thinking helps: Multi-variable problems require systematic elimination of possibilities.

> should we use microservices or a monolith for this new feature?
> consider: team size (4 devs), traffic (10k DAU), deployment complexity

Why extended thinking helps: Weighing tradeoffs requires considering multiple factors simultaneously.

> review this authentication module for security vulnerabilities
> focus on: injection attacks, session handling, cryptographic issues

Why extended thinking helps: Security analysis requires thinking like an attacker, considering edge cases.

> this endpoint is slow (p95: 2 seconds)
> profile and suggest optimizations

Why extended thinking helps: Performance issues often have multiple contributing factors requiring systematic analysis.

> refactor the legacy order processing system to use event sourcing
> maintain backward compatibility during transition

Why extended thinking helps: Large refactors require understanding dependencies and planning migration paths.

You can explicitly request deeper thinking:

> think carefully about the best approach for [problem]
> before implementing, analyze all the edge cases
> use extended reasoning to debug [complex issue]

Keywords that trigger extended thinking:

  • “think carefully”
  • “analyze thoroughly”
  • “consider all possibilities”
  • “systematic analysis”
  • “what are all the ways this could fail?”
<thinking>
1. Problem analysis
- What we know
- What we don't know
- Assumptions to verify
2. Possible approaches
- Option A: [pros/cons]
- Option B: [pros/cons]
3. Recommendation
- Why this approach
- Risks and mitigations
</thinking>

Good signs:

  • Breaks problem into components
  • Considers multiple approaches
  • Identifies assumptions
  • Thinks about edge cases

Warning signs:

  • Jumps to conclusions
  • Ignores constraints you mentioned
  • Missing obvious considerations

If thinking goes off track, interrupt:

> stop - your thinking is missing [important constraint]
> reconsider with this additional context: [clarification]

Extended thinking uses more tokens:

ModeTypical Token CostExample
Normal thinking+100-300 tokensSimple feature
Extended thinking+500-2000 tokensComplex debugging

The thinking tokens count as input tokens in your usage.

Extended reasoning takes longer:

  • Normal: 2-10 seconds
  • Extended: 10-30 seconds (or more for very complex problems)

For most tasks, let Claude decide whether to use extended reasoning:

# Good: Let Claude assess complexity
> debug the payment processing issue
# Unnecessary: Forcing extended thinking for simple tasks
> think deeply and carefully about adding this print statement

Request extended thinking when making important decisions:

> we need to choose between PostgreSQL and MongoDB for user data
> think through the tradeoffs given our requirements: [list requirements]

If thinking goes wrong, stop it early:

> your analysis is missing the fact that we use Redis for caching
> restart your thinking with that in mind

When Claude produces good analysis, save it:

> save this analysis to docs/architecture-decisions/auth-approach.md

Future sessions can reference it without re-thinking.

Thinking and plan mode serve different purposes:

FeatureThinkingPlan Mode
PurposeInternal reasoningUser interaction
WhenAlways (visible or not)When planning complex features
OutputThinking blocksClarifying questions + plan
Your roleObserverParticipant (answer questions)

They work together:

# Plan mode with extended thinking
> [in plan mode] add a notification system
<thinking>
Complex feature. Need to clarify:
- Notification types (email, push, in-app)
- Delivery mechanism
- User preferences
- Scale considerations
</thinking>
[Claude uses AskUserQuestion tool to clarify]
<thinking>
Based on answers:
- Email + in-app notifications
- Using SendGrid for email
- Need: templates, queueing, user prefs
</thinking>
Here's the implementation plan...

You can’t disable thinking (it’s core to how Claude works), but you can request more concise responses:

> be concise, minimal explanation

“Why doesn’t Claude always use extended reasoning?”

Section titled ““Why doesn’t Claude always use extended reasoning?””

Extended reasoning is expensive (time + tokens). Claude uses it when the problem requires it. For simple tasks, normal thinking is sufficient and faster.

”Can I see thinking for past responses?”

Section titled “”Can I see thinking for past responses?””

Thinking is shown during generation. If you missed it, you can ask:

> explain your reasoning for that last suggestion

“Does thinking affect output quality?”

Section titled ““Does thinking affect output quality?””

Yes—extended thinking improves quality for complex problems. Research shows LLMs perform better on hard tasks when they “think out loud.”

> the webhook endpoint returns 200 but payments aren't processed
<thinking>
Intermittent issue. Possible causes:
1. Race condition in payment processing
2. Database transaction not committed
3. Webhook processed but business logic fails silently
4. Return 200 before async job completes
Need to check: logs, database, async job queue
</thinking>
> should we use WebSockets or Server-Sent Events for real-time updates?
<thinking>
Requirements: real-time updates to browser clients
WebSockets:
- Pro: Bidirectional, widely supported
- Con: More complex, requires connection management
- Con: Harder to load balance
Server-Sent Events:
- Pro: Simpler, auto-reconnect built-in
- Pro: Works over standard HTTP
- Con: One-way only (server → client)
Given the use case (server pushes updates, client doesn't need to send data):
SSE is simpler and sufficient.
</thinking>
> review this authentication code for security issues
<thinking>
Security review checklist:
1. Password storage: bcrypt/argon2? ✓
2. Session handling: secure cookies?
3. SQL injection: parameterized queries?
4. Rate limiting on login?
5. Password reset token expiry?
Checking each...
</thinking>