{"name":"disallowedTools","slug":"disallowedtools","family":"setting","title":"Settings keys","noun":"settings key","description":"Skills turned into slash commands now keep their menu text, aliases and tool permissions.","description_source":"entry","described_by":{"version":"2.1.225","anchor":"skill-backed-prompt-commands-pass-through-more-metadata"},"presence":{"first_seen":"2.1.301","removed_in":"2.1.302","in_current_build":false,"newest_mined":"2.1.308","builds":1,"mined_builds":149,"first_cited":{"version":"2.1.227","released_at":"2026-08-10 20:56:57","spans":9}},"aliases":[],"entries":[{"version":"2.1.305","anchor":"orphaned-permission-handoff-gets-disallowedtools-and-personw","heading":"Handed-off permission prompts keep your blocked-tool list","line":"A turn handed off after its permission prompt was left unanswered now carries the session's `disallowedTools` list, replacing any other","released_at":"2026-10-20 19:29:36","reason":"found in this entry's text, named in this entry"},{"version":"2.1.285","anchor":"typed-tool-flags-snapshotted-maxturns-passthrough","heading":"Tool restrictions and turn limits now carry over to spawned sessions","line":"Spawned sessions now keep your `disallowedTools` and `tools` restrictions and your `maxTurns` limit","released_at":"2026-09-29 17:32:09","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"sdk-options-disallowedtools-parsed-maxthinkingtokens-check","heading":"SDK options: disallowedTools parsed; maxThinkingTokens check fixed","line":"SDK options now read disallowedTools, and the maxThinkingTokens whole-number check now checks the right value","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"spawned-session-config-now-forwards-disallowedtools-and-take","heading":"Spawned-session config now forwards disallowedTools and takes effort from the right object","line":"Config for spawned sessions now passes on `disallowedTools` and reads the effort level from the correct place","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"remote-session-create-forwards-disallowedtools","heading":"Remote session create forwards disallowedTools","line":"Creating a remote session now sends the caller's disallowedTools, combined with the built-in list for device-bound sessions","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"device-bound-cloud-sessions-now-disallow-the-device-mcp-to","heading":"Device-bound cloud sessions now disallow the device_* MCP tools","line":"Cloud sessions tied to a device now block the device_bash, device_list_dir, device_stage_files and device_commit_files tools","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"disallowedtools-forwarded-in-session-spec","heading":"disallowedTools forwarded in session spec","line":"Session launch settings now pass on the list of tools that are not allowed, along with permission mode, effort and model","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.239","anchor":"remote-control-workers-can-be-handed-mcp-config-and-a-system","heading":"Remote Control workers can be handed MCP config and a system prompt by the daemon, switched off in this build","line":"Remote Control workers could receive MCP config and prompts from the daemon, but no session does.","released_at":"2026-08-21 17:18:54","reason":"found in this entry's text"},{"version":"2.1.238","anchor":"skills-run-as-commands-no-longer-pin-a-model-or-effort-level","heading":"Skills run as commands no longer pin a model or effort level","line":"Skills run as slash commands now inherit your session's model and effort instead of overriding them.","released_at":"2026-08-20 18:01:54","reason":"found in this entry's text"},{"version":"2.1.236","anchor":"deny-rules-match-batched-tools-by-the-original-tool-name","heading":"Deny rules match batched tools by the original tool name","line":"A disallowedTools rule now also blocks the batched wrapper around that tool.","released_at":"2026-08-19 18:45:14","reason":"named in this entry, found in this entry's text"}],"entries_total":14,"docs":[{"source":"claude-code","path":"agent-sdk\/agent-loop","title":"How the agent loop works","documented":false},{"source":"claude-code","path":"agent-sdk\/custom-tools","title":"Give Claude custom tools","documented":false},{"source":"claude-code","path":"agent-sdk\/mcp","title":"Connect to external tools with MCP","documented":false},{"source":"claude-code","path":"agent-sdk\/permissions","title":"Configure permissions","documented":false},{"source":"claude-code","path":"agent-sdk\/python","title":"Agent SDK reference - Python","documented":false},{"source":"claude-code","path":"agent-sdk\/subagents","title":"Subagents in the SDK","documented":false},{"source":"claude-code","path":"agent-sdk\/typescript","title":"Agent SDK reference - TypeScript","documented":false},{"source":"claude-code","path":"agent-teams","title":"Orchestrate teams of Claude Code sessions","documented":false},{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"claude-directory","title":"Explore the .claude directory","documented":false}],"docs_total":12,"gates":[],"related":[],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/disallowedtools","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}