[FEATURE] Support `default` field in plugin `userConfig` entries
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
The userConfig field in plugin.json is the correct mechanism for prompting users to provide per-user configuration values when enabling a plugin. However, userConfig entries only support description and sensitive — there is no way to specify a default value.
This means that every userConfig key is effectively required: the user must provide a value at enable time, even when a sensible default would work for the majority of users. For plugins distributed via private organizational marketplaces, this creates unnecessary friction during onboarding, especially when most users would accept the same default.
Proposed Solution
Proposed Solution
Add an optional default field to userConfig entries:
{
"userConfig": {
"work_dir": {
"description": "Working directory for job outputs",
"default": "/scratch/orchestrate",
"sensitive": false
},
"container_dir": {
"description": "Path to Apptainer/Singularity container images",
"default": "/large_storage/ctc/public/apptainer",
"sensitive": false
},
"api_token": {
"description": "API authentication token",
"sensitive": true
}
}
}
Behavior
- When a
defaultis provided, the prompt at enable time pre-fills or displays the default, and the user can accept it by pressing Enter - If the user provides no value and a
defaultexists, the default is used - If no
defaultis specified, current behavior is unchanged (user must provide a value) ${user_config.KEY}substitution andCLAUDE_PLUGIN_OPTION_<KEY>export work the same regardless of whether the value came from user input or the default
Alternative Solutions
We maintain a private marketplace with plugins that launch MCP servers on a shared HPC cluster. Most users share common paths for container images and scratch directories, but some users need to override them. Today, every user must manually enter these values at enable time, even though the defaults would work for 90% of the team. A default field would let us ship sensible values while still allowing per-user customization.
Priority
Medium - Would be very helpful
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_
This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗