Bundle Plugin Package
This document introduces the concept and development method of Bundle plugin packages. Bundle plugin packages can aggregate multiple plugins together, supporting three types (Marketplace, GitHub, and Package). The document details the entire process of creating a Bundle project, adding different types of dependencies, and packaging the Bundle project.
A Bundle plugin package is a collection of multiple plugins. It allows packaging several plugins within a single plugin, enabling batch installation and providing more powerful services.
You can use the Dify CLI tool to package multiple plugins into a Bundle. Bundle plugin packages come in three types:
Marketplace
type. Stores the plugin’s ID and version information. During import, the specific plugin package will be downloaded from the Dify Marketplace.GitHub
type. Stores the GitHub repository address, release version number, and asset filename. During import, Dify will access the corresponding GitHub repository to download the plugin package.Package
type. The plugin package is stored directly within the Bundle. It does not store reference sources, but this might lead to a larger Bundle package size.
Prerequisites
- Dify plugin scaffolding tool
- Python environment, version ≥ 3.10
For detailed instructions on how to prepare the plugin development scaffolding tool, please refer to Initialize Development Tools.
Create a Bundle Project
In the current directory, run the scaffolding command-line tool to create a new plugin package project.
If you have renamed the binary file to dify
and copied it to the /usr/local/bin
path, you can run the following command to create a new plugin project:
1. Fill in Plugin Information
Follow the prompts to configure the plugin name, author information, and plugin description. If you are collaborating as a team, you can also enter the organization name as the author.
The name must be 1-128 characters long and can only contain letters, numbers, hyphens, and underscores.
After filling in the information and pressing Enter, the Bundle plugin project directory will be automatically created.
2. Add Dependencies
- Marketplace
Execute the following command:
Where marketplace_pattern
is the reference to the plugin in the marketplace, in the format organization_name/plugin_name:version_number
.
- Github
Execute the following command:
Where repo_pattern
is the reference to the plugin on GitHub, in the format organization_name/repository_name:release/asset_name
.
- Package
Execute the following command:
Where package_path
is the directory of the plugin package.
Package the Bundle Project
Run the following command to package the Bundle plugin:
After executing the command, a bundle.difybndl
file will be automatically created in the current directory. This file is the final packaged result.