[BUG] Plugins loaded via --plugin-dir no longer expose "Configure options" (userConfig) in /plugin

Resolved 💬 1 comment Opened Jun 7, 2026 by AaronValentino Closed Jul 13, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet — closest are #37630 / #28260 / #40588 (the inline marketplace association for --plugin-dir plugins) and #39455 / #39827 (userConfig for installed plugins), but none cover Configure options being absent for --plugin-dir plugins.
  • [x] This is a single bug report.
  • [x] I am using the latest version of Claude Code.

What's Wrong?

A plugin loaded for the session via claude --plugin-dir <path> that declares a userConfig block in plugin.json no longer shows the "Configure options" action in the /plugin menu.

Because --plugin-dir plugins are assigned to the synthetic inline marketplace (see #37630, #28260, and the 2.1.128 changelog "Marketplace 'inline' not found" fix), they appear loaded but offer no way to set or preview their userConfig. This previously worked: Configure options was reachable for --plugin-dir-loaded plugins, which is how a plugin author sets userConfig values and verifies how each option's description renders during local development.

What Should Happen?

A --plugin-dir-loaded plugin that declares userConfig should expose "Configure options" in /plugin, exactly as a marketplace-installed plugin does — so authors can set values and verify description rendering locally without first publishing to (or installing from) a marketplace.

Error Messages/Logs

_None — there is no error; the "Configure options" action is simply absent from the menu._

Steps to Reproduce

  1. Create a minimal plugin whose .claude-plugin/plugin.json declares a userConfig entry:

``json
{
"name": "demo-plugin",
"version": "0.1.0",
"description": "Minimal repro plugin",
"userConfig": {
"greeting": {
"title": "Greeting",
"description": "Text the plugin should display",
"type": "string",
"sensitive": false
}
}
}
``

  1. Launch a session loading it from disk: claude --plugin-dir /path/to/demo-plugin
  2. Run /plugin and navigate to the loaded plugin.
  3. Observed: no "Configure options" action is offered, so greeting cannot be set and its description cannot be previewed.
  4. Expected: "Configure options" is available, as it is for the same plugin when installed from a marketplace.

Is this a regression?

Yes — this worked in a previous version.

Last Working Version

Unknown — it last worked several months ago, well before 2.1.167.

Claude Code Version

2.1.167 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

VS Code integrated terminal

Additional Information

Impact on plugin authors. Configure options is the only surface that renders a userConfig description. Those descriptions accept ANSI styling (colors, OSC 8 hyperlinks), and the Configure UI has renderer-specific quirks (e.g. ^[[2m dim renders inconsistently; text after a closed ANSI span bleeds to the default color), so previewing the actual UI rendering matters during development. With Configure options gone for --plugin-dir, the only way to verify is to install through a marketplace — which copies the plugin into the cache and therefore requires either publishing or a local-path marketplace with a reinstall-on-every-edit loop. That eliminates the live local-development path for userConfig.

Likely area. --plugin-dir plugins are pinned to the synthetic inline marketplace, and that handling has churned repeatedly (#37630, #28260, #40588; the 2.1.128 inline-marketplace fix). If the Configure-options action is gated on a registered/known marketplace, inline may be excluded unintentionally.

Related. #64074 reports adjacent plugin-lifecycle gaps; this userConfig-preview gap fits the same "local plugin development is rough" theme.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗