Skip to content

Include client extension files

An agent client can define files beyond the portable plugin.json, skills/, and mcp.json locations. Keep those files under a client-owned directory in the plugin root and select them with include.

text
my-project/
├── plugin.json
└── com.example.client/
    ├── hooks/
    │   └── validate.py
    └── settings.json
toml
[tool.agent-plugins]
root = "../.."
include = ["com.example.client/**"]

The build plan preserves the paths relative to the plugin root. plugin.files exposes their installed absolute paths.

Extension files and manifest data

Client extension files and plugin.json.extensions are separate integration surfaces.

SurfaceShapeAccess
Client extension filesFiles and directories selected by include patternsplugin.files and native paths below plugin.path
Manifest extension dataNamespaced JSON objects inside plugin.jsonplugin.manifest.extensions

Use manifest extension data for small declarative settings:

json
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "my-project",
  "extensions": {
    "com.example.client": {
      "entrypoint": "com.example.client/hooks/validate.py"
    }
  }
}

The parser preserves each namespace object as immutable nested mappings and tuples. It does not interpret client-specific keys or require a matching extension directory.

Use include patterns for executable code, templates, schemas, and other file-backed resources. The agent client owns their meaning and activation.

Released under the Apache License 2.0.