Files
dify-docs/plugin-dev-en/0411-plugin-info-by-manifest.mdx
2025-07-16 16:42:34 +08:00

135 lines
6.5 KiB
Plaintext

---
dimensions:
type:
primary: reference
detail: core
level: beginner
standard_title: Plugin info by Manifest
language: en
title: Manifest
description: Authors Yeuoly, Allen. This document details the Manifest file in Dify
plugins, a YAML file defining basic plugin information. It includes complete code
examples and detailed structure explanations, covering configurations like plugin
version, type, author, name, resource usage, permission requests, feature definitions,
and runtime.
---
# Manifest
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](/plugin-dev-en/0111-getting-started-dify-plugin) and [Developer Cheatsheet](/plugin-dev-en/0131-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](https://github.com/langgenius/dify-official-plugins/blob/main/tools/google/manifest.yaml).
```yaml
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` (type, 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` (label, required): Multilingual name.
* `created_at` (RFC3339, required): Creation time, required by the Marketplace not to be later than the current time.
* `icon` (asset, 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` (bool)
* `model` (object): Permission for reverse invocation of models.
* `enabled` (bool)
* `llm` (bool)
* `text_embedding` (bool)
* `rerank` (bool)
* `tts` (bool)
* `speech2text` (bool)
* `moderation` (bool)
* `node` (object): Permission for reverse invocation of nodes.
* `enabled` (bool)
* `endpoint` (object): Permission to register `endpoint`.
* `enabled` (bool)
* `app` (object): Permission for reverse invocation of `app`.
* `enabled` (bool)
* `storage` (object): Permission to apply for persistent storage.
* `enabled` (bool)
* `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.
* Format
* `tools` (list[string]): Plugin extension for [Tool](/plugin-dev-en/0222-tool-plugin) providers.
* `models` (list[string]): Plugin extension for [Model](/plugin-dev-en/0411-model-plugin-introduction) providers.
* `endpoints` (list[string]): Plugin extension for [Endpoints](/plugin-dev-en/0432-develop-a-slack-bot-plugin) providers. (Note: Link updated to closest available English document)
* `agent_strategies` (list[string]): Plugin extension for [Agent Strategy](/plugin-dev-en/9433-agent-strategy-plugin) providers.
* Restrictions
* 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.
* `meta` (object)
* `version` (version, required): `manifest` format version, initial version `0.0.1`.
* `arch` (list[string], required): Supported architectures, currently only `amd64` `arm64` are supported.
* `runner` (object, required): Runtime configuration.
* `language` (string): Currently only python is supported.
* `version` (string): Language version, currently only `3.12` is supported.
* `entrypoint` (string): Program entry point, should be `main` under python.
* `privacy` (string, optional): Optional, 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](/plugin-dev-en/0312-privacy-protection-guidelines).
## Related Resources
* [Basic Concepts of Plugin Development](/plugin-dev-en/0111-getting-started-dify-plugin) - Comprehensive understanding of Dify plugin development.
* [Quickly Integrate a New Model](/plugin-dev-en/0211-getting-started-new-model) - Learn how to add new models for existing providers.
* [General Specifications Definition](/plugin-dev-en/0411-general-specifications) - Understand the common structures in plugin development.
* [Release Overview](/plugin-dev-en/0321-release-overview) - Learn about the plugin release process.
{/*
Contributing Section
DO NOT edit this section!
It will be automatically generated by the script.
*/}
---
[Edit this page](https://github.com/langgenius/dify-docs/edit/main/plugin-dev-en/0411-plugin-info-by-manifest.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)