Interface: ExternalManifest
Defined in: core/externalExtensions.ts:113
An external extension's manifest: its plugin.json, the plugin's own metadata (Claude Code's
fields, which its validator checks) and the kit's data (metadata["agent-kit"], which it doesn't read).
Properties
| Property | Type | Description | Defined in |
|---|---|---|---|
author? | ExtensionAuthor | - | core/externalExtensions.ts:120 |
capabilities | ExtensionCapability[] | What it lets the agent do, described for the person (#62): skills and tools together. | core/externalExtensions.ts:129 |
catalog? | object | How a catalog shows it (#59): its logo (square) and banner (wide), paths inside its folder, as its manifest gives them. | core/externalExtensions.ts:152 |
catalog.banner? | string | - | core/externalExtensions.ts:152 |
catalog.logo? | string | - | core/externalExtensions.ts:152 |
description | string | Its description in English: plugin.json's, which Claude Code reads. | core/externalExtensions.ts:116 |
descriptions | Partial<Record<Language, string>> | Its description in other languages (#67), from metadata["agent-kit"].description. | core/externalExtensions.ts:118 |
help? | string | What it says about itself in a session, for the agent to tell the person (SessionFacts). | core/externalExtensions.ts:148 |
homepage? | string | - | core/externalExtensions.ts:121 |
keywords? | string[] | - | core/externalExtensions.ts:124 |
kit? | string | The agent-kit versions it works with, e.g. ">=0.19.0 <0.21.0". | core/externalExtensions.ts:131 |
labels | Record<string, Partial<Record<Language, ExternalToolLabel>>> | Its tools' chat labels, by short name (of any of its servers) and language (English when the kit's isn't there). | core/externalExtensions.ts:146 |
license? | string | - | core/externalExtensions.ts:123 |
name | string | - | core/externalExtensions.ts:114 |
provides | string[] | What it lets the agent use: its provides and its capabilities' ids. | core/externalExtensions.ts:126 |
readOnlyTools? | string[] | Its tools that only read (short names, of any of its servers): plan mode lets them through. Without the key, plan mode asks its servers which (their tools' readOnlyHint); with it, the list is the whole answer, even empty. | core/externalExtensions.ts:144 |
repository? | string | - | core/externalExtensions.ts:122 |
requirements | ExtensionRequirement[] | Programs it needs on this computer (#63): checked when it loads, never installed. Without one the whole extension needs, it's off; without one only some capabilities need, those are. | core/externalExtensions.ts:136 |
requires | string[] | - | core/externalExtensions.ts:127 |
servers | Record<string, PluginServer> | Its MCP servers, by name (mcp__<name>__<tool>), from the plugin's .mcp.json or plugin.json. | core/externalExtensions.ts:138 |
userConfig | Record<string, ExtensionOption> | Its options (userConfig, as Claude Code declares them, #55): its servers take them as ${user_config.KEY}. | core/externalExtensions.ts:150 |
version? | string | - | core/externalExtensions.ts:119 |