mirror of
https://github.com/langgenius/dify-docs.git
synced 2026-03-27 13:28:32 +07:00
* move files & renames * rename files and doc entries * sync develop plugin files * update group label translations * some cleanups * update configs * update links * add remote debug doc * delete redundant slashes and unnecessary notes * update ja and zh links --------- Co-authored-by: Riskey <riskey47@dify.ai>
110 lines
4.0 KiB
Plaintext
110 lines
4.0 KiB
Plaintext
---
|
|
dimensions:
|
|
type:
|
|
primary: implementation
|
|
detail: advanced
|
|
level: beginner
|
|
standard_title: Bundle
|
|
language: en
|
|
title: Bundle Plugin Package
|
|
description: 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](/en/develop-plugin/getting-started/cli).
|
|
|
|
### Create a Bundle Project
|
|
|
|
In the current directory, run the scaffolding command-line tool to create a new plugin package project.
|
|
|
|
```bash
|
|
./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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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.
|
|
|
|
{/*
|
|
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/en/develop-plugin/features-and-specs/advanced-development/bundle.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
|
|
|