{"version":"2.1.139","anchor":"hook-and-plugin-commands-gain-safer-exec-form","canonical_anchor":"hook-and-plugin-commands-gain-safer-exec-form","heading":"Hook and Plugin Commands Gain Safer Exec Form","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.139\/e\/hook-and-plugin-commands-gain-safer-exec-form","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.139","markdown":"### Hook and Plugin Commands Gain Safer Exec Form\n\nHook command definitions can now use an explicit `args` array for exec-style invocation. Claude Code validates the common mistake of putting both whitespace in `command` and also supplying `args`, and explains how to split executable and arguments correctly.\n\n**Usage**\n\n`{ \"command\": \"node\", \"args\": [\"script.js\"] }` **Details** - `command` is resolved as an executable when `args` is present. - Arguments avoid shell parsing for quotes, `$`, and backticks. - Plugin and hook substitutions now include `${CLAUDE_PROJECT_DIR}` in more places, including monitor hooks and plugin command paths. **Evidence** Exec-form hook schema and validation (search for `\"Argument list for exec form\"`, `\"Exec form treats \\\"command\\\" as a single executable name\"`, `\"${CLAUDE_PROJECT_DIR}\"`)"}