[BUG] Settings not applied: alwaysThinkingEnabled ignored and inconsistent permission behavior
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
.claude/settings.json configuration is not being applied correctly. Two main issues:
alwaysThinkingEnabled: trueis completely ignored - no thinking blocks appear in the
UI despite being enabled
- Bash permission allow list behaves inconsistently -
bun run lint(matching the allow
pattern "bun run lint*") was blocked on first attempt but succeeded on second attempt
- Message truncation - assistant response was cut off mid-sentence at the exact point of
referencing a thinking block tag
The assistant confirmed it is generating thinking blocks, but they are not visible in the UI.
Settings file exists at the correct location and Claude Code was restarted after settings
modification.
What Should Happen?
With alwaysThinkingEnabled: true in settings:
- Thinking blocks should be visible in all assistant responses
With bash allow list configured:
- Commands matching allow patterns (like
"bun run lint*") should execute without permission
prompts or blocks
Error Messages/Logs
When first attempting to run `bun run lint`, the following error was shown:
The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was
a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for
the user to tell you how to proceed.
The second attempt of the same command succeeded without any changes.
Message truncation example - assistant's message ended abruptly:
⏺ That's definitely a bug then. The facts:
1. Thinking blocks: I am generating them (in `
Steps to Reproduce
- Create
.claude/settings.jsonwith the configuration below - Restart Claude Code session
- Request: "please lint"
- Observe: First attempt is blocked/rejected
- Request again: "please lint"
- Observe: Second attempt succeeds
- Throughout: No thinking blocks visible despite
alwaysThinkingEnabled: true
Claude Model
Sonnet (default)
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.0.28
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Warp
Additional Information
Configuration file (.claude/settings.json):
```json
{
"alwaysThinkingEnabled": true,
"permissions": {
"bash": {
"allow": [
"bun run lint*",
"bun run test*",
"bun run types:check*",
"bun run types:generate*",
"git status*",
"git diff*",
"git log*",
"git show*",
"ls*",
"pwd"
]
}
},
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "FILE=$(jq -r '.tool_input.file_path' 2>/dev/null || echo ''); case
\"$FILE\" in .env|credentials|secrets*) echo 'Blocked: sensitive file' >&2; exit 1;; esac"
}
]
},
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "CMD=$(jq -r '.tool_input.command' 2>/dev/null || echo ''); if echo
\"$CMD\" | grep -q 'deploy'; then cd [PATH REDACTED] && bun run types:check
|| (echo 'Build check failed - fix errors before deploying' >&2; exit 1); fi"
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "cd [PATH REDACTED] && bun run lint"
},
{
"type": "command",
"command": "FILE=$(jq -r '.tool_input.file_path' 2>/dev/null || echo ''); if [[
\"$FILE\" == *package.json ]]; then echo '💡 Remember: run bun install to update lockfile'
>&2; fi"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "echo '\n💡 Consider running: bun run test' >&2"
}
]
}
],
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "cd [PATH REDACTED] && test -f .env.dev && echo '✓
Environment ready' || echo '⚠️ Missing .env.dev'"
}
]
}
],
"Notification": [
{
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Claude needs input\" with title
\"Claude Code\"' 2>/dev/null || true"
}
]
}
]
}
}
14 Comments
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.
I'm also experiencing this issue with
alwaysThinkingEnabled: truebeing ignored.My environment:
Configuration (
~/.claude/settings.json):Behavior:
Tabto enable thinking mode each sessionThis confirms the bug is cross-platform (macOS + Windows), not just macOS-specific. Would appreciate a fix or at least documentation on the expected behavior of this setting.
+1 for prioritizing this fix 🙏
Confirming this issue is still present.
My environment:
Important note: This only started happening for me on v2.0.64. It hasn't been an issue until this build - the setting was being respected in previous versions.
Configuration (
~/.claude/settings.json):Behavior:
Tabto enable thinking mode each sessionalwaysThinkingEnabled: truesetting in settings.json is being ignoredThis appears to be a regression introduced in a recent version.
I'm having the same issue and I noticed it started prior to 2.0.64 (at least in 2.0.62).
I'm using Linux (6.6.107-1-MANJARO) and Claude Code CLI via Terminal.
Same issue here, using MacOS 26.1 and Claude Code CLI via Terminal. Reverting to 2.0.61 fixed the issue
Confirming this issue on macOS (Darwin 24.5.0) with Claude Code v2.0.62
Same problem here:
.claude/settings.local.json
session
Workaround that works: Using MAX_THINKING_TOKENS environment variable
instead:
export MAX_THINKING_TOKENS=16000
This reliably enables thinking mode on startup, while alwaysThinkingEnabled
does not.
Fixed in
2.0.67apparently:<img width="1279" height="396" alt="Image" src="https://github.com/user-attachments/assets/258dde1c-f709-45c9-b085-320b12fa7758" />
edit: and
alwaysThinkingEnabledremoved from settings docs: https://code.claude.com/docs/en/settingsI'm experiencing the opposite problem -
alwaysThinkingEnabled: falseis being ignored and thinking mode remains active. This suggests the setting isn't being respected in either direction since v2.0.67.@antoniocascais The link you pasted _does_ include the
alwaysThinkingEnabledsetting, implying it should still be possible to override the default behavior. This is extra frustrating since v2.0.67 also removed the tab shortcut to quickly toggle thinking mode.<img width="1516" height="592" alt="Image" src="https://github.com/user-attachments/assets/416d63ba-41a9-4e14-aadf-dbe883dfc111" />
---------------------------------------
Edit: Here's my minimal config file:
@vcekron thanks for pointing that out.
I checked and they added it to the docs again.
On 11th it was not in the docs :D
https://web.archive.org/web/20251211233922/https://code.claude.com/docs/en/settings
@antoniocascais Ah, gotcha! Thanks for the clarification.
As a slight aside, now that the bug is "reversed," in the sense that the default behavior is to enforce thinking but Claude still ignores the
alwaysThinkingEnabledvalue, the best way I have found to avoid the thinking mode except when explicitly desired is toechotheMAX_THINKING_TOKENSvariable before calling Claude.So, something like:
Usage:
claude→ No thinking (default)claude-think→ Thinking enabledThis issue has been automatically closed due to 60 days of inactivity. If you're still experiencing this issue, please open a new issue with updated information.
This issue was closed incorrectly despite recent human comments. This behavior of the bot is reported at https://github.com/anthropics/claude-code/issues/16497. Please upvote that issue, so maybe it gets noticed.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.