Plugin Manifest Reference
The manifest.json file defines your plugin’s metadata, configuration, permissions, and integration with NetPad’s modern node system. This page details every field, validation rule, and best practice for authoring a manifest.
Example manifest.json
{
"name": "my-custom-node",
"version": "1.0.0",
"displayName": "My Custom Node",
"description": "A custom node for my workflow",
"author": "developer@company.com",
"license": "MIT",
"keywords": ["api", "integration", "custom"],
"category": "integration",
"scope": "private",
"permissions": {
"network": ["api.example.com"],
"environment": ["NODE_ENV"],
"files": []
},
"nodeConfig": {
"gradientColors": ["#FF5722", "#FF8A65"],
"primaryColor": "#FF5722",
"badgeText": "CUSTOM",
"description": "Custom integration node",
"category": "integration"
},
"dependencies": {
"axios": "^1.0.0"
},
"files": {
"runner": "./runner.js",
"shape": "./shape.js",
"icon": "./icon.svg"
}
}Manifest Fields
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Plugin identifier (kebab-case, unique) |
version | string | Yes | Semantic version (e.g. 1.0.0) |
displayName | string | Yes | Human-readable name |
description | string | Yes | Short description |
author | string | Yes | Author email |
license | string | No | License type (default: MIT) |
keywords | string[] | No | Search keywords |
category | string | Yes | Plugin category (see below) |
scope | string | Yes | private, org, or public |
permissions | object | No | Security permissions (see below) |
nodeConfig | object | Yes | Visual config for ModernNodeBase |
dependencies | object | No | NPM dependencies |
files | object | Yes | File paths for runner, shape, icon |
homepage | string | No | Plugin homepage URL |
repository | string | No | Source repository URL |
engine | object | No | NetPad version requirements |
Categories
ai,data,database,integration,communication,utility,analytics,display,execution,custom
Permissions
Declare what your plugin needs:
network: List of allowed domains for HTTP/API accessenvironment: List of allowed environment variablesfiles: List of allowed file pathsdatabase: Database access (future)external_api: External API calls (future)
Example:
"permissions": {
"network": ["api.example.com"],
"environment": ["NODE_ENV"],
"files": []
}nodeConfig (Visuals)
Configure your node’s appearance in the NetPad editor:
gradientColors: Array of two hex colors for backgroundprimaryColor: Main accent colorbadgeText: Short badge label (max 10 chars)description: Node descriptioncategory: Node category
Example:
"nodeConfig": {
"gradientColors": ["#FF5722", "#FF8A65"],
"primaryColor": "#FF5722",
"badgeText": "CUSTOM",
"description": "Custom integration node",
"category": "integration"
}files
runner: Main logic file (required)shape: Node shape/visual (required)icon: SVG icon (required)
Validation Rules
- All required fields must be present
namemust be kebab-case, unique, and not reservedversionmust follow semantic versioningcategoryandscopemust be valid valuespermissionsmust only declare allowed keysnodeConfig.gradientColorsmust be two valid hex colorsbadgeTextshould be ≤ 10 characters
Further Reading
For more, see the Plugin Sprint Plan.