Feature Request: Per-Command Thinking Mode Configuration
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 commandfalse- 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
- Performance: Reduce latency and token usage for procedural commands
- User experience: Eliminate need for manual Tab toggling
- Intent clarity: Command authors can specify optimal thinking mode for their use case
- 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.json→alwaysThinkingEnabled - Command definition location:
.claude/commands/*.md - Current thinking mode controls: global setting, Tab toggle, prompt keywords (
"think hard", etc.)
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗