For AI agents: the complete documentation index is available at https://scriptedalchemy.github.io/agent-bundle/llms.txt, the full documentation bundle is available at https://scriptedalchemy.github.io/agent-bundle/llms-full.txt, and this page is available as Markdown at https://scriptedalchemy.github.io/agent-bundle/reference/hosts.md.
  • English
  • Host capability matrix

    Generated page

    This page is rendered at documentation build time from the pinned host capability tables claude-2.1.250.json, codex-0.147.0.json, cursor-2026-08-28.json, portable-1.0.0.json. Those JSON files are the source of truth every target adapter compiles against; change them, not this page.

    Every target adapter projects the normalized bundle against a pinned capability table: a JSON document recording the host version the evidence was observed against, the paths the host reads, and — for each capability — whether it is supported, degraded, or unavailable with a written reason. Nothing is inferred: a capability without evidence is unavailable, never a silent guess.

    Pinned hosts

    HostObserved versionPlugin manifestMarketplace manifestHooks document
    claude2.1.250.claude-plugin/plugin.json.claude-plugin/marketplace.jsonhooks/hooks.json
    codex0.147.0.codex-plugin/plugin.json.agents/plugins/marketplace.jsonhooks/hooks.json
    cursor2026-08-28.cursor-plugin/plugin.json.cursor-plugin/marketplace.jsonhooks/hooks.json
    portable1.0.0plugin.json

    Install surface

    HostStateMethod / commandsScopesSource
    claudesupportedmarketplaceAdd: claude plugin marketplace add ./
    pluginInstall: claude plugin install <plugin>@<marketplace> --scope <scope>
    user, project, localhttps://code.claude.com/docs/en/discover-plugins
    codexsupportedmarketplaceAdd: codex plugin marketplace add ./
    pluginInstall: codex plugin add <plugin>@<marketplace>
    userhttps://developers.openai.com/codex/cli/reference
    cursorsupportedmethod: copy
    localRoot: ~/.cursor/plugins/local/<name>
    userhttps://cursor.com/docs/plugins
    portableunavailablePortable is a distribution profile, not a host runtime with one universal plugin installation location.https://agent-plugins.org/

    Path tokens

    Tokenclaude 2.1.250codex 0.147.0cursor 2026-08-28portable 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 transports and token fields

    HoststdioStreamable HTTPFields accepting path tokens
    claudesupportedsupportedcommand: ${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}
    codexsupportedsupportedNo 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.
    cursorsupportedsupportedargs: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    env: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    headers: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    url: ${CURSOR_PLUGIN_ROOT}, ${workspaceFolder}
    portablesupportedsupportedargs: ${PLUGIN_DATA}, ${PLUGIN_ROOT}
    cwd: ${PLUGIN_DATA}, ${PLUGIN_ROOT}
    env: ${PLUGIN_DATA}, ${PLUGIN_ROOT}

    Plugin components

    The plugin section of each table, flattened to dotted capability paths. Boolean rows record a component the adapter emits; rows with a state carry the reason the host evidence supports or withholds it. Evidence notes stay in the JSON files.

    claude 2.1.250

    CapabilityStateDetail
    agents.componentunavailableThe #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 evidence notes
    agents.nameunavailableThe #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 evidence notes
    agents.descriptionunavailableThe #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 evidence notes
    agents.modelunavailableThe #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 evidence notes
    agents.effortunavailableThe #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 evidence notes
    agents.maxTurnsunavailableThe #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 evidence notes
    agents.toolsunavailableThe #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 evidence notes
    agents.disallowedToolsunavailableThe #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 evidence notes
    agents.skillsunavailableThe #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 evidence notes
    agents.memoryunavailableThe #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 evidence notes
    agents.backgroundunavailableThe #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 evidence notes
    agents.isolationWorktreeunavailableThe #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 evidence notes
    agents.hooksunavailableThe #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 evidence notes
    agents.mcpServersunavailableThe #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 evidence notes
    agents.permissionModeunavailableThe #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 evidence notes
    bin.bareCommandssupported
    bin.bashPathsupported
    bin.directorybin
    bin.enabledOnlysupported
    bin.organizationDistributionProhibitedsupported
    channels.bindsToPluginMcpServersupported
    channels.perChannelUserConfigsupported
    commandFrontmattersupportedfields: {"allowedTools":"allowed-tools","argumentHint":"argument-hint","description":"description","disableModelInvocation":"disable-model-invocation","model":"model"}
    2 evidence notes
    commandssupported
    dependencies.autoInstallsupported
    dependencies.autoInstallExceptionscommand-source, headersHelper
    dependencies.crossMarketplaceAllowlistallowCrossMarketplaceDependenciesOn
    dependencies.entryFormsname, object
    dependencies.errorCodesdependency-unsatisfied, range-conflict, dependency-version-unsatisfied, no-matching-tag
    dependencies.objectFieldsmarketplace, name, version
    dependencies.prereleaseOptInsupported
    dependencies.prunesupported
    dependencies.rangeIntersectionsupported
    dependencies.semverRangessupported
    dependencies.tagConvention{name}--v{version}
    distributionPolicy.skillsDirectoryPluginsunavailableAgent Bundle emits a plugin directory but does not place it in a Claude skills directory or register the host-owned @skills-dir identity.
    2 evidence notes
    distributionPolicy.skillsDirectoryProjectTrustunavailableAgent Bundle cannot grant or inspect the workspace trust required before Claude loads a project-scope @skills-dir plugin.
    1 evidence note
    distributionPolicy.skillsDirectoryMcpApprovalunavailableAgent Bundle can emit plugin MCP configuration but cannot complete Claude's per-server approval for a project-scope @skills-dir plugin.
    1 evidence note
    distributionPolicy.skillsDirectoryLspTrustunavailableAgent Bundle can emit plugin LSP configuration but cannot satisfy Claude's workspace-trust gate for a project-scope @skills-dir plugin.
    1 evidence note
    distributionPolicy.skillsDirectoryMonitorsunavailableAgent Bundle cannot make Claude load background monitors from a project-scope @skills-dir plugin, which the host explicitly skips.
    1 evidence note
    distributionPolicy.pluginInstallScopessupported3 evidence notes
    distributionPolicy.pluginReloadunavailableAgent Bundle cannot reload or restart a running Claude session after plugin files or installed versions change.
    3 evidence notes
    distributionPolicy.pluginTrustGatesunavailableAgent Bundle cannot accept Claude workspace-trust, server-managed-settings approval, or command-source confirmation prompts on a user's behalf.
    2 evidence notes
    distributionPolicy.syncedPluginsunavailableAgent Bundle cannot synchronize or administer the @synced plugins attached to a user's claude.ai account.
    2 evidence notes
    distributionPolicy.managedPluginScopeunavailableAgent Bundle cannot create, remove, enable, or disable managed-scope plugins; Claude exposes that host-owned scope as read-only and update-only.
    1 evidence note
    distributionPolicy.managedStrictKnownMarketplacesunavailableAgent Bundle does not emit or override the organization-managed strictKnownMarketplaces allowlist.
    2 evidence notes
    distributionPolicy.managedBlockedMarketplacesunavailableAgent Bundle does not emit or override the organization-managed blockedMarketplaces denylist.
    2 evidence notes
    distributionPolicy.managedDisableSideloadFlagsunavailableAgent Bundle cannot configure or bypass disableSideloadFlags in Claude managed settings.
    1 evidence note
    distributionPolicy.managedDisableCommandPluginSourcesunavailableAgent Bundle emits no managed setting that can permit, block, or exempt Claude command plugin sources.
    2 evidence notes
    distributionPolicy.managedAllowManagedHooksOnlyunavailableAgent Bundle cannot configure allowManagedHooksOnly or claim that emitted plugin commands are exempt from that managed policy.
    2 evidence notes
    distributionPolicy.managedPluginSuggestionsunavailableAgent Bundle does not emit the managed pluginSuggestionMarketplaces allowlist or marketplace relevance signals for contextual installation suggestions.
    2 evidence notes
    distributionPolicy.pluginCliLifecycleunavailableAgent 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, tag
    2 evidence notes
    distributionPolicy.marketplaceCliLifecycleunavailableAgent Bundle emits marketplace manifests but does not add, list, remove, or update marketplaces in a user's Claude configuration.
    commands: add, list, remove, update
    2 evidence notes
    packageLifecycle.nodeDependencyInstallunavailableAgent 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.json
    commands: {"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.json
    timeoutSeconds: 60
    5 evidence notes
    packageLifecycle.yarnPnpmInstallAlternativeunavailableAgent 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.yaml
    persistentDataToken: ${CLAUDE_PLUGIN_DATA}
    2 evidence notes
    packageLifecycle.pluginCacheLifecycleunavailableAgent 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/cache
    orphanGraceDays: 14
    6 evidence notes
    packageLifecycle.pluginPathSubstitutiondegradedAgent 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 evidence notes
    packageLifecycle.pluginDataLifecycleunavailableAgent 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: true
    cliDeleteDefault: true
    keepDataFlag: --keep-data
    2 evidence notes
    experimentalThemes.defaultDirectorythemes
    experimentalThemes.experimentalsupported
    experimentalThemes.manifestFieldexperimental.themes
    experimentalThemes.readOnlysupported
    devtools.detailssupported
    devtools.listJsonsupported
    devtools.pluginDirsupported
    devtools.strictValidationsupported
    devtools.tagsupported
    devtools.validatesupported
    lsp.config.lsp.json
    lsp.manifestFieldlspServers
    lsp.manifestFieldTypesarray, object, string
    lsp.optionalFieldsargs, diagnostics, env, initializationOptions, maxRestarts, restartOnCrash, settings, shutdownTimeout, startupTimeout, transport, workspaceFolder
    lsp.pathTokenFieldsargs, command, env, workspaceFolder
    lsp.requiredFieldscommand, extensionToLanguage
    lsp.transportssocket, stdio
    lsp.vendorsServerBinaryunavailable
    nativeDiagnosticsunavailableThe 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 evidence note
    nativeExtensionunavailableThe 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 evidence note
    metadata.defaultEnabled.defaultsupported
    metadata.defaultEnabled.dependencyRequirementPrecedencesupported
    metadata.defaultEnabled.fieldsupported
    metadata.defaultEnabled.marketplaceEntryPrecedencesupported
    metadata.defaultEnabled.persistedEnabledPluginsPrecedencesupported
    metadata.displayName.fallbackname
    metadata.displayName.fieldsupported
    metadata.freeform.fieldsupported
    metadata.freeform.hostReadsValuesunavailable
    metadata.freeform.nonObjectHandlingwarning-and-ignore
    metadata.freeform.strictValidationfailure
    metadata.standardFields$schema, author, description, homepage, keywords, license, repository, version
    monitors.commandTokens${CLAUDE_PLUGIN_ROOT}, ${CLAUDE_PLUGIN_DATA}, ${CLAUDE_PROJECT_DIR}, ${ENV_VAR}
    monitors.configmonitors/monitors.json
    monitors.defaultWhenalways
    monitors.experimentalsupported
    monitors.interactiveCliOnlysupported
    monitors.manifestFieldexperimental.monitors
    monitors.monitorToolRequiredsupported
    monitors.projectScopeSkillsDirectoryPluginsunavailable
    monitors.userConfigSubstitutionunavailable
    monitors.unsandboxedsupported
    manifest.claude-plugin/plugin.json
    marketplace.claude-plugin/marketplace.json
    marketplaceManifest.allowCrossMarketplaceDependenciesOnsupported
    marketplaceManifest.entryAuthenticationFieldsheaders, headersHelper
    marketplaceManifest.entryMetadataFields$schema, author, category, defaultEnabled, description, displayName, homepage, keywords, license, metadata, repository, strict, tags, version
    marketplaceManifest.entryRelevanceSignalscli, cwd, filesRead, hosts, manifestDeps
    marketplaceManifest.generatedSourceFormsrelative
    marketplaceManifest.sourceMatrix.archiveIntegritysha256-64-hex
    marketplaceManifest.sourceMatrix.authoredFormsrelative, github, url, git-subdir, npm, archive, command
    marketplaceManifest.sourceMatrix.generatedDefaultrelative
    marketplaceManifest.sourceMatrix.gitPinFieldsref, sha
    marketplaceManifest.sourceMatrix.shaOverridesRefsupported
    marketplaceManifest.sourceMatrix.versionGates.archive2.1.224
    marketplaceManifest.sourceMatrix.versionGates.command2.1.229
    marketplaceManifest.sourceMatrix.versionGates.pluginRootBareName2.1.239
    marketplaceManifest.renamessupported
    marketplaceManifest.topLevelFields$schema, allowCrossMarketplaceDependenciesOn, description, metadata, name, owner, plugins, renames, version
    paths.addsToDefaultskills
    paths.fieldTypesarray, string
    paths.ignoredDefaultFolderWarningsupported
    paths.marketplaceRootSkillsSubdirectoriesReplaceDefaultsupported
    paths.relativePrefix./
    paths.replacesDefaultagents, commands, experimental.monitors, experimental.themes, outputStyles, workflows
    paths.skillsRootException.
    paths.skillsRootExceptionSince2.1.221
    outputStyles.allowedSuffixes.md
    outputStyles.directoryoutput-styles
    outputStyles.frontmatterFieldsdescription, force-for-plugin, keep-coding-instructions, name
    outputStyles.manifestFieldoutputStyles
    outputStyles.replacesDefaultsupported
    settings.configsettings.json
    settings.placeholderSubstitutionunavailable
    settings.precedesManifestSettingssupported
    settings.subagentStatusLineFieldscommand, type
    settings.supportedKeysagent, subagentStatusLine
    settings.unknownKeysIgnoredsupported
    skillFeatures.hostFrontmattersupported1 evidence note
    skillFeatures.markdownTokenssupported1 evidence note
    skillssupported
    userConfig.envVarPrefixCLAUDE_PLUGIN_OPTION_
    userConfig.installConfigFlagsupported
    userConfig.optionalFieldsdefault, max, min, multiple, required, sensitive
    userConfig.projectSettingsIgnoredsupported
    userConfig.requiredFieldstype, title, description
    userConfig.sensitiveStoragesupported
    userConfig.settingsSourcesmanaged, --settings, user
    userConfig.shellSubstitutionRejectedhookShellCommands, monitorCommands, mcpHeadersHelper
    userConfig.substitutionToken${user_config.KEY}
    userConfig.typesboolean, directory, file, number, string
    workflows.directoryworkflows
    workflows.fileContentsopaque
    workflows.manifestFieldworkflows
    workflows.replacesDefaultsupported

    codex 0.147.0

    CapabilityStateDetail
    apps.registeredMcpMappingssupported1 evidence note
    components.lspunavailableThe pinned Codex plugin contract publishes no LSP server surface; language-server configuration reaches Claude Code only.
    1 evidence note
    components.nativeDiagnosticsunavailableThe pinned Codex plugin contract publishes no diagnostics-provider component; plugin-shipped diagnostics have no schema-backed authoring field, so the compiler emits none.
    1 evidence note
    components.nativeExtensionunavailableThe 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 evidence note
    overviewSurfaces.mcpUidegradedAgent 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 evidence notes
    overviewSurfaces.browserExtensionsunavailableBrowser 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 evidence notes
    overviewSurfaces.scheduledTaskTemplatesunavailableScheduled 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 evidence notes
    hookEnvironment.claudePluginDatasupported1 evidence note
    hookEnvironment.claudePluginRootsupported1 evidence note
    hookEnvironment.pluginDatasupported1 evidence note
    hookEnvironment.pluginRootsupported1 evidence note
    interface.assetssupported1 evidence note
    interface.brandColorsupported1 evidence note
    interface.categoryCapabilitiessupported1 evidence note
    interface.descriptionssupported1 evidence note
    interface.identitysupported1 evidence note
    interface.starterPromptssupported1 evidence note
    interface.urlssupported1 evidence note
    manifest.codex-plugin/plugin.json
    marketplace.agents/plugins/marketplace.json
    manifestPackage.manifestMetadatasupportedfields: author.name, author.email, author.url, homepage, repository, license, keywords
    2 evidence notes
    manifestPackage.manifestPathsdegradedThe 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 evidence notes
    manifestPackage.optionalAssetsunavailableThe 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.screenshots
    2 evidence notes
    manifestPackage.submissionPolicyunavailablePublic 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 attestations
    3 evidence notes
    mcpServerPolicy.approvalModesunavailablePlugin MCP approval modes are host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml.
    1 evidence note
    mcpServerPolicy.enabledunavailablePlugin MCP enabled state is host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml.
    1 evidence note
    mcpServerPolicy.toolsunavailablePlugin MCP tool selection is host-owned user configuration under plugins.&lt;plugin&gt;.mcp_servers.&lt;server&gt;; the compiler emits plugin artifacts and does not write the user's config.toml.
    1 evidence note
    skillFeatures.hostFrontmattersupported1 evidence note
    skillFeatures.markdownTokensunavailableThe 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 evidence note
    skillssupported

    cursor 2026-08-28

    CapabilityStateDetail
    agents.componentunavailableThe #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 evidence notes
    canvasesunavailableCursor advertises plugin canvases without publishing a schema-backed authoring contract; no canvas component is inferred from marketplace examples, so this compiler emits none.
    1 evidence note
    commandFrontmatterunavailableThe 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, model
    2 evidence notes
    commandssupported
    componentDiscoverysupporteddefaults: {"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-scan
    2 evidence notes
    contractcursor-plugin
    distributionPolicy.autoRefreshunavailableAgent Bundle emits marketplace documents but does not configure dashboard Auto Refresh, install the Cursor GitHub App, or trigger manual re-indexing.
    1 evidence note
    distributionPolicy.installModesunavailableInstallation 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, Required
    1 evidence note
    distributionPolicy.localPluginImportsunavailableAgent 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 evidence note
    distributionPolicy.localSymlinkInstallunavailableThe 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 evidence notes
    distributionPolicy.marketplaceAccessunavailableMarketplace scope and access are dashboard settings on the team's marketplace, not plugin-authored fields; this compiler emits nothing for them.
    1 evidence note
    distributionPolicy.marketplaceReviewunavailableAgent 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 evidence note
    distributionPolicy.teamMarketplacesunavailableTeam 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 evidence note
    formats.agentPluginunavailableThe 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.json
    2 evidence notes
    formats.cursorPluginsupportedmanifest: .cursor-plugin/plugin.json
    1 evidence note
    lspunavailableThe 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 evidence note
    nativeDiagnosticsunavailableThe pinned Cursor Plugin contract publishes no diagnostics-provider component, so the compiler emits none.
    1 evidence note
    nativeExtensionunavailableThe 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 evidence note
    ruleFrontmattersupportedfields: alwaysApply, description, globs
    1 evidence note
    skillFeatures.hostFrontmattersupported1 evidence note
    skillFeatures.markdownTokensunavailableThe 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 evidence note
    localInstall.methodcopy
    localInstall.root~/.cursor/plugins/local/<name>
    manifest.cursor-plugin/plugin.json
    manifestMetadatasupportedauthoredFields: author.name, author.email, homepage, repository, license, keywords, publisher, category, tags, minClientVersions
    generatedFields: name, displayName, description, version, logo, commands, hooks, mcpServers, rules, skills, variables
    schemaOnlyFields: displayName, publisher, category, tags, minClientVersions
    3 evidence notes
    marketplace.cursor-plugin/marketplace.json
    marketplaceManifestsupportedentryFields: name, source, description, version, author, homepage, repository, license, keywords, logo, category, tags, skills, rules, agents, commands, hooks, mcpServers, variables
    generatedEntryFields: name, source, description
    maxEntries: 500
    mergePrecedence: plugin-manifest-over-marketplace-entry
    3 evidence notes
    rootSkillunavailableAgent 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 evidence note
    rulessupported
    schemacursor/plugins@070189284e702e8a4d2e3cc8913994b204c5337a:schemas/plugin.schema.json
    skillssupported
    variablessupportedacceptedKeywords: type, title, description, default, enum, const, properties, required, items, length and numeric constraints
    secretValuesEmitted: false
    2 evidence notes

    portable 1.0.0

    CapabilityStateDetail
    extensionDirectoriesunavailable2026-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).
    extensionssupportedconfigKey: portable.extensions
    1 evidence note
    lspunavailableThe portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no LSP server surface.
    1 evidence note
    manifestplugin.json
    manifestMetadatasupportedconfigKey: portable
    fields: author, homepage, keywords, license, repository
    1 evidence note
    nativeDiagnosticsunavailableThe portable Agent Plugin contract (1.0.0) defines only skills and MCP components; it has no native diagnostics surface.
    1 evidence note
    nativeExtensionunavailableThe 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 evidence note
    skillFeatures.hostFrontmatterunavailableThe 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 evidence note
    skillFeatures.markdownTokensunavailableThe 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 evidence note
    skillssupported