[DOCS] Settings docs missing disableSkillShellExecution setting for skills and commands

Resolved 💬 3 comments Opened Apr 3, 2026 by coygeek Closed Apr 28, 2026

Documentation Type

Missing documentation (feature not documented)

Documentation Location

https://code.claude.com/docs/en/settings

Section/Topic

Available settings table, plus cross-references from the inline shell execution docs for skills and custom commands

Current Documentation

No documentation currently exists for the disableSkillShellExecution setting on the settings page.

Related pages currently document the behavior that the new setting controls:

The ` !<command> syntax runs shell commands before the skill content is sent to Claude. The command output replaces the placeholder, so Claude receives actual data, not the command itself. 1. Each !<command> ` executes immediately (before Claude sees anything) 2. The output replaces the placeholder in the skill content 3. Claude receives the fully-rendered prompt with actual PR data
Custom commands have been merged into skills. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy and work the same way. Your existing .claude/commands/ files keep working.
File format: Skills are directories with SKILL.md; commands are simple markdown files

What's Wrong or Missing?

Claude Code v2.1.91 added disableSkillShellExecution, but the docs do not explain where to configure it, what values it accepts, or that it disables inline shell preprocessing for skill ! blocks, legacy .claude/commands custom slash commands, and plugin commands.

That leaves the docs in an imbalanced state: they explain how to run inline shell commands inside skills and commands, but not how to disable that behavior globally.

Suggested Improvement

Add a disableSkillShellExecution row to https://code.claude.com/docs/en/settings that documents:

  • which settings file(s) and scope(s) support it
  • the expected value(s)
  • exactly what happens to ` !<command> ` blocks when the setting is enabled
  • that it applies to skills, existing .claude/commands custom slash commands, and plugin commands

Then add a short note or cross-reference from the pages that currently document inline shell execution so readers can find the global disable control from the feature docs.

Impact

High - Prevents users from using a feature

Additional Context

Affected Pages:

| Page | Context |
|------|---------|
| https://code.claude.com/docs/en/settings | Available settings table should document disableSkillShellExecution alongside other disable* settings |
| https://code.claude.com/docs/en/skills | Documents shell frontmatter and ` !<command> preprocessing, but not the global setting that disables it |
| https://code.claude.com/docs/en/slash-commands | Legacy/custom slash command route contains the same inline shell execution guidance |
| https://code.claude.com/docs/en/plugins-reference | States that plugin commands are simple markdown files in
commands/, so plugin command behavior needs the same setting coverage |
| https://code.claude.com/docs/en/claude-directory | Shows both skill and command examples that inject shell output with
!... |
| https://code.claude.com/docs/en/tools-reference | Documents
shell: powershell for skill !` blocks, but not the global disable setting |

Total scope: 6 pages affected

Source: Changelog v2.1.91

Exact changelog entry:

Added disableSkillShellExecution setting to disable inline shell execution in skills, custom slash commands, and plugin commands

View original on GitHub ↗

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