{"version":"2.1.75","anchor":"plugin-configurable-options","canonical_anchor":"plugin-configurable-options","heading":"Plugin Configurable Options","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.75\/e\/plugin-configurable-options","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.75","markdown":"### Plugin Configurable Options\n\n**What**\n\nPlugins can now declare user-configurable options in their manifest via a `userConfig` schema, with typed fields, defaults, and secure storage for sensitive values.\n\n**Details**\n\n- Plugin manifests can include a `userConfig` block with named options of type `string`, `number`, `boolean`, `directory`, or `file`\n- Each option supports `title`, `description`, `required`, `default`, `sensitive`, `min`\/`max`, and `multiple` fields\n- Option keys must be valid identifiers \u2014 they become `CLAUDE_PLUGIN_OPTION_<KEY>` environment variables in hooks\n- Sensitive values are stored in secure storage (macOS keychain or `.credentials.json`), non-sensitive values in `settings.json`\n- Available as `${user_config.KEY}` in MCP\/LSP server config, hook commands, and (non-sensitive only) skill\/agent content\n\n**Evidence**\n\nPlugin options schema and env var injection (search for `\"CLAUDE_PLUGIN_OPTION_\"`, `\"User-configurable values this plugin needs\"`)"}