claude-code icon indicating copy to clipboard operation
claude-code copied to clipboard

Feature Request: Per-Command Thinking Mode Configuration

Open NathanSmeltzer opened this issue 2 months ago • 1 comments

Summary

Add support for configuring thinking mode on a per-slash-command basis via frontmatter settings in command definition files (.claude/commands/*.md).

Problem Statement

Currently, thinking mode is controlled globally via ~/.claude/settings.json (alwaysThinkingEnabled) or manually toggled per-session using the Tab key. This creates friction for procedural commands where thinking mode adds latency and token usage without meaningful benefit.

Use case: Commands like /commit and /pr-up follow deterministic workflows:

  • Run predetermined git commands
  • Apply pattern-based formatting
  • Execute standard security checks

These don't require extended reasoning, making thinking mode overhead unnecessary. However, users who benefit from thinking mode for complex tasks must manually toggle it off/on around these commands.

Proposed Solution

Add optional thinking_mode field to slash command frontmatter:

---
description: Create a git commit with a meaningful message
thinking_mode: false
---

Supported values:

  • true - Force enable thinking mode for this command
  • false - Force disable thinking mode for this command
  • (unset/omitted) - Use global setting (current behavior)

Example Use Cases

Simple procedural command (.claude/commands/commit.md):

---
description: Create a git commit with a meaningful message
thinking_mode: false
---

Complex reasoning command (.claude/commands/analyze-architecture.md):

---
description: Analyze system architecture and suggest improvements
thinking_mode: true
---

Default behavior (.claude/commands/refactor.md):

---
description: Refactor code following best practices
# thinking_mode unset - uses global setting
---

Benefits

  1. Performance: Reduce latency and token usage for procedural commands
  2. User experience: Eliminate need for manual Tab toggling
  3. Intent clarity: Command authors can specify optimal thinking mode for their use case
  4. Backward compatible: Omitting the field preserves current behavior

Alternative Considered

Session-based toggle: Continue using Tab key to toggle thinking mode manually.

  • Rejected because: Requires user to remember to toggle before/after specific commands, adding cognitive overhead and reducing automation benefits of slash commands.

Additional Context

  • Global setting location: ~/.claude/settings.jsonalwaysThinkingEnabled
  • Command definition location: .claude/commands/*.md
  • Current thinking mode controls: global setting, Tab toggle, prompt keywords ("think hard", etc.)

NathanSmeltzer avatar Nov 08 '25 18:11 NathanSmeltzer

This issue has been inactive for 30 days. If the issue is still occurring, please comment to let us know. Otherwise, this issue will be automatically closed in 30 days for housekeeping purposes.

github-actions[bot] avatar Dec 09 '25 10:12 github-actions[bot]

I really like this feature. But I guess this will not be prioritised by the team yet going by the amount of other issues.

ruchernchong avatar Dec 16 '25 17:12 ruchernchong