Commands from directory-based local marketplaces not discovered

Resolved 💬 4 comments Opened Dec 21, 2025 by MartinP7r Closed Feb 24, 2026
[!NOTE] Issue created by Claude Code

Bug Description

Slash commands defined in plugins from directory-based local marketplaces are not discovered or shown in suggestions, while skills from the same plugins work correctly.

Environment

  • OS: macOS (Darwin 24.6.0)
  • Claude Code version: Latest (as of 2025-12-21)

Steps to Reproduce

  1. Create a local marketplace with source.source: "directory" in known_marketplaces.json:
"local-marketplace": {
  "source": {
    "source": "directory",
    "path": "/Users/martin/claude-plugins"
  },
  "installLocation": "/Users/martin/claude-plugins"
}
  1. Create a plugin with commands in the standard structure:
pkm-assistant/
├── .claude-plugin/
│   └── plugin.json
├── commands/
│   └── find-connections.md   # Has valid frontmatter with description
├── skills/
│   └── obsidian-knowledge/
│       └── SKILL.md          # Works correctly
└── agents/
  1. Command file has valid frontmatter:
---
description: Discover related notes and suggest missing links
argument-hint: Optional note name or "vault" for vault-wide scan
---
  1. Install the plugin - it appears in installed_plugins.json and is enabled in settings
  2. The cache directory is created with symlinks to source files
  3. Try to invoke /pkm-assistant:find-connections or use Skill tool

Expected Behavior

  • Commands should appear in slash command suggestions
  • Skill tool should recognize pkm-assistant:find-connections

Actual Behavior

  • Commands do NOT appear in suggestions
  • Skill tool returns: Unknown skill: pkm-assistant:find-connections
  • Skills from the same plugin (e.g., pkm-assistant:obsidian-knowledge) work correctly

Investigation Findings

| Marketplace Type | Skills | Commands |
|------------------|--------|----------|
| GitHub-based (claude-plugins-official) | ✅ Work | ✅ Work |
| Directory-based (local-marketplace) | ✅ Work | ❌ Not discovered |

Verified correct:

  • Plugin structure matches official plugins
  • Command frontmatter has required description field
  • Cache symlinks resolve correctly (file command shows "ASCII text")
  • Plugin is enabled in settings.json
  • Plugin appears in installed_plugins.json

Comparison with working plugin:

The commit-commands plugin from claude-plugins-official has identical structure and its commands work. The only difference is the marketplace source type.

Hypothesis

Command discovery logic may not be following symlinks or may handle directory-based marketplace sources differently than GitHub-based ones.

Workaround

Currently none found other than hosting plugins on GitHub instead of using local directory marketplace.

View original on GitHub ↗

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