#宿主能力矩阵
生成页面
本页在文档构建时由固定版本的宿主能力表 claude-2.1.250.json、codex-0.147.0.json、cursor-2026-08-28.json、portable-1.0.0.json 渲染而成。这些 JSON 文件是每个目标适配器编译时依赖的唯一事实来源;请修改它们而不是本页。表格内容保留英文原文。
每个目标适配器都会把归一化后的 bundle 投影到一份固定的能力表上:这份 JSON 文档记录了证据所对应的宿主版本、宿主读取的路径,以及每项能力是 supported、degraded 还是 unavailable,并附带书面原因。没有任何推断:缺少证据的能力即为不可用,绝不会默默猜测。
#固定宿主
| 宿主 | 观测版本 | 插件清单 | 市场清单 | 钩子文档 |
|---|---|---|---|---|
claude | 2.1.250 | .claude-plugin/plugin.json | .claude-plugin/marketplace.json | hooks/hooks.json |
codex | 0.147.0 | .codex-plugin/plugin.json | .agents/plugins/marketplace.json | hooks/hooks.json |
cursor | 2026-08-28 | .cursor-plugin/plugin.json | .cursor-plugin/marketplace.json | hooks/hooks.json |
portable | 1.0.0 | plugin.json | — | — |
#安装方式
| 宿主 | 状态 | 方式 / 命令 | 作用域 | 来源 |
|---|---|---|---|---|
claude | supported | marketplaceAdd: claude plugin marketplace add ./pluginInstall: claude plugin install <plugin>@<marketplace> --scope <scope> | user, project, local | https://code.claude.com/docs/en/discover-plugins |
codex | supported | marketplaceAdd: codex plugin marketplace add ./pluginInstall: codex plugin add <plugin>@<marketplace> | user | https://developers.openai.com/codex/cli/reference |
cursor | supported | method: copylocalRoot: ~/.cursor/plugins/local/<name> | user | https://cursor.com/docs/plugins |
portable | unavailable | Portable is a distribution profile, not a host runtime with one universal plugin installation location. | — | https://agent-plugins.org/ |
#路径令牌
| 令牌 | claude 2.1.250 | codex 0.147.0 | cursor 2026-08-28 | portable 1.0.0 |
|---|---|---|---|---|
pluginData | ${CLAUDE_PLUGIN_DATA} | — | — | ${PLUGIN_DATA} |
pluginRoot | ${CLAUDE_PLUGIN_ROOT} | relative-with-plugin-root-cwd | ${CURSOR_PLUGIN_ROOT} | ${PLUGIN_ROOT} |
workspaceRoot | ${CLAUDE_PROJECT_DIR} | — | ${workspaceFolder} | — |
#MCP 传输与令牌字段
| 宿主 | stdio | Streamable HTTP | 接受路径令牌的字段 |
|---|---|---|---|
claude | supported | supported | command: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}args: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}env: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}url: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}headers: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}headersHelper: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR} |
codex | supported | supported | No host interpolation. command, args, env values, and cwd accept a leading ${PLUGIN_ROOT} only when cwd is the plugin root; the compiler rewrites it to a ./-relative path under cwd: "./". Embedded tokens, ${PLUGIN_DATA}, and workspace-root tokens are build errors. |
cursor | supported | supported | args: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}env: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}headers: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}url: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder} |
portable | supported | supported | args: ${PLUGIN_DATA}, ${PLUGIN_ROOT}cwd: ${PLUGIN_DATA}, ${PLUGIN_ROOT}env: ${PLUGIN_DATA}, ${PLUGIN_ROOT} |
#插件组件
每张表的 plugin 部分,按点分能力路径展开。布尔行表示适配器会发出的组件;带状态的行记录宿主证据支持或保留该能力的原因。证据说明保留在 JSON 文件中。
#claude 2.1.250
| 能力 | 状态 | 说明 |
|---|---|---|
agents.component | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers Agent Bundle's authored plugin agents/ component until a separate evidence-backed increment. 2 条证据说明 |
agents.name | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent name field together with agents/ emission. 2 条证据说明 |
agents.description | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent description field together with agents/ emission. 2 条证据说明 |
agents.model | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent model field together with agents/ emission. 2 条证据说明 |
agents.effort | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent effort field together with agents/ emission. 2 条证据说明 |
agents.maxTurns | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent maxTurns field together with agents/ emission. 2 条证据说明 |
agents.tools | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent tools field together with agents/ emission. 2 条证据说明 |
agents.disallowedTools | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent disallowedTools field together with agents/ emission. 2 条证据说明 |
agents.skills | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent skills field together with agents/ emission. 2 条证据说明 |
agents.memory | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent memory field together with agents/ emission. 2 条证据说明 |
agents.background | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds an authored plugin-agent background field together with agents/ emission. 2 条证据说明 |
agents.isolationWorktree | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately withholds authored plugin-agent isolation: worktree together with agents/ emission. 2 条证据说明 |
agents.hooks | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would omit hooks under the host security contract. 3 条证据说明 |
agents.mcpServers | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would omit mcpServers under the host security contract. 3 条证据说明 |
agents.permissionMode | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers the plugin-agent surface on which Agent Bundle would omit permissionMode under the host security contract. 3 条证据说明 |
bin.bareCommands | supported | — |
bin.bashPath | supported | — |
bin.directory | — | bin |
bin.enabledOnly | supported | — |
bin.organizationDistributionProhibited | supported | — |
channels.bindsToPluginMcpServer | supported | — |
channels.perChannelUserConfig | supported | — |
commandFrontmatter | supported | fields: {"allowedTools":"allowed-tools","argumentHint":"argument-hint","description":"description","disableModelInvocation":"disable-model-invocation","model":"model"}2 条证据说明 |
commands | supported | — |
dependencies.autoInstall | supported | — |
dependencies.autoInstallExceptions | — | command-source, headersHelper |
dependencies.crossMarketplaceAllowlist | — | allowCrossMarketplaceDependenciesOn |
dependencies.entryForms | — | name, object |
dependencies.errorCodes | — | dependency-unsatisfied, range-conflict, dependency-version-unsatisfied, no-matching-tag |
dependencies.objectFields | — | marketplace, name, version |
dependencies.prereleaseOptIn | supported | — |
dependencies.prune | supported | — |
dependencies.rangeIntersection | supported | — |
dependencies.semverRanges | supported | — |
dependencies.tagConvention | — | {name}--v{version} |
distributionPolicy.skillsDirectoryPlugins | unavailable | Agent Bundle emits a plugin directory but does not place it in a Claude skills directory or register the host-owned @skills-dir identity. 2 条证据说明 |
distributionPolicy.skillsDirectoryProjectTrust | unavailable | Agent Bundle cannot grant or inspect the workspace trust required before Claude loads a project-scope @skills-dir plugin. 1 条证据说明 |
distributionPolicy.skillsDirectoryMcpApproval | unavailable | Agent Bundle can emit plugin MCP configuration but cannot complete Claude's per-server approval for a project-scope @skills-dir plugin. 1 条证据说明 |
distributionPolicy.skillsDirectoryLspTrust | unavailable | Agent Bundle can emit plugin LSP configuration but cannot satisfy Claude's workspace-trust gate for a project-scope @skills-dir plugin. 1 条证据说明 |
distributionPolicy.skillsDirectoryMonitors | unavailable | Agent Bundle cannot make Claude load background monitors from a project-scope @skills-dir plugin, which the host explicitly skips. 1 条证据说明 |
distributionPolicy.pluginInstallScopes | supported | 3 条证据说明 |
distributionPolicy.pluginReload | unavailable | Agent Bundle cannot reload or restart a running Claude session after plugin files or installed versions change. 3 条证据说明 |
distributionPolicy.pluginTrustGates | unavailable | Agent Bundle cannot accept Claude workspace-trust, server-managed-settings approval, or command-source confirmation prompts on a user's behalf. 2 条证据说明 |
distributionPolicy.syncedPlugins | unavailable | Agent Bundle cannot synchronize or administer the @synced plugins attached to a user's claude.ai account. 2 条证据说明 |
distributionPolicy.managedPluginScope | unavailable | Agent Bundle cannot create, remove, enable, or disable managed-scope plugins; Claude exposes that host-owned scope as read-only and update-only. 1 条证据说明 |
distributionPolicy.managedStrictKnownMarketplaces | unavailable | Agent Bundle does not emit or override the organization-managed strictKnownMarketplaces allowlist. 2 条证据说明 |
distributionPolicy.managedBlockedMarketplaces | unavailable | Agent Bundle does not emit or override the organization-managed blockedMarketplaces denylist. 2 条证据说明 |
distributionPolicy.managedDisableSideloadFlags | unavailable | Agent Bundle cannot configure or bypass disableSideloadFlags in Claude managed settings. 1 条证据说明 |
distributionPolicy.managedDisableCommandPluginSources | unavailable | Agent Bundle emits no managed setting that can permit, block, or exempt Claude command plugin sources. 2 条证据说明 |
distributionPolicy.managedAllowManagedHooksOnly | unavailable | Agent Bundle cannot configure allowManagedHooksOnly or claim that emitted plugin commands are exempt from that managed policy. 2 条证据说明 |
distributionPolicy.managedPluginSuggestions | unavailable | Agent Bundle does not emit the managed pluginSuggestionMarketplaces allowlist or marketplace relevance signals for contextual installation suggestions. 2 条证据说明 |
distributionPolicy.pluginCliLifecycle | unavailable | Agent Bundle emits Claude plugin artifacts but does not invoke Claude's plugin creation, installation, state, update, inspection, or release commands.commands: init, new, install, uninstall, prune, enable, disable, update, list, details, tag2 条证据说明 |
distributionPolicy.marketplaceCliLifecycle | unavailable | Agent Bundle emits marketplace manifests but does not add, list, remove, or update marketplaces in a user's Claude configuration.commands: add, list, remove, update2 条证据说明 |
packageLifecycle.nodeDependencyInstall | unavailable | Agent Bundle emits compile-time plugin artifacts but does not currently place package.json plus a supported lockfile at the plugin root or run Claude's host-owned dependency install in a copied cache entry.manifest: package.jsoncommands: {"bun.lock":"bun install --frozen-lockfile --ignore-scripts","bun.lockb":"bun install --frozen-lockfile --ignore-scripts","npm-shrinkwrap.json":"npm ci --ignore-scripts","package-lock.json":"npm ci --ignore-scripts"}lockfilePrecedence: bun.lock, bun.lockb, npm-shrinkwrap.json, package-lock.jsontimeoutSeconds: 605 条证据说明 |
packageLifecycle.yarnPnpmInstallAlternative | unavailable | Agent Bundle does not run automatic Yarn or pnpm installs; Claude skips those lockfiles at host install time, while authors must explicitly install such dependencies from a hook into persistent plugin data.skippedLockfiles: yarn.lock, pnpm-lock.yamlpersistentDataToken: ${CLAUDE_PLUGIN_DATA}2 条证据说明 |
packageLifecycle.pluginCacheLifecycle | unavailable | Agent Bundle emits compile-time artifacts; cache copying or linking, resolved-version directory naming, orphan marking and sweeping, symlink materialization, and host component path-escape rejection happen during Claude installation and runtime.cacheRoot: ~/.claude/plugins/cacheorphanGraceDays: 146 条证据说明 |
packageLifecycle.pluginPathSubstitution | degraded | Agent Bundle lowers and validates its canonical path tokens in structured Claude MCP, LSP, settings, generated-hook, and monitor fields, but authored Skill content and target-native hook documents remain opaque compile-time payloads and actual placeholder substitution is owned by Claude at runtime.tokens: ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}fields: {"skillAndAgentContent":["anywhere"],"hookCommands":["command","args"],"monitorCommands":["command"],"mcpStdio":["command","args","env"],"mcpRemote":["url","headers","headersHelper"],"lsp":["command","args","env","workspaceFolder"]}4 条证据说明 |
packageLifecycle.pluginDataLifecycle | unavailable | Agent Bundle can emit ${CLAUDE_PLUGIN_DATA} references but cannot observe the last installed scope, prompt for deletion, delete persistent data, or apply Claude's --keep-data uninstall option.deleteOnLastScopeUninstall: truecliDeleteDefault: truekeepDataFlag: --keep-data2 条证据说明 |
experimentalThemes.defaultDirectory | — | themes |
experimentalThemes.experimental | supported | — |
experimentalThemes.manifestField | — | experimental.themes |
experimentalThemes.readOnly | supported | — |
devtools.details | supported | — |
devtools.listJson | supported | — |
devtools.pluginDir | supported | — |
devtools.strictValidation | supported | — |
devtools.tag | supported | — |
devtools.validate | supported | — |
lsp.config | — | .lsp.json |
lsp.manifestField | — | lspServers |
lsp.manifestFieldTypes | — | array, object, string |
lsp.optionalFields | — | args, diagnostics, env, initializationOptions, maxRestarts, restartOnCrash, settings, shutdownTimeout, startupTimeout, transport, workspaceFolder |
lsp.pathTokenFields | — | args, command, env, workspaceFolder |
lsp.requiredFields | — | command, extensionToLanguage |
lsp.transports | — | socket, stdio |
lsp.vendorsServerBinary | unavailable | — |
nativeDiagnostics | unavailable | The pinned Claude plugin contract (2.1.250) documents no standalone diagnostics-provider component; diagnostics reach Claude Code only through the diagnostics option of an .lsp.json language server, which is the lsp kind.1 条证据说明 |
nativeExtension | unavailable | The pinned Claude plugin contract (2.1.250) documents no editor or native extension component; Claude Code plugins are CLI-loaded component trees, and IDE integrations ship separately from the plugin manifest. 1 条证据说明 |
metadata.defaultEnabled.default | supported | — |
metadata.defaultEnabled.dependencyRequirementPrecedence | supported | — |
metadata.defaultEnabled.field | supported | — |
metadata.defaultEnabled.marketplaceEntryPrecedence | supported | — |
metadata.defaultEnabled.persistedEnabledPluginsPrecedence | supported | — |
metadata.displayName.fallback | — | name |
metadata.displayName.field | supported | — |
metadata.freeform.field | supported | — |
metadata.freeform.hostReadsValues | unavailable | — |
metadata.freeform.nonObjectHandling | — | warning-and-ignore |
metadata.freeform.strictValidation | — | failure |
metadata.standardFields | — | $schema, author, description, homepage, keywords, license, repository, version |
monitors.commandTokens | — | ${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}, ${ENV_VAR} |
monitors.config | — | monitors/monitors.json |
monitors.defaultWhen | — | always |
monitors.experimental | supported | — |
monitors.interactiveCliOnly | supported | — |
monitors.manifestField | — | experimental.monitors |
monitors.monitorToolRequired | supported | — |
monitors.projectScopeSkillsDirectoryPlugins | unavailable | — |
monitors.userConfigSubstitution | unavailable | — |
monitors.unsandboxed | supported | — |
manifest | — | .claude-plugin/plugin.json |
marketplace | — | .claude-plugin/marketplace.json |
marketplaceManifest.allowCrossMarketplaceDependenciesOn | supported | — |
marketplaceManifest.entryAuthenticationFields | — | headers, headersHelper |
marketplaceManifest.entryMetadataFields | — | $schema, author, category, defaultEnabled, description, displayName, homepage, keywords, license, metadata, repository, strict, tags, version |
marketplaceManifest.entryRelevanceSignals | — | cli, cwd, filesRead, hosts, manifestDeps |
marketplaceManifest.generatedSourceForms | — | relative |
marketplaceManifest.sourceMatrix.archiveIntegrity | — | sha256-64-hex |
marketplaceManifest.sourceMatrix.authoredForms | — | relative, github, url, git-subdir, npm, archive, command |
marketplaceManifest.sourceMatrix.generatedDefault | — | relative |
marketplaceManifest.sourceMatrix.gitPinFields | — | ref, sha |
marketplaceManifest.sourceMatrix.shaOverridesRef | supported | — |
marketplaceManifest.sourceMatrix.versionGates.archive | — | 2.1.224 |
marketplaceManifest.sourceMatrix.versionGates.command | — | 2.1.229 |
marketplaceManifest.sourceMatrix.versionGates.pluginRootBareName | — | 2.1.239 |
marketplaceManifest.renames | supported | — |
marketplaceManifest.topLevelFields | — | $schema, allowCrossMarketplaceDependenciesOn, description, metadata, name, owner, plugins, renames, version |
paths.addsToDefault | — | skills |
paths.fieldTypes | — | array, string |
paths.ignoredDefaultFolderWarning | supported | — |
paths.marketplaceRootSkillsSubdirectoriesReplaceDefault | supported | — |
paths.relativePrefix | — | ./ |
paths.replacesDefault | — | agents, commands, experimental.monitors, experimental.themes, outputStyles, workflows |
paths.skillsRootException | — | . |
paths.skillsRootExceptionSince | — | 2.1.221 |
outputStyles.allowedSuffixes | — | .md |
outputStyles.directory | — | output-styles |
outputStyles.frontmatterFields | — | description, force-for-plugin, keep-coding-instructions, name |
outputStyles.manifestField | — | outputStyles |
outputStyles.replacesDefault | supported | — |
settings.config | — | settings.json |
settings.placeholderSubstitution | unavailable | — |
settings.precedesManifestSettings | supported | — |
settings.subagentStatusLineFields | — | command, type |
settings.supportedKeys | — | agent, subagentStatusLine |
settings.unknownKeysIgnored | supported | — |
skillFeatures.hostFrontmatter | supported | 1 条证据说明 |
skillFeatures.markdownTokens | supported | 1 条证据说明 |
skills | supported | — |
userConfig.envVarPrefix | — | CLAUDE_PLUGIN_OPTION_ |
userConfig.installConfigFlag | supported | — |
userConfig.optionalFields | — | default, max, min, multiple, required, sensitive |
userConfig.projectSettingsIgnored | supported | — |
userConfig.requiredFields | — | type, title, description |
userConfig.sensitiveStorage | supported | — |
userConfig.settingsSources | — | managed, --settings, user |
userConfig.shellSubstitutionRejected | — | hookShellCommands, monitorCommands, mcpHeadersHelper |
userConfig.substitutionToken | — | ${user_config.KEY} |
userConfig.types | — | boolean, directory, file, number, string |
workflows.directory | — | workflows |
workflows.fileContents | — | opaque |
workflows.manifestField | — | workflows |
workflows.replacesDefault | supported | — |
#codex 0.147.0
| 能力 | 状态 | 说明 |
|---|---|---|
apps.registeredMcpMappings | supported | 1 条证据说明 |
components.lsp | unavailable | The pinned Codex plugin contract publishes no LSP server surface; language-server configuration reaches Claude Code only. 1 条证据说明 |
components.nativeDiagnostics | unavailable | The pinned Codex plugin contract publishes no diagnostics-provider component; plugin-shipped diagnostics have no schema-backed authoring field, so the compiler emits none. 1 条证据说明 |
components.nativeExtension | unavailable | The pinned Codex plugin contract publishes no plugin-shipped editor or native extension component; the host-managed browser-extension part has no authoring field, so the compiler emits none. 1 条证据说明 |
overviewSurfaces.mcpUi | degraded | Agent Bundle compiles MCP Apps as ui:// resources with _meta passthrough served by the compiled MCP server, which is the open MCP Apps contract that ChatGPT renders; Codex CLI 0.147.0 renders no components, so the emitted UI is inert there and every tool remains usable without it. Rendering is a ChatGPT host surface, not a Codex plugin artifact.3 条证据说明 |
overviewSurfaces.browserExtensions | unavailable | Browser extensions are host-managed plugin parts with no schema-backed authoring field in the pinned .codex-plugin/plugin.json contract; the compiler infers nothing and the closed manifest schema rejects any authored field until a package contract publishes one. 2 条证据说明 |
overviewSurfaces.scheduledTaskTemplates | unavailable | Scheduled task templates are host-managed plugin parts with no schema-backed authoring field in the pinned .codex-plugin/plugin.json contract; the compiler infers nothing and the closed manifest schema rejects any authored field until a package contract publishes one. 2 条证据说明 |
hookEnvironment.claudePluginData | supported | 1 条证据说明 |
hookEnvironment.claudePluginRoot | supported | 1 条证据说明 |
hookEnvironment.pluginData | supported | 1 条证据说明 |
hookEnvironment.pluginRoot | supported | 1 条证据说明 |
interface.assets | supported | 1 条证据说明 |
interface.brandColor | supported | 1 条证据说明 |
interface.categoryCapabilities | supported | 1 条证据说明 |
interface.descriptions | supported | 1 条证据说明 |
interface.identity | supported | 1 条证据说明 |
interface.starterPrompts | supported | 1 条证据说明 |
interface.urls | supported | 1 条证据说明 |
manifest | — | .codex-plugin/plugin.json |
marketplace | — | .agents/plugins/marketplace.json |
manifestPackage.manifestMetadata | supported | fields: author.name, author.email, author.url, homepage, repository, license, keywords2 条证据说明 |
manifestPackage.manifestPaths | degraded | The adapter emits canonical component locations and validates all documented forms, but it has no authored config surface for selecting custom component paths or inline component objects.admitted: {"hooks":["path","path-array","inline-object","inline-object-array"],"mcpServers":["path","inline-object"],"skills":["path"]}emitted: {"hooks":"./hooks/hooks.json","mcpServers":"./.mcp.json","skills":"./skills/"}3 条证据说明 |
manifestPackage.optionalAssets | unavailable | The Codex adapter copies selected assets but cannot author composerIcon, logo, logoDark, or screenshots references in the manifest.assets: interface.composerIcon, interface.logo, interface.logoDark, interface.screenshots2 条证据说明 |
manifestPackage.submissionPolicy | unavailable | Public submission requirements are portal-owned distribution policy with no compiler-authored or compiler-validation surface.constraints: Apps Management write access, verified developer or business identity, listing and policy URLs, production MCP review materials, five positive and three negative test cases, country or region availability, release notes and policy attestations3 条证据说明 |
mcpServerPolicy.approvalModes | unavailable | Plugin MCP approval modes are host-owned user configuration under plugins.<plugin>.mcp_servers.<server>; the compiler emits plugin artifacts and does not write the user's config.toml.1 条证据说明 |
mcpServerPolicy.enabled | unavailable | Plugin MCP enabled state is host-owned user configuration under plugins.<plugin>.mcp_servers.<server>; the compiler emits plugin artifacts and does not write the user's config.toml.1 条证据说明 |
mcpServerPolicy.tools | unavailable | Plugin MCP tool selection is host-owned user configuration under plugins.<plugin>.mcp_servers.<server>; the compiler emits plugin artifacts and does not write the user's config.toml.1 条证据说明 |
skillFeatures.hostFrontmatter | supported | 1 条证据说明 |
skillFeatures.markdownTokens | unavailable | The pinned Codex skills contract (0.147.0) documents no Skill Markdown interpolation placeholders; a skill body token has no Codex equivalent and fails closed (AB3008). 1 条证据说明 |
skills | supported | — |
#cursor 2026-08-28
| 能力 | 状态 | 说明 |
|---|---|---|
agents.component | unavailable | The #100 stage-2 G5 gate, merged in PR #220 and preserved by #107 revision 3, deliberately defers Agent Bundle's authored plugin agents/ component; Cursor documents the component, but this compiler emits no agents/ directory or manifest agents pointer until a later stage admits it. 2 条证据说明 |
canvases | unavailable | Cursor advertises plugin canvases without publishing a schema-backed authoring contract; no canvas component is inferred from marketplace examples, so this compiler emits none. 1 条证据说明 |
commandFrontmatter | unavailable | The pinned Cursor commands surface is frontmatter-free Markdown: the lowering emits the prompt body only, so authored command frontmatter fields do not reach Cursor.fields: allowedTools, argumentHint, description, disableModelInvocation, model2 条证据说明 |
commands | supported | — |
componentDiscovery | supported | defaults: {"agents":"agents/ (.md, .mdc, .markdown)","commands":"commands/ (.md, .mdc, .markdown, .txt)","hooks":"hooks/hooks.json","mcpServers":"mcp.json","rootSkill":"SKILL.md at the plugin root (only without skills/ and without a manifest skills field)","rules":"rules/ (.md, .mdc, .markdown)","skills":"skills/<name>/SKILL.md"}emitted: {"commands":"./commands/","hooks":"./hooks/hooks.json","mcpServers":"./mcp.json","rules":"./rules/","skills":"./skills/"}replacement: manifest-path-replaces-default-scan2 条证据说明 |
contract | — | cursor-plugin |
distributionPolicy.autoRefresh | unavailable | Agent Bundle emits marketplace documents but does not configure dashboard Auto Refresh, install the Cursor GitHub App, or trigger manual re-indexing. 1 条证据说明 |
distributionPolicy.installModes | unavailable | Installation modes are set per plugin by team admins in Dashboard -> Plugins; no plugin manifest or marketplace field declares them, so this compiler emits nothing for them.modes: Default Off, Default On, Required1 条证据说明 |
distributionPolicy.localPluginImports | unavailable | Agent Bundle's installer copies into ~/.cursor/plugins/local but cannot grant the admin-controlled Allow Local Plugin Imports setting a Teams or Enterprise user needs before Cursor discovers the copy. 1 条证据说明 |
distributionPolicy.localSymlinkInstall | unavailable | The generated installer and doctor guidance copy the built bundle instead of symlinking it: Cursor's docs now show a symlink, but the observed loader rejected symlinks resolving outside ~/.cursor/plugins/local, and a copy loads under both readings. 3 条证据说明 |
distributionPolicy.marketplaceAccess | unavailable | Marketplace scope and access are dashboard settings on the team's marketplace, not plugin-authored fields; this compiler emits nothing for them. 1 条证据说明 |
distributionPolicy.marketplaceReview | unavailable | Agent Bundle emits a checklist-conformant artifact (manifest, relative pointers, declared variables, copied logo) but does not host it in a Git repository, submit it, or complete Cursor's manual review. 1 条证据说明 |
distributionPolicy.teamMarketplaces | unavailable | Team marketplaces are created and populated in the Cursor dashboard from a Git repository; this compiler emits the repository-side .cursor-plugin/marketplace.json only. 1 条证据说明 |
formats.agentPlugin | unavailable | The cursor target emits the full Cursor Plugin format only; the portable Agent Plugin format is emitted by the portable target and is never mixed into this artifact.manifest: plugin.json2 条证据说明 |
formats.cursorPlugin | supported | manifest: .cursor-plugin/plugin.json1 条证据说明 |
lsp | unavailable | The pinned Cursor Plugin contract publishes no LSP server component; language intelligence is editor-owned and not a plugin component pointer, so language-server configuration reaches Claude Code only. 1 条证据说明 |
nativeDiagnostics | unavailable | The pinned Cursor Plugin contract publishes no diagnostics-provider component, so the compiler emits none. 1 条证据说明 |
nativeExtension | unavailable | The pinned Cursor Plugin contract publishes no plugin-shipped editor extension component; editor extensions are outside the plugin manifest at this pin, so a plugin cannot vendor or register one. 1 条证据说明 |
ruleFrontmatter | supported | fields: alwaysApply, description, globs1 条证据说明 |
skillFeatures.hostFrontmatter | supported | 1 条证据说明 |
skillFeatures.markdownTokens | unavailable | The pinned Cursor skills contract (2026-08-28) documents no Skill Markdown interpolation placeholders; a skill body token has no Cursor equivalent and fails closed (AB3008). 1 条证据说明 |
localInstall.method | — | copy |
localInstall.root | — | ~/.cursor/plugins/local/<name> |
manifest | — | .cursor-plugin/plugin.json |
manifestMetadata | supported | authoredFields: author.name, author.email, homepage, repository, license, keywords, publisher, category, tags, minClientVersionsgeneratedFields: name, displayName, description, version, logo, commands, hooks, mcpServers, rules, skills, variablesschemaOnlyFields: displayName, publisher, category, tags, minClientVersions3 条证据说明 |
marketplace | — | .cursor-plugin/marketplace.json |
marketplaceManifest | supported | entryFields: name, source, description, version, author, homepage, repository, license, keywords, logo, category, tags, skills, rules, agents, commands, hooks, mcpServers, variablesgeneratedEntryFields: name, source, descriptionmaxEntries: 500mergePrecedence: plugin-manifest-over-marketplace-entry3 条证据说明 |
rootSkill | unavailable | Agent Bundle always emits skills under skills/<name>/SKILL.md with an explicit manifest skills pointer, so the root SKILL.md single-skill fallback is never produced. 1 条证据说明 |
rules | supported | — |
schema | — | cursor/plugins@070189284e702e8a4d2e3cc8913994b204c5337a:schemas/plugin.schema.json |
skills | supported | — |
variables | supported | acceptedKeywords: type, title, description, default, enum, const, properties, required, items, length and numeric constraintssecretValuesEmitted: false2 条证据说明 |
#portable 1.0.0
| 能力 | 状态 | 说明 |
|---|---|---|
extensionDirectories | unavailable | 2026-09-02: Agent Plugins 1.0.0 §8.2 reserves top-level reverse-domain directories for client-owned files; the compiler emits no client extension directory because no pinned client publishes a file-based namespace contract for this format (https://agent-plugins.org/specification). |
extensions | supported | configKey: portable.extensions1 条证据说明 |
lsp | unavailable | The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no LSP server surface. 1 条证据说明 |
manifest | — | plugin.json |
manifestMetadata | supported | configKey: portablefields: author, homepage, keywords, license, repository1 条证据说明 |
nativeDiagnostics | unavailable | The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no native diagnostics surface. 1 条证据说明 |
nativeExtension | unavailable | The portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no native extension surface, and its reverse-domain extensions metadata is not one.1 条证据说明 |
skillFeatures.hostFrontmatter | unavailable | The Agent Skills specification pinned for the portable target defines only the portable frontmatter fields; host-specific extensions are not emitted in the portable SKILL.md. 1 条证据说明 |
skillFeatures.markdownTokens | unavailable | The Agent Skills specification pinned for the portable target documents no Skill Markdown interpolation placeholders; a skill body token has no portable equivalent and fails closed (AB3008). 1 条证据说明 |
skills | supported | — |