{"version":"2.1.269","anchor":"plugin-hooks-engine-gains-new-event-types-toolcheck-confi","canonical_anchor":"plugin-hooks-engine-gains-new-event-types-toolcheck-confi","heading":"New plugin hook events for tool checks, config changes, and sessions","tier":"use","area":"Plugin Hooks","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269\/e\/plugin-hooks-engine-gains-new-event-types-toolcheck-confi","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.269","markdown":"### New plugin hook events for tool checks, config changes, and sessions\n\nPlugins\/hooks can now react to tool.check, config.set, config.describe, session.attach, session.detach, and plugin.register events\n\n**What**\n\n- The plugin hook system (the mechanism plugin scripts use to observe or intervene in Claude Code's behavior) adds new event types: `tool.check` (a dry-run check of whether a tool call would be permitted, without actually running it), `config.set` and `config.describe` (observe or gate configuration changes), `session.attach` and `session.detach` (fired when a session's viewport\/surface, or client, attaches or detaches, carrying details like surface, clientId, and detach reason), and `plugin.register`.\n\n- `tool.check` handlers can respond with a decision of `allow`, `ask`, or `deny` (plus an optional reason\/rule) for a given tool call.\n\n- The old `turn.complete` handler was replaced with a new implementation.\n\n- The SDK's own request-normalization layer also gained `tool.check`, `config.set`, and `config.describe` as pass-through operations, alongside existing ones like `tool.describe` and `command.run`.\n\n**Why** These new event types let plugins and hooks do more than just intercept tool calls after the fact \u2014 they can pre-check permissions, watch config changes, and track session lifecycle, making more sophisticated plugin behavior possible.\n\n- Area: Plugin Hooks\n- Names: `tool.check`, `config.set`, `config.describe`, `session.attach`, `session.detach`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 4\/5"}