YOUR AI PLATE HANDBOOK
Your first plugin
Create a complete JavaScript-backed greeting tool.
Desktop source reviewed October 5, 2026
1. Create plugin.json
Create hello-tools/plugin.json with this complete manifest. The JavaScript is an async function body: params contains the input; return a JSON-serializable object. Do not wrap the code in a module export.
{
"id": "hello_tools",
"name": "Hello Tools",
"version": "1.0.0",
"description": "A minimal greeting tool for AI Plate.",
"enabled": true,
"tools": [
{
"name": "hello_tools_greet",
"description": "Greet someone by name.",
"parametersJsonSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name to greet"
}
},
"required": [
"name"
]
},
"handler": {
"type": "javascript",
"code": "if (typeof params.name !== 'string' || !params.name.trim()) return { error: 'A name is required.' };\nreturn { greeting: 'Hello, ' + params.name.trim() + '!' };"
}
}
]
}json2. Package and install
Compress-Archive -Path .\hello-tools\* -DestinationPath .\hello-tools.plugin.zippowershell- Open desktop Settings → Plugins and import hello-tools.plugin.zip.
- Enable Hello Tools.
- Ask: “Use hello_tools_greet to greet Ada.”
- Expected tool result: { "greeting": "Hello, Ada!" }.
3. Test the edge cases
Test a missing name and a non-string name. Both should return an error object. Manifest schemas describe inputs to the model; your handler must still validate them.
{ "name": "Ada" }jsonImplementation sources
Paths in your AI Plate source checkout:
core/plugin-manager.tscore/types.ts
