Feature: namespace prefix for project plugins (.claude-plugin/)

Resolved 💬 3 comments Opened Apr 9, 2026 by klooj Closed Apr 12, 2026

Problem

Project plugins (.claude-plugin/ in a repo) load their skills into the global / completion list without any namespace prefix. Marketplace-installed plugins get namespaced (e.g., commit-commands:commit), but project plugins do not — their skills appear as /skill-name alongside built-in commands.

For projects with many skills (100+), this makes tab-completion unusable for discovery. All project skills, global plugins, and built-ins are mixed into one flat list.

Expected behavior

The name field in .claude-plugin/plugin.json should optionally act as a namespace prefix, the same way it does for installed plugins. For example, with "name": "jk":

  • /jk:sync-repos — project skill (scoped completion when typing /jk:)
  • /help — built-in (no prefix)
  • /commit-commands:commit — installed plugin (existing behavior)

Current behavior

The name field in project plugin.json is metadata only. Changing it has no effect on skill invocation or completion. Project skills always appear unprefixed.

Investigation

  • Confirmed by inspecting ~/.claude/plugins/installed_plugins.json — only entries there get namespaced
  • Tried renaming project plugin name field — no effect on completions
  • Docs state "skills are always namespaced" but this only applies to installed plugins, not project plugins

Use case

A project with 140 domain-specific skills where typing a short prefix (/jk:) would instantly filter completions to just those skills, instead of scrolling through a flat list of 160+ mixed commands.

---

🤖 Generated with Claude Code

View original on GitHub ↗

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