{"version":"2.1.304","anchor":"new-settingsread-plugin-event-mods-runtime","canonical_anchor":"new-settingsread-plugin-event-mods-runtime","heading":"Plugins can now supply setting values through a settings.read event","tier":"use","area":"Plugins","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304\/e\/new-settingsread-plugin-event-mods-runtime","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304","markdown":"### Plugins can now supply setting values through a settings.read event\n\nA new settings.read event lets plugin hooks see and override your effective settings, re-checked whenever settings or plugins change\n\n**What**\n\nPlugins are add-on packages, and their hooks are small programs Claude Code runs at set moments. Before, plugin code could only look settings up through a `$.settings.read` helper. Now:\n\n- A new `settings.read` event sends the layers of your effective settings to plugin hooks, and they can answer with their own values to override them.\n\n- `$.settings.read` takes `{ source }`, `{ key }` or nothing; anything else is rejected with an error.\n\n- An answer that no settings key can hold is refused, and the log says \"the settings' own value stands\".\n\n- The combined result is worked out again whenever your settings or the loaded plugins change, and skipped when neither changed. A key whose answer never settles is left out, with a warning that the value in your settings files stands.\n\n**Why**\n\nA plugin can now shape your settings, and its values stay consistent after reloads. If a setting does not match what your settings file says, a plugin hook may be overriding it; the log notes when a hook's answer was refused.\n\n- Area: Plugins\n- Names: `settings.read`\n- Tier: Use it now\n- Useful: 5\/5\n- Signal: 4\/5\n- Scope: individual\n- Heads-up: no"}