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.

./dify-plugin-darwin-arm64 bundle init

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:

dify bundle init

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:

dify-plugin bundle append marketplace . --marketplace_pattern=langgenius/openai:0.0.1

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:

dify-plugin bundle append github . --repo_pattern=langgenius/openai:0.0.1/openai.difypkg

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:

dify-plugin bundle append package . --package_path=./openai.difypkg

Where package_path is the directory of the plugin package.

Package the Bundle Project

Run the following command to package the Bundle plugin:

dify-plugin bundle package ./bundle

After executing the command, a bundle.difybndl file will be automatically created in the current directory. This file is the final packaged result.