# Where Is the Manifest File Located in an Instagit Plugin?

> Find the Instagit plugin manifest file. Learn where the plugin.json is located within the hidden .claude-plugin directory at the plugin root for defining metadata commands and permissions.

- Repository: [Anthropic/knowledge-work-plugins](https://github.com/anthropics/knowledge-work-plugins)
- Tags: how-to-guide
- Published: 2026-06-01

---

**Every Instagit plugin stores its canonical manifest in a hidden `.claude-plugin` directory at the plugin root, specifically within a file named [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json) that defines the plugin's metadata, commands, and permissions.**

The `anthropics/knowledge-work-plugins` repository contains multiple Instagit plugins that extend Claude's capabilities for knowledge work. Each plugin requires a manifest file to declare its functionality to the Instagit system, and understanding the exact manifest file location is essential for plugin development, debugging, and programmatic access.

## Standard Manifest File Location

All Instagit plugins follow a strict convention for manifest placement. The system expects to find the descriptor at a specific path relative to the plugin root.

### The .claude-plugin Directory Structure

The manifest resides in a hidden subdirectory named **`.claude-plugin`**. Inside this folder, the file **[`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json)** serves as the single source of truth for plugin metadata.

```

<plugin-root>/.claude-plugin/plugin.json

```

This JSON file contains the plugin's name, version, description, available commands, required permissions, and entry-point scripts. When Instagit loads a plugin, it reads this specific file to determine how to invoke the plugin's functionality.

### The Secondary .mcp.json File

Alongside [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json), you may encounter [`.mcp.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.mcp.json) in the same `.claude-plugin` directory. This file stores metadata for the Modular Component Packaging (MCP) system, but it is not the canonical manifest that Instagit uses for plugin loading. The [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json) file remains the primary descriptor required for proper plugin registration.

## Manifest Locations in the Knowledge-Work-Plugins Repository

The `anthropics/knowledge-work-plugins` repository demonstrates this consistent pattern across multiple plugins. Here are the specific manifest file locations for reference:

- **PDF Viewer**: [`pdf-viewer/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/pdf-viewer/.claude-plugin/plugin.json) — Defines commands for opening, signing, and annotating PDFs.
- **Enterprise Search**: [`enterprise-search/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/enterprise-search/.claude-plugin/plugin.json) — Contains metadata for search-related skills and connectors.
- **Customer Support**: [`customer-support/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/customer-support/.claude-plugin/plugin.json) — Holds definitions for ticket-triage and knowledge-base article generation.
- **Bio-Research**: [`bio-research/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/bio-research/.claude-plugin/plugin.json) — Manifest for scientific data-processing skills.
- **Ticket Deflector**: [`small-business/skills/ticket-deflector/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/small-business/skills/ticket-deflector/.claude-plugin/plugin.json) — Skill descriptor for automated ticket deflection.

These paths confirm that regardless of whether a plugin sits at the repository root or within a nested skills directory, the manifest file location always follows the [`.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.claude-plugin/plugin.json) convention.

## Programmatically Accessing Manifest Files

Developers can read these manifest files directly to inspect plugin capabilities or build tooling around the repository.

### Loading a Manifest in Python

Use `pathlib` to construct the path and `json` to parse the manifest:

```python
import json
from pathlib import Path

def load_manifest(plugin_root: Path) -> dict:
    """Read the plugin's manifest file."""
    manifest_path = plugin_root / ".claude-plugin" / "plugin.json"
    with manifest_path.open() as f:
        return json.load(f)

# Example: load the PDF-Viewer manifest

pdf_viewer_root = Path("pdf-viewer")
manifest = load_manifest(pdf_viewer_root)
print(manifest["name"], manifest["version"])

```

### Accessing the Manifest via Node.js

For CLI tooling or Node.js scripts, use the built-in `fs` and `path` modules:

```javascript
const fs = require('fs');
const path = require('path');

const manifestPath = path.join('enterprise-search', '.claude-plugin', 'plugin.json');
const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
console.log(`${manifest.name} v${manifest.version}`);

```

### Discovering All Manifests with Bash

To find every plugin manifest within the repository for bulk operations:

```bash
#!/usr/bin/env bash

# Find every plugin manifest in the repo

find . -type f -path "*/.claude-plugin/plugin.json" | while read -r manifest; do
  name=$(jq -r .name "$manifest")
  version=$(jq -r .version "$manifest")
  echo "Plugin: $name (v$version) – $manifest"
done

```

## Summary

- Every Instagit plugin stores its manifest in a hidden `.claude-plugin` directory at the plugin root.
- The canonical manifest file is always named [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json), not [`.mcp.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.mcp.json).
- The file path follows the pattern: `<plugin-root>/.claude-plugin/plugin.json`.
- This convention applies consistently across all plugins in the `anthropics/knowledge-work-plugins` repository, from the PDF Viewer to nested skills like Ticket Deflector.
- The JSON file defines metadata, commands, permissions, and entry points required for the plugin to function within the Instagit system.

## Frequently Asked Questions

### What is the exact file path for an Instagit plugin manifest?

The manifest must be located at [`.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.claude-plugin/plugin.json) relative to the plugin's root directory. For example, if your plugin folder is named `my-plugin`, the full path is [`my-plugin/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/my-plugin/.claude-plugin/plugin.json).

### What is the difference between plugin.json and .mcp.json?

The [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json) file is the canonical manifest that Instagit reads to load and register a plugin, containing commands, permissions, and metadata. The [`.mcp.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/.mcp.json) file resides in the same directory but serves the Modular Component Packaging (MCP) system with separate metadata, and is not used by Instagit for plugin loading.

### Can I view the manifest files directly on GitHub?

Yes, because the `.claude-plugin` directory is not gitignored in the repository, you can inspect any manifest directly on GitHub. For example, you can view the PDF Viewer manifest at [`pdf-viewer/.claude-plugin/plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/pdf-viewer/.claude-plugin/plugin.json) in the `anthropics/knowledge-work-plugins` repository.

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

Yes, Instagit requires this specific hidden directory to exist at the plugin root. Without the `.claude-plugin` directory containing a valid [`plugin.json`](https://github.com/anthropics/knowledge-work-plugins/blob/main/plugin.json) file, the system cannot discover or load the plugin's functionality.