# Where Is the .claude-plugin/plugin.json File Located in Claude Plugins?

> Locate the plugin.json file within your Claude plugin. Discover its exact position inside the hidden .claude-plugin directory at the plugin folder's root.

- Repository: [Anthropic/claude-plugins-community](https://github.com/anthropics/claude-plugins-community)
- Tags: how-to-guide
- Published: 2026-08-28

---

**Each Claude plugin stores its [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) manifest inside a hidden `.claude-plugin` directory at the root of the plugin folder.**

The `anthropics/claude-plugins-community` repository enforces a strict convention for plugin metadata placement. Understanding the **.claude-plugin/plugin.json location** is essential for developers building integrations or automating plugin discovery across the ecosystem. Every plugin follows this standardized structure to ensure consistent manifest discovery.

## The Standard File Path Convention

According to the source code structure in `anthropics/claude-plugins-community`, the **manifest file** must reside at a specific relative path within each plugin directory. The hidden `.claude-plugin` folder acts as a metadata container, distinguishing plugin configuration from implementation code.

The required structure is:

```text
plugin-name/
├── .claude-plugin/
│   └── plugin.json
└── [other plugin files]

```

This convention applies universally across all community plugins. The hidden directory prefix prevents clutter while keeping metadata easily discoverable by automation tools.

## Repository Examples from claude-plugins-community

The following plugins demonstrate the consistent application of this pattern:

### Tres Finance Plugin

Located at [`tres-finance-plugin/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/.claude-plugin/plugin.json), this manifest defines the plugin's metadata and entry points. This path follows the standard convention exactly.

### Testdino Plugin

The manifest resides at [`testdino/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/testdino/.claude-plugin/plugin.json), maintaining the same directory depth and naming as all other plugins in the collection.

### Quickdesign Plugin

You will find the configuration at [`quickdesign/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/quickdesign/.claude-plugin/plugin.json), confirming the pattern holds across different plugin types and functionalities.

### ELI5 Plugin

The educational plugin stores its manifest at [`eli5/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/.claude-plugin/plugin.json), identical in structure to the production-focused plugins.

## Programmatically Accessing the Manifest

When building tools to interact with Claude plugins, you must construct the path dynamically to locate the **plugin.json** file. Below are reference implementations for common automation scenarios.

### Python Implementation

Use `pathlib` to safely resolve the manifest location:

```python
import json
from pathlib import Path

def load_plugin_manifest(plugin_dir: str) -> dict:
    manifest_path = Path(plugin_dir) / ".claude-plugin" / "plugin.json"
    with manifest_path.open("r", encoding="utf-8") as f:
        return json.load(f)

# Example: load the Tres Finance plugin manifest

tres_manifest = load_plugin_manifest("tres-finance-plugin")
print(tres_manifest["name"])

```

This approach correctly handles cross-platform path resolution while targeting the specific [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) location required by the repository specification.

### Bash Discovery

To enumerate all plugin manifests within the repository, use the following command:

```bash
find . -type f -path "*/.claude-plugin/plugin.json" -print

```

This returns absolute paths to every manifest file, including the repository-level metadata and all individual plugin configurations.

## Repository Root vs Individual Plugin Manifests

The repository contains two categories of manifests. The root-level [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) provides metadata for the entire collection, while each sub-directory contains its own manifest for specific plugin functionality.

- **Repository metadata**: [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) (at repository root)
- **Plugin manifests**: `{plugin-name}/.claude-plugin/plugin.json` (within each plugin directory)

Both follow identical schema structures but serve different organizational purposes. Automation scripts should filter by path depth if they need to distinguish between collection-level and plugin-level configurations.

## Summary

- The **.claude-plugin/plugin.json** file is always located inside a hidden `.claude-plugin` directory at the plugin root.
- Real examples include [`tres-finance-plugin/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/.claude-plugin/plugin.json) and [`eli5/.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/eli5/.claude-plugin/plugin.json).
- Repository automation relies on this consistent path structure for manifest discovery.
- The root [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) serves collection-level metadata, distinct from individual plugin manifests.

## Frequently Asked Questions

### What is the purpose of the .claude-plugin directory?

The `.claude-plugin` directory serves as a standardized metadata container that separates plugin configuration from source code. This hidden directory convention ensures that manifest files remain discoverable by the Claude platform while remaining unobtrusive in file listings.

### Can I place plugin.json in a different location within my plugin?

No, the repository structure requires the manifest to exist specifically at [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) relative to the plugin root. The Claude plugin loader searches for this exact path when initializing extensions, and deviation will result in discovery failures.

### How does the root-level manifest differ from individual plugin manifests?

The root [`.claude-plugin/plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/plugin.json) describes the entire community repository collection, while individual plugin manifests describe specific integrations. Both use the same schema format, but the root manifest typically contains repository-wide metadata rather than execution endpoints.

### Is the .claude-plugin directory required for all Claude plugins?

Yes, every plugin in the `anthropics/claude-plugins-community` repository must include this directory and its [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) file. This requirement ensures consistent metadata availability across the plugin ecosystem, enabling proper indexing and loading by the Claude platform.