Skip to main content
The Manifest is a YAML-compliant file that defines the most basic information of a plugin, including but not limited to the plugin name, author, included tools, models, etc. For the overall architecture of the plugin, please refer to Basic Concepts of Plugin Development and Developer Cheatsheet. If the format of this file is incorrect, the parsing and packaging process of the plugin will fail.

Code Example

Below is a simple example of a Manifest file. The meaning and function of each data item will be explained later. For reference code of other plugins, please refer to the GitHub code repository.
version: 0.0.1
type: "plugin"
author: "Yeuoly"
name: "neko"
label:
  en_US: "Neko"
created_at: "2024-07-12T08:03:44.658609186Z"
icon: "icon.svg"
resource:
  memory: 1048576
  permission:
    tool:
      enabled: true
    model:
      enabled: true
      llm: true
    endpoint:
      enabled: true
    app:
      enabled: true
    storage:
      enabled: true
      size: 1048576
plugins:
  endpoints:
    - "provider/neko.yaml"
meta:
  version: 0.0.1
  arch:
    - "amd64"
    - "arm64"
  runner:
    language: "python"
    version: "3.10"
    entrypoint: "main"
privacy: "./privacy.md"

Structure

version
version
required
The version of the plugin.
type
string
required
Plugin type, currently only plugin is supported, bundle will be supported in the future.
author
string
required
Author, defined as the organization name in the Marketplace.
label
object
required
Multilingual name.
created_at
RFC3339
required
Creation time, required by the Marketplace not to be later than the current time.
icon
string
required
Icon path.
resource
object
Resources to apply for.
memory
int64
Maximum memory usage, mainly related to AWS Lambda resource application on SaaS, unit in bytes.
permission
object
Permission application.
tool
object
Permission for reverse invocation of tools.
enabled
boolean
Whether to enable tool permissions.
model
object
Permission for reverse invocation of models.
enabled
boolean
Whether to enable model permissions.
llm
boolean
Whether to enable large language model permissions.
text_embedding
boolean
Whether to enable text embedding model permissions.
rerank
boolean
Whether to enable rerank model permissions.
tts
boolean
Whether to enable text-to-speech model permissions.
speech2text
boolean
Whether to enable speech-to-text model permissions.
moderation
boolean
Whether to enable content moderation model permissions.
node
object
Permission for reverse invocation of nodes.
enabled
boolean
Whether to enable node permissions.
endpoint
object
Permission to register endpoint.
enabled
boolean
Whether to enable endpoint permissions.
app
object
Permission for reverse invocation of app.
enabled
boolean
Whether to enable app permissions.
storage
object
Permission to apply for persistent storage.
enabled
boolean
Whether to enable storage permissions.
size
int64
Maximum allowed persistent memory size, unit in bytes.
plugins
object
required
A list of yaml files for the specific capabilities extended by the plugin. Absolute path within the plugin package. For example, if you need to extend a model, you need to define a file similar to openai.yaml, fill in the file path here, and the file at this path must actually exist, otherwise packaging will fail.
Extending both tools and models simultaneously is not allowed.
Having no extensions is not allowed.
Extending both models and Endpoints simultaneously is not allowed.
Currently, only one provider is supported for each type of extension.
tools
array[string]
Plugin extension for Tool providers.
models
array[string]
Plugin extension for Model providers.
endpoints
array[string]
Plugin extension for Endpoints providers.
agent_strategies
array[string]
Plugin extension for Agent Strategy providers.
meta
object
required
Metadata for the plugin.
version
version
required
manifest format version, initial version 0.0.1.
arch
array[string]
required
Supported architectures, currently only amd64 and arm64 are supported.
runner
object
required
Runtime configuration.
language
string
required
Programming language. Currently only Python is supported.
version
string
required
Language version, currently only 3.12 is supported.
entrypoint
string
required
Program entry point, should be main under Python.
privacy
string
Specifies the relative path or URL of the plugin’s privacy policy file, e.g., "./privacy.md" or "https://your-web/privacy". If you plan to list the plugin on the Dify Marketplace, this field is required to provide clear user data usage and privacy statements. For detailed filling guidelines, please refer to Plugin Privacy Data Protection Guidelines.

Edit this page | Report an issue