Test a plugin locallyComing soon
Check plugin.yaml, your skills and your agents with the validator before you push.
Coming soon
The validator checks a plugin folder the way CoderHelm will when you install it. It needs only Node.js 20 or newer.
curl -fsSLO https://docs.coderhelm.com/tools/validate-plugin.mjs
node validate-plugin.mjs path/to/your-pluginThe file is a single script with its dependencies bundled in. It is built from the same JSON Schema this site publishes, on every build of these docs.
What it checks
plugin.yamlagainst the manifest schema: required fields, types, allowed values, and no unknown fields (a typo fails instead of being ignored).- Every
skillsandagentsglob matches at least one file. - Every file fits the limits (64,000 bytes per skill or agent; 200 items; 2,000,000 bytes in all).
- Each agent's
tools:are granted inplugin.yaml. {settings.key}and{input}placeholders name a real setting or input, andrequest.connectionnames aconnectionsetting.- A
publishoutput goes through aconsequentialtool, and areadtool only usesGET.
Warnings point out things that work but are probably mistakes, such as an input that no request uses, or allow: ["*"].
Output
$ node validate-plugin.mjs ./marketing
ok marketing 1.0.0$ node validate-plugin.mjs ./broken
error tools.publish_post: `{txt}` names no input
error agents/rogue.md: tool `delete_document` is not granted in plugin.yaml `tools`
2 errors: the plugin would be refused.It exits with status 1 when there are errors, so it can run in CI:
name: Plugin
on: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
- run: curl -fsSLO https://docs.coderhelm.com/tools/validate-plugin.mjs
- run: node validate-plugin.mjs .Editor checks
Point your editor at the schema for completion and inline errors as you type. With the YAML extension for VS Code, start plugin.yaml with:
# yaml-language-server: $schema=https://docs.coderhelm.com/schema/plugin-manifest.v1.jsonTry it on a test team
The validator checks the package; only a run checks the behavior. Add your repository as a source on a test team, follow your working branch, install the plugin, start it with a brief, and read the run and its drafts. Nothing can be published without an approval, so a test run is safe.