Plugins
Plugins are themed bundles of agents, instructions, skills, and hooks. They are the distribution format for FrootAI primitives โ installable packages that ship via the FrootAI Marketplace.
Plugin Structureโ
Every plugin lives under plugins/ with this layout:
plugins/document-intelligence/
โโโ plugin.json # Required โ plugin manifest
โโโ README.md # Required โ user-facing documentation
โโโ CHANGELOG.md # Recommended โ version history
โโโ assets/ # Optional โ icons, screenshots
โโโ icon.png
The folder name must be lowercase-hyphen and match the name field in plugin.json.
plugin.json Schemaโ
plugins/document-intelligence/plugin.json
{
"name": "document-intelligence",
"description": "End-to-end document processing pipeline with Azure AI Document Intelligence, OCR extraction, and PII detection.",
"version": "1.0.0",
"author": {
"name": "FrootAI Contributors",
"url": "https://frootai.dev"
},
"repository": "https://github.com/frootai/frootai",
"license": "MIT",
"keywords": ["document-intelligence", "ocr", "extraction", "pii-detection"],
"agents": [
"../../agents/fai-document-processor.agent.md",
"../../agents/fai-extraction-reviewer.agent.md"
],
"instructions": [
"../../instructions/python-waf.instructions.md"
],
"skills": [
"../../skills/fai-document-indexer/"
],
"hooks": [
"../../hooks/fai-pii-redactor/"
],
"plays": ["06", "15"]
}
Required Fieldsโ
| Field | Type | Rules |
|---|---|---|
name | string | ^[a-z0-9]([a-z0-9-]*[a-z0-9])?$, 3โ64 chars, must match folder |
description | string | 10โ500 characters |
version | string | Semver: MAJOR.MINOR.PATCH (e.g., 1.0.0) |
author.name | string | Required |
license | string | SPDX identifier (MIT, Apache-2.0) |
Optional Fieldsโ
| Field | Type | Description |
|---|---|---|
author.email | string | Contact email |
author.url | string | Author website |
repository | string | GitHub URL |
homepage | string | Plugin docs URL |
keywords | string[] | Lowercase-hyphen tags, max 20 |
agents | string[] | Relative paths to .agent.md files |
instructions | string[] | Relative paths to .instructions.md files |
skills | string[] | Relative paths to skill folders (trailing /) |
hooks | string[] | Relative paths to hook folders (trailing /) |
plays | string[] | Compatible solution play IDs |
:::info Plugins as DevKit Distribution Plugins are how DevKit primitives are distributed. Design your skill and agent bundles so they can be extracted as standalone plugins for the marketplace. :::
Versioning Strategyโ
Follow semantic versioning for all releases:
| Change Type | Version Bump | Example |
|---|---|---|
| Bug fix in agent prompt | PATCH | 1.0.0 โ 1.0.1 |
| Add new instruction | MINOR | 1.0.1 โ 1.1.0 |
| Remove an agent or rename paths | MAJOR | 1.1.0 โ 2.0.0 |
| Pre-release testing | PRERELEASE | 2.0.0-beta.1 |
Creating a Pluginโ
- Create the folder:
mkdir -p plugins/my-plugin - Create
plugin.jsonwith required fields - Create
README.mddocumenting what's included - Reference existing primitives via relative paths
- Validate:
npm run validate:primitives - Regenerate marketplace:
node scripts/generate-marketplace.js
Registering in the Marketplaceโ
After validation, add your plugin to the marketplace:
# Validate schema compliance
npm run validate:primitives
# Regenerate marketplace index
node scripts/generate-marketplace.js
# Verify your plugin appears
node -e "
const m = require('./marketplace.json');
const p = m.plugins.find(p => p.name === 'my-plugin');
console.log(p ? 'โ
Found: ' + p.name : 'โ Not found');
"
Referencing in a Playโ
fai-manifest.json
{
"primitives": {
"plugins": ["../../plugins/document-intelligence/"]
}
}
Validationโ
npm run validate:primitives
Common errors:
| Error | Fix |
|---|---|
name must match pattern | Use only lowercase letters, numbers, hyphens |
description too short | Write at least 10 characters |
version must match pattern | Use X.Y.Z format |
author.name is required | Add "author": { "name": "..." } |
agents[0] path not found | Ensure referenced file exists at the relative path |
See Alsoโ
- Package a Plugin Guide โ step-by-step tutorial
- Skills โ skills bundled in plugins
- Hooks โ hooks bundled in plugins