# Claude Plugins Naming Conventions: Kebab-Case Standards for the Community Repository

> Learn Claude plugins naming conventions using kebab-case for unique, readable identifiers in folders, manifest files, and skill definitions. Follow community repository standards.

- Repository: [Anthropic/claude-plugins-community](https://github.com/anthropics/claude-plugins-community)
- Tags: best-practices
- Published: 2026-08-30

---

**Claude plugins use lowercase, hyphen-separated (kebab-case) identifiers for repository folders, manifest files, and skill definitions to ensure unique, readable naming across the marketplace.**

The **anthropics/claude-plugins-community** repository enforces strict **Claude plugins naming conventions** to maintain consistency across the ecosystem. These standards govern how plugins are structured, registered, and referenced, ensuring Claude's tooling can reliably discover and install community contributions.

## Repository Folder Naming Conventions

All plugin directories in the repository root must use **kebab-case**—lowercase letters separated by hyphens—to identify the plugin's purpose. This creates URL-friendly paths that match the plugin's canonical identifier.

Examining the source code reveals this pattern consistently applied across published plugins:

- `quickdesign` - A concise, single-word identifier for the QuickDesign plugin
- `testdino` - Another single-word example following lowercase conventions  
- `tres-finance-plugin` - A multi-word identifier using hyphens to separate terms

These folder names serve as the foundation for all other naming references within the plugin's configuration files.

## Plugin Manifest Configuration

The [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) file defines the machine-readable identity of your plugin. Located at the root of each plugin folder, this file must declare a `name` field that exactly matches the repository folder name.

### The plugin.json Name Field

According to the source code in [`/quickdesign/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main//quickdesign/.claude-plugin/plugin.json) and [`/testdino/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main//testdino/.claude-plugin/plugin.json), the `name` value must replicate the kebab-case repository folder name precisely. This creates a bidirectional link between the filesystem structure and the plugin's metadata.

```json
{
  "name": "my-awesome-plugin",
  "version": "0.1.0",
  "description": "A short description of what the plugin does.",
  "icon": "./icon.svg",
  "author": {
    "name": "Your Name",
    "url": "https://your-website.example"
  },
  "homepage": "https://github.com/your-org/my-awesome-plugin",
  "repository": "https://github.com/your-org/my-awesome-plugin",
  "license": "MIT",
  "keywords": ["ai", "productivity"]
}

```

### Semantic Versioning Requirements

The `version` field must follow **semantic versioning** (`MAJOR.MINOR.PATCH`). As shown in the community repository examples, versions like `0.1.0` indicate initial development, while subsequent updates increment the appropriate segment to signal breaking changes (MAJOR), new features (MINOR), or patches (PATCH).

## Skill Identifier Conventions

Individual skills within a plugin define their identifiers in [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) front-matter. The `name` key must follow the same kebab-case pattern as the parent plugin to maintain unique marketplace identifiers and prevent collisions.

The TRES Finance plugin demonstrates this standard in files like [`/tres-finance-plugin/skills/tres-rollup-rules/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main//tres-finance-plugin/skills/tres-rollup-rules/SKILL.md) and [`/tres-finance-plugin/skills/tres-erp-rule-suggestions/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main//tres-finance-plugin/skills/tres-erp-rule-suggestions/SKILL.md), where skill names use formats like `tres-rollup-rules` and `tres-erp-rule-suggestions`.

```yaml
---
name: my-awesome-skill
description: >
  A concise description of the skill's purpose and when it should be triggered.
compatibility: "Requires My Awesome MCP connector"
---

```

This naming strategy ensures that skill IDs remain unique across the entire marketplace while clearly indicating their parent plugin origin.

## Marketplace Registration Standards

The root [`/.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main//.claude-plugin/marketplace.json) file maintains the global registry of all published plugins. Each plugin appears under the unified `claude-community` namespace using its kebab-case identifier as the primary key.

When adding your plugin to the marketplace manifest, use the exact identifier from your repository folder:

```json
{
  "plugins": [
    {
      "name": "my-awesome-plugin",
      "displayName": "My Awesome Plugin",
      "description": "Provides awesome AI-assisted capabilities.",
      "owner": "your-org",
      "version": "0.1.0"
    }
  ],
  "renames": {}
}

```

This global registry enforces uniqueness—no two plugins can share the same kebab-case name within the `claude-community` namespace.

## Human-Readable vs. Machine-Readable Names

While technical identifiers use kebab-case for URL safety and parsing reliability, user-facing fields support title-case readability. The `author.name` and `description` fields in [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) should use natural language formatting for display in UI interfaces, while the core `name` field remains strictly kebab-case. This separation ensures that filesystem paths, API references, and user interfaces all receive appropriately formatted text.

## Summary

- Repository folders must use **kebab-case** (e.g., `tres-finance-plugin`) to create filesystem-compatible identifiers
- The [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) `name` field must exactly match the repository folder name to maintain consistency
- **Semantic versioning** (`MAJOR.MINOR.PATCH`) is required for the `version` field in all plugin manifests
- Skill definitions in [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) front-matter must use kebab-case `name` keys to ensure unique identifiers across the marketplace
- The root [`/.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main//.claude-plugin/marketplace.json) registers plugins under the `claude-community` namespace using their kebab-case identifiers as canonical keys

## Frequently Asked Questions

### What case style should I use for my Claude plugin repository name?

Use **kebab-case** (lowercase with hyphens) for all repository folder names, plugin identifiers, and skill names. The **anthropics/claude-plugins-community** repository demonstrates this convention through examples like `quickdesign`, `testdino`, and `tres-finance-plugin`, ensuring that all plugins follow a predictable, URL-friendly naming pattern.

### How do I format the version number in my plugin.json file?

Follow **semantic versioning** standards with the format `MAJOR.MINOR.PATCH` (e.g., `0.1.0`). As implemented in the community repository's plugin manifests, the `version` field in [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) must use this three-part numeric structure to communicate compatibility and update significance to Claude's plugin management system.

### Can I use spaces or camelCase in skill identifiers?

No. The [`SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main/SKILL.md) front-matter requires the `name` field to use kebab-case without spaces or capital letters. For example, the TRES Finance plugin uses identifiers like `tres-rollup-rules` in [`/tres-finance-plugin/skills/tres-rollup-rules/SKILL.md`](https://github.com/anthropics/claude-plugins-community/blob/main//tres-finance-plugin/skills/tres-rollup-rules/SKILL.md) to maintain compatibility with Claude's referencing system and ensure consistency with the parent plugin's naming convention.

### Where is the global list of published Claude plugins maintained?

The canonical list resides in [`/.claude-plugin/marketplace.json`](https://github.com/anthropics/claude-plugins-community/blob/main//.claude-plugin/marketplace.json) at the repository root. This JSON file maps kebab-case plugin names (such as `quickdesign` or `tres-finance-plugin`) to their metadata under the unified `claude-community` namespace, functioning as the single source of truth for plugin discovery and installation.