{"name":"--disallowed-tools","slug":"disallowed-tools","family":"cli","title":"CLI flags","noun":"CLI flag","description":"Deny rules. A bare tool name removes the matching tools from Claude's context: `\"Edit\"` removes Edit, `\"*\"` removes every tool, and `\"mcp__*\"` removes every MCP tool. A scoped rule such as `Bash(rm *)` leaves the tool available and denies only calls that match [as written](\/docs\/en\/permissions#bash-rule-limits). A rule naming [`EndConversation`](\/docs\/en\/tools-reference#endconversation-tool-behavior) can't remove it while any other tool remains","description_source":"docs","described_by":{"doc":"claude-code\/cli-reference","title":"CLI reference"},"presence":{"first_seen":"2.1.138","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":149,"mined_builds":149,"first_cited":{"version":"2.1.281","released_at":"2026-09-23 17:01:17","spans":2}},"aliases":["--disallowedTools"],"entries":[{"version":"2.1.299","anchor":"tools-gives-a-specific-error-when-given-an-mcp-tool","heading":"--tools explains that it cannot remove MCP tools","line":"Passing an MCP tool to `--tools` now fails with a message saying to use `--disallowed-tools` instead","released_at":"2026-10-14 00:23:19","reason":"found in this entry's text, named in this entry"},{"version":"2.1.299","anchor":"cloud-sessions-disallowed-tools-connector-wildcards-repor","heading":"Cloud sessions now warn that wildcard connector deny rules block nothing","line":"In a cloud session, a `--disallowed-tools` rule with `*` in a claude.ai connector's name is now reported as blocking no connector","released_at":"2026-10-14 00:23:19","reason":"found in this entry's text, named in this entry"},{"version":"2.1.296","anchor":"cloud-sessions-refuse-tools-disallowed-tools-restricti","heading":"Cloud sessions now refuse tool restrictions instead of quietly ignoring them","line":"Starting a cloud session with `--tools` or `--disallowed-tools` restrictions it cannot apply now fails with an error","released_at":"2026-10-09 16:58:10","reason":"found in this entry's text, named in this entry"},{"version":"2.1.285","anchor":"cloud-sessions-tools-handling-and-error-messages","heading":"Cloud sessions gain messages for limiting tools with --tools","line":"Cloud sessions now have messages for limiting a session to the tools you list with `--tools`, covering empty lists, unsupported cases and org limits","released_at":"2026-09-29 17:32:09","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"disallowed-tools-is-now-accepted-when-starting-a-cloud-ses","heading":"--disallowed-tools is now accepted when starting a cloud session","line":"--disallowed-tools is now passed through to new cloud sessions, but still refused when attaching to an existing one","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"disallowedtools-now-forwarded-to-cloud-sessions","heading":"--disallowedTools now forwarded to cloud sessions","line":"Tools you block with --disallowedTools now stay blocked in cloud sessions you start","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"cloud-sessions-clear-errors-for-a-deny-list-on-attach-and-f","heading":"Cloud sessions: clear errors for a deny list on attach and for an unclosed --disallowed-tools rule","line":"Cloud sessions now give clear errors when attach flags would change the deny list, or a --disallowed-tools rule has an unclosed parenthesis","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.281","anchor":"cloud-sessions-clearer-tools-rejection-disallowed-tool","heading":"Cloud sessions: clearer --tools rejection; --disallowed-tools no longer listed as rejected","line":"Cloud sessions reject `--tools` with a clearer message, and `--disallowed-tools` is no longer on the rejected list","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text, named in this entry"},{"version":"2.1.257","anchor":"allowmanagedpermissionrulesonly-semantics-clarifiedexpanded","heading":"allowManagedPermissionRulesOnly semantics clarified\/expanded","line":"The allowManagedPermissionRulesOnly description now spells out exactly which rule sources it ignores and which still apply.","released_at":"2026-09-01 17:15:33","reason":"found in this entry's text"},{"version":"2.1.242","anchor":"cloud-hosted-sessions-now-refuse-local-cli-options-instead-o","heading":"Cloud-hosted sessions now refuse local CLI options instead of quietly dropping them","line":"Running with --cloud now tells you which local CLI options were ignored or refused, and why.","released_at":"2026-08-24 19:16:14","reason":"found in this entry's text"}],"entries_total":13,"docs":[{"source":"claude-code","path":"cli-reference","title":"CLI reference","documented":true},{"source":"claude-code","path":"fullscreen","title":"Fullscreen rendering","documented":false},{"source":"claude-code","path":"self-hosted-environments-configuration","title":"Customize sessions in self-hosted environments","documented":false},{"source":"claude-code","path":"desktop","title":"Desktop application","documented":false},{"source":"claude-code","path":"monitoring-usage","title":"Monitoring","documented":false},{"source":"claude-code","path":"permissions","title":"Configure permissions","documented":false},{"source":"claude-code","path":"settings-reference","title":"All settings","documented":false},{"source":"claude-code","path":"sub-agents","title":"Create custom subagents","documented":false},{"source":"claude-code","path":"tools-reference","title":"Tools reference","documented":false}],"docs_total":9,"gates":[],"related":[{"name":"--disallowed","slug":"disallowed","description":null},{"name":"--disallowedTools","slug":"disallowedtools","description":"Deny rules. A bare tool name removes the matching tools from Claude's context: `\"Edit\"` removes Edit, `\"*\"` removes every tool, and `\"mcp__*\"` removes every MCP tool. A scoped rule such as `Bash(rm *)` leaves the tool available and denies only calls that match [as written](\/docs\/en\/permissions#bash-rule-limits). A rule naming [`EndConversation`](\/docs\/en\/tools-reference#endconversation-tool-behavior) can't remove it while any other tool remains"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/cli\/disallowed-tools","family_url":"https:\/\/changelogs.core-directive.com\/reference\/cli.json"}