[FEATURE] Support `default` field in plugin `userConfig` entries

Resolved 💬 4 comments Opened Apr 11, 2026 by nick-youngblut Closed May 26, 2026

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 default is 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 default exists, the default is used
  • If no default is specified, current behavior is unchanged (user must provide a value)
  • ${user_config.KEY} substitution and CLAUDE_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_

View original on GitHub ↗

This issue has 4 comments on GitHub. Read the full discussion on GitHub ↗