Plugin commands from external marketplaces missing namespace prefix in autocomplete

Resolved 💬 3 comments Opened Mar 31, 2026 by fjordansilva Closed Apr 4, 2026

Description

Plugin commands from external (non-bundled) marketplaces are displayed without their namespace prefix in the autocomplete, while plugins from the bundled claude-code-plugins marketplace show the full <plugin-name>:<command-name> format.

Steps to Reproduce

  1. Install a plugin from the bundled claude-code-plugins marketplace (e.g., ralph-wiggum)
  2. Install a plugin from an external/custom marketplace (e.g., a plugin called my-plugin-dev from a custom marketplace with git URL sources)
  3. Type /ralph-wiggum in the prompt — autocomplete shows:

``
/ralph-wiggum:help (ralph-wiggum) Explain Ralph Wiggum technique...
/ralph-wiggum:ralph-loop (ralph-wiggum) Start Ralph Wiggum loop...
/ralph-wiggum:cancel-ralph (ralph-wiggum) Cancel active Ralph Wiggum loop
``

  1. Type /my-plugin-dev or /my-plugin-dev: in the prompt — autocomplete shows:

``
/quickstart (my-plugin-dev) Detect project type and state...
``

  • Only 1 of all commands in the plugin appears (the one whose description contains "my-plugin-dev")
  • No namespace prefix on the command name

Expected Behavior

Both plugins should display their commands consistently with the namespace prefix:

/my-plugin-dev:quickstart        (my-plugin-dev) Detect project type and state...
/my-plugin-dev:quality-review    (my-plugin-dev) Assess code quality...
/my-plugin-dev:code-review       (my-plugin-dev) Run comprehensive code review...
... (all 23 commands)

Root Cause Analysis

The difference appears related to how plugins are stored:

  • Bundled marketplace (claude-code-plugins): Plugin source code lives directly inside the marketplace repo at marketplaces/claude-code-plugins/plugins/<name>/ AND is cached to cache/claude-code-plugins/<name>/<version>/. Commands exist in two locations.
  • External marketplace: Only marketplace.json with git URLs lives in the marketplace repo. Plugin code is fetched and stored only in the cache at cache/<marketplace>/<name>/<version>/. Commands exist in one location.

This suggests the command registration path differs between bundled and external marketplace plugins, causing the namespace prefix to be applied inconsistently.

Environment

  • Claude Code version: v2.1.81
  • OS: macOS (Darwin 25.4.0)
  • Both plugins have identical structure: .claude-plugin/plugin.json with name field, commands/ directory with .md files, similar frontmatter

Additional Context

  • Both plugins are also installed at scope: "user" in installed_plugins.json
  • The external marketplace plugin commands DO work when invoked as /<namespace>:<command>, they just don't display that way in autocomplete
  • The Skill tool system prompt correctly lists all commands with namespace for both plugins — only the autocomplete UI is affected

View original on GitHub ↗

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