Skip to main content

Agent Plugin Authoring

Optional Files and Settings

Files and Directories

The following is an example of what a sample Plugin directory looks like.

The /manifest.json, readme.md, and /static/icon.png files are your points of interest here.

handler.py
manifest.json       <-- HERE
requirements.txt    
readme.md           <-- HERE
/template           
    panel.html      
    thread.html     
    message.html    
/static             
    icon.png        <-- HERE
    ...

manifest.json

Your manifest.json contains a description of your Plugin as well as the options that for you plugin.

It will use these option definitions to populate the settings found on the Create Panel and Edit Panel pages when the plugin is selected.

An example of the simplest manifest would be:

{
  "name": "My First Plugin",
}

The options for manifests are available below:

{
  "name": "string",                                 # Name of the agent plugin
  "category": "string",                             # Grouping in agent plugin list in UI
  "capabilities": {                                 # Capabilities are key:value context passed to front-end
    "vision": true,
    "actions": [                                    # (Alpha) Front-end modifier, brings up the `/action` panel
      {
        "command": "string",
        "parameters": "string",
        "description": "string"
      }
    ]
  },
  "settings": [
    {
      "name": "string",
      "description": "string",
      "default": "string",
      "type": "text | number | float", 
      "selections": [                               # Auto-complete selections
        {
          "group": "string",
          "values": [ "string", "string" ]
        },                                          # Selections can be grouped or ungrouped
        "string"
      ],
      "private": true | false,                      # Make field private (set-only)?
      "required": true | false,                     # Make required field?
      "advanced": true | false                      # Show in advanced settings dropdown?
    }
  ]
}

readme.md

A markdown description of your Plugin.
It will be rendered on the Create Panel and Edit Panel pages when the Plugin is selected.

/static/icon.png

/static/icon.png is a reserved asset. It will be the icon which is shown in the sidebar and header when using your Plugin / Panel.

We recommend a PNG which is at least 120px x 120px.