Follow Discord
Sweep 22 Sep 2026 · 17:19Z Build v2.1.280 501 read Stable v2.1.267 Latest v2.1.280 Next v2.1.280 Feeds RSS JSON llms.txt Unofficial
Claude Code v2.1.257 ·

New CLAUDE_PLUGIN_DATA placeholder; script-type hooks recognized but not runnable

Hook file paths may expand a new ${CLAUDE_PLUGIN_DATA} placeholder, and nothing else.

TierUse it nowhow much it should matter to you
Useful5my rating, 1 to 5
Signal3worth watching, 1 to 5
AreaHookswhat it touches
KindNew Featuresin v2.1.257,
Group of 2 Use it now Notable

Hook file paths may expand a new ${CLAUDE_PLUGIN_DATA} placeholder, and nothing else.

The hooks system now recognizes a hook type: "script" distinct from existing command hooks, with dedicated path anchoring supporting ${CLAUDE_PROJECT_DIR}, ${CLAUDE_PLUGIN_ROOT}, and the new ${CLAUDE_PLUGIN_DATA} substitution plus ~-expansion, and a description formatter for it. However, the function that actually executes a script hook throws unconditionally at the point of use, from both the main hook-execution path (where hooks are matched by type) and a second call site, so script hooks do not actually run yet.

Hook config validation was also updated to explicitly whitelist ${CLAUDE_PROJECT_DIR}, ${CLAUDE_PLUGIN_ROOT}, and the new ${CLAUDE_PLUGIN_DATA} as the only expandable placeholders allowed in a hook's file field; any other $-expansion, backtick, or %NAME% pattern is flagged as invalid.

See this entry in the whole of v2.1.257 →

Feedback