--- dimensions: type: primary: conceptual detail: architecture level: beginner standard_title: Cheatsheet language: en title: Dify Plugin Development Cheatsheet description: A comprehensive reference guide for Dify plugin development, including environment requirements, installation methods, development process, plugin categories and types, common code snippets, and solutions to common issues. Suitable for developers to quickly consult and reference. --- ### Environment Requirements - Python version ≥ 3.12 - Dify plugin scaffold tool (dify-plugin-daemon) > Learn more: [Initializing Development Tools](/plugin-dev-en/0221-initialize-development-tools) ### Obtaining the Dify Plugin Development Package [Dify Plugin CLI](https://github.com/langgenius/dify-plugin-daemon/releases) #### Installation Methods for Different Platforms **macOS [Brew](https://github.com/langgenius/homebrew-dify) (Global Installation):** ```bash brew tap langgenius/dify brew install dify ``` After installation, open a new terminal window and enter the `dify version` command. If it outputs the version information, the installation was successful. **macOS ARM (M Series Chips):** ```bash # Download dify-plugin-darwin-arm64 chmod +x dify-plugin-darwin-arm64 ./dify-plugin-darwin-arm64 version ``` **macOS Intel:** ```bash # Download dify-plugin-darwin-amd64 chmod +x dify-plugin-darwin-amd64 ./dify-plugin-darwin-amd64 version ``` **Linux:** ```bash # Download dify-plugin-linux-amd64 chmod +x dify-plugin-linux-amd64 ./dify-plugin-linux-amd64 version ``` **Global Installation (Recommended):** ```bash # Rename and move to system path # Example (macOS ARM) mv dify-plugin-darwin-arm64 dify sudo mv dify /usr/local/bin/ dify version ``` ### Running the Development Package Here we use `dify` as an example. If you are using a local installation method, please replace the command accordingly, for example `./dify-plugin-darwin-arm64 plugin init`. ### Plugin Development Process #### 1. Create a New Plugin ```bash ./dify plugin init ``` Follow the prompts to complete the basic plugin information configuration > Learn more: [Dify Plugin Development: Hello World Guide](/plugin-dev-en/0211-getting-started-dify-tool) #### 2. Run in Development Mode Configure the `.env` file, then run the following command in the plugin directory: ```bash python -m main ``` > Learn more: [Remote Debugging Plugins](/plugin-dev-en/0411-remote-debug-a-plugin) #### 4. Packaging and Deployment Package the plugin: ```bash cd .. dify plugin package ./yourapp ``` > Learn more: [Publishing Overview](/plugin-dev-en/0321-release-overview) ### Plugin Categories #### Tool Labels Category `tag` [class ToolLabelEnum(Enum)](https://github.com/langgenius/dify-plugin-sdks/blob/main/python/dify_plugin/entities/tool.py) ```python class ToolLabelEnum(Enum): SEARCH = "search" IMAGE = "image" VIDEOS = "videos" WEATHER = "weather" FINANCE = "finance" DESIGN = "design" TRAVEL = "travel" SOCIAL = "social" NEWS = "news" MEDICAL = "medical" PRODUCTIVITY = "productivity" EDUCATION = "education" BUSINESS = "business" ENTERTAINMENT = "entertainment" UTILITIES = "utilities" OTHER = "other" ``` ### Plugin Type Reference Dify supports the development of various types of plugins: - **Tool plugin**: Integrate third-party APIs and services > Learn more: [Dify Plugin Development: Hello World Guide](/plugin-dev-en/0211-getting-started-dify-tool) - **Model plugin**: Integrate AI models > Learn more: [Model Plugin](/plugin-dev-en/0411-model-plugin-introduction), [Quick Integration of a New Model](/plugin-dev-en/0211-getting-started-new-model) - **Agent strategy plugin**: Customize Agent thinking and decision-making strategies > Learn more: [Agent Strategy Plugin](/plugin-dev-en/9433-agent-strategy-plugin) - **Extension plugin**: Extend Dify platform functionality, such as Endpoints and WebAPP > Learn more: [Extension Plugin](/plugin-dev-en/9231-extension-plugin) - **Data source plugin**: Serve as the document data source and starting point for knowledge pipelines > Learn more: [Data Source Plugin](/plugin-dev-en/0222-datasource-plugin) - **Trigger plugin**: Automatically trigger Workflow execution upon third-party events > Learn more: [Trigger Plugin](/plugin-dev-en/0222-trigger-plugin) {/* 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/0131-cheatsheet.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)