Feature Request: Per-Command Thinking Mode Configuration

Resolved 💬 5 comments Opened Nov 8, 2025 by NathanSmeltzer Closed Jan 17, 2026

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.)

View original on GitHub ↗

This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗