How Descriptions and Names Are Handled in the Claude Plugin Manifest

The Claude plugin manifest uses the name field as a URL‑friendly identifier for CLI installation and the description field as human‑readable text displayed in the marketplace UI.

The anthropics/claude-plugins-community repository manages plugin metadata through a single JSON configuration file. Understanding how the Claude plugin manifest structures these fields is essential for developers submitting community plugins or building tools that interact with the marketplace.

The Structure of the Claude Plugin Manifest

All plugin metadata resides in .claude-plugin/marketplace.json at the repository root. This file contains an array of plugin objects, with each entry requiring two primary user‑facing identifiers: name and description.

The name Field

The name field serves as a short, URL‑friendly identifier that uniquely references the plugin. According to the source code in .claude-plugin/marketplace.json (lines 14‑16), this field accepts values like "0x" or "10x-shopping".

This identifier drives the command‑line interface. When users run installation commands, they reference this exact string:


# Install the "10x-shopping" plugin from the community marketplace

claude plugin install 10x-shopping@claude-community

The Claude client maps the name value to the @claude-community namespace to resolve the correct package location.

The description Field

The description field contains a human‑readable sentence or short paragraph explaining the plugin's functionality. As implemented in .claude-plugin/marketplace.json (lines 15‑16), this text appears directly in the Claude Cowork and Claude Code plugin browsers.

For example, a token‑swap plugin might include:

"description": "Guide developers through swapping ERC‑20 tokens ..."

This text renders underneath the plugin title in the marketplace UI, providing the concise overview users need to evaluate installation.

How the Claude Client Consumes Manifest Data

When the marketplace loads, the Claude client performs a three‑step parsing sequence on .claude-plugin/marketplace.json:

  1. Extract the name field to generate the clickable title in marketplace listings.
  2. Display the description field as the subtitle or summary text beneath the title.
  3. Map the name to the installation command syntax (claude plugin install <name>@claude-community).

The client ignores other metadata fields—such as source, homepage, and category—when rendering the primary discovery interface, focusing exclusively on these two identifiers for the initial user presentation.

Installation and Discovery Workflow

You can programmatically inspect how the manifest drives discovery using the following Python pattern:

import json
import requests

manifest_url = "https://raw.githubusercontent.com/anthropics/claude-plugins-community/main/.claude-plugin/marketplace.json"
data = json.loads(requests.get(manifest_url).text)

for plugin in data["plugins"]:
    print(f"{plugin['name']}: {plugin['description']}")

This script mirrors how the Claude client indexes available plugins, iterating over the plugins array to surface each name and description pair.

Summary

  • The Claude plugin manifest stores all metadata in .claude-plugin/marketplace.json within the anthropics/claude-plugins-community repository.
  • The name field acts as a URL‑friendly CLI identifier (e.g., "10x-shopping"), while the description field provides human‑readable context for the marketplace UI.
  • The Claude client uses name for installation command mapping and description for discovery interface rendering.
  • Both fields are required for proper indexing in Claude Cowork and Claude Code plugin browsers.

Frequently Asked Questions

What file format does the Claude plugin manifest use?

The Claude plugin manifest uses standard JSON format. The file is located at .claude-plugin/marketplace.json in the anthropics/claude-plugins-community repository and contains a top‑level plugins array where each object defines a single plugin's metadata.

How does the name field affect the installation command?

The name field value becomes the unique identifier referenced after the @claude-community suffix. For example, a name value of "0x" translates to the command claude plugin install 0x@claude-community. The CLI parses the manifest to validate that the requested name exists before attempting installation.

Can descriptions contain markdown or HTML formatting?

Based on the source implementation in .claude-plugin/marketplace.json, the description field accepts plain text strings. The Claude client renders these descriptions as raw text in the marketplace UI, so developers should write concise, single‑paragraph summaries without relying on rich formatting that may not render correctly.

Where else is the manifest data used besides the CLI?

Beyond the CLI, the manifest data powers the visual marketplace interfaces in Claude Cowork and Claude Code. The README.md file in the anthropics/claude-plugins-community repository documents how these applications consume the JSON to populate their plugin browsers, using the name as the title and description as the explanatory subtitle.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →