Dify
English
English
  • Getting Started
    • Welcome to Dify
      • Features and Specifications
      • List of Model Providers
    • Dify Community
      • Deploy with Docker Compose
      • Start with Local Source Code
      • Deploy with aaPanel
      • Start Frontend Docker Container Separately
      • Environment Variables Explanation
      • FAQs
    • Dify Cloud
    • Dify Premium on AWS
    • Dify for Education
  • Guides
    • Model
      • Add New Provider
      • Predefined Model Integration
      • Custom Model Integration
      • Interfaces
      • Schema
      • Load Balancing
    • Application Orchestration
      • Create Application
      • Chatbot Application
        • Multiple Model Debugging
      • Agent
      • Application Toolkits
        • Moderation Tool
    • Workflow
      • Key Concepts
      • Variables
      • Node Description
        • Start
        • End
        • Answer
        • LLM
        • Knowledge Retrieval
        • Question Classifier
        • Conditional Branch IF/ELSE
        • Code Execution
        • Template
        • Doc Extractor
        • List Operator
        • Variable Aggregator
        • Variable Assigner
        • Iteration
        • Parameter Extraction
        • HTTP Request
        • Agent
        • Tools
        • Loop
      • Shortcut Key
      • Orchestrate Node
      • File Upload
      • Error Handling
        • Predefined Error Handling Logic
        • Error Type
      • Additional Features
      • Debug and Preview
        • Preview and Run
        • Step Run
        • Conversation/Run Logs
        • Checklist
        • Run History
      • Application Publishing
      • Structured Outputs
      • Bulletin: Image Upload Replaced by File Upload
    • Knowledge
      • Create Knowledge
        • 1. Import Text Data
          • 1.1 Import Data from Notion
          • 1.2 Import Data from Website
        • 2. Choose a Chunk Mode
        • 3. Select the Indexing Method and Retrieval Setting
      • Manage Knowledge
        • Maintain Documents
        • Maintain Knowledge via API
      • Metadata
      • Integrate Knowledge Base within Application
      • Retrieval Test / Citation and Attributions
      • Knowledge Request Rate Limit
      • Connect to an External Knowledge Base
      • External Knowledge API
    • Tools
      • Quick Tool Integration
      • Advanced Tool Integration
      • Tool Configuration
        • Google
        • Bing
        • SearchApi
        • StableDiffusion
        • Dall-e
        • Perplexity Search
        • AlphaVantage
        • Youtube
        • SearXNG
        • Serper
        • SiliconFlow (Flux AI Supported)
        • ComfyUI
    • Publishing
      • Publish as a Single-page Web App
        • Web App Settings
        • Text Generator Application
        • Conversation Application
      • Embedding In Websites
      • Developing with APIs
      • Re-develop Based on Frontend Templates
    • Annotation
      • Logs and Annotation
      • Annotation Reply
    • Monitoring
      • Data Analysis
      • Integrate External Ops Tools
        • Integrate LangSmith
        • Integrate Langfuse
        • Integrate Opik
    • Extension
      • API-Based Extension
        • External Data Tool
        • Deploy API Tools with Cloudflare Workers
        • Moderation
      • Code-Based Extension
        • External Data Tool
        • Moderation
    • Collaboration
      • Discover
      • Invite and Manage Members
    • Management
      • App Management
      • Team Members Management
      • Personal Account Management
      • Subscription Management
      • Version Control
  • Workshop
    • Basic
      • How to Build an AI Image Generation App
    • Intermediate
      • Build An Article Reader Using File Upload
      • Building a Smart Customer Service Bot Using a Knowledge Base
      • Generating analysis of Twitter account using Chatflow Agent
  • Community
    • Seek Support
    • Become a Contributor
    • Contributing to Dify Documentation
  • Plugins
    • Introduction
    • Quick Start
      • Install and Use Plugins
      • Develop Plugins
        • Initialize Development Tools
        • Tool Plugin
        • Model Plugin
          • Create Model Providers
          • Integrate the Predefined Model
          • Integrate the Customizable Model
        • Agent Strategy Plugin
        • Extension Plugin
        • Bundle
      • Debug Plugin
    • Manage Plugins
    • Schema Specification
      • Manifest
      • Endpoint
      • Tool
      • Agent
      • Model
        • Model Designing Rules
        • Model Schema
      • General Specifications
      • Persistent Storage
      • Reverse Invocation of the Dify Service
        • App
        • Model
        • Tool
        • Node
    • Best Practice
      • Develop a Slack Bot Plugin
      • Dify MCP Plugin Guide: Connect Zapier and Automate Email Delivery with Ease
    • Publish Plugins
      • Publish Plugins Automatically
      • Publish to Dify Marketplace
        • Plugin Developer Guidelines
        • Plugin Privacy Protection Guidelines
      • Publish to Your Personal GitHub Repository
      • Package the Plugin File and Publish it
      • Signing Plugins for Third-Party Signature Verification
    • FAQ
  • Development
    • Backend
      • DifySandbox
        • Contribution Guide
    • Models Integration
      • Integrate Open Source Models from Hugging Face
      • Integrate Open Source Models from Replicate
      • Integrate Local Models Deployed by Xinference
      • Integrate Local Models Deployed by OpenLLM
      • Integrate Local Models Deployed by LocalAI
      • Integrate Local Models Deployed by Ollama
      • Integrate Models on LiteLLM Proxy
      • Integrating with GPUStack for Local Model Deployment
      • Integrating AWS Bedrock Models (DeepSeek)
    • Migration
      • Migrating Community Edition to v1.0.0
  • Learn More
    • Use Cases
      • DeepSeek & Dify Integration Guide: Building AI Applications with Multi-Turn Reasoning
      • Private Deployment of Ollama + DeepSeek + Dify: Build Your Own AI Assistant
      • Build a Notion AI Assistant
      • Create a MidJourney Prompt Bot with Dify
      • Create an AI Chatbot with Business Data in Minutes
      • Integrating Dify Chatbot into Your Wix Website
      • How to connect with AWS Bedrock Knowledge Base?
      • Building the Dify Scheduler
      • Building an AI Thesis Slack Bot on Dify
    • Extended Reading
      • What is LLMOps?
      • Retrieval-Augmented Generation (RAG)
        • Hybrid Search
        • Re-ranking
        • Retrieval Modes
      • How to Use JSON Schema Output in Dify?
    • FAQ
      • Self-Host
      • LLM Configuration and Usage
      • Plugins
  • Policies
    • Open Source License
    • User Agreement
      • Terms of Service
      • Privacy Policy
      • Get Compliance Report
  • Features
    • Workflow
Powered by GitBook
On this page
  • Submitting a Pull Request (PR) for Review
  • During Pull Request (PR) Review
  • After Pull Request (PR) Approval
  • Review Process
  • Frequently Asked Questions
  1. Plugins
  2. Publish Plugins

Publish to Dify Marketplace

PreviousPublish Plugins AutomaticallyNextPlugin Developer Guidelines

Last updated 3 months ago

Dify Marketplace welcomes plugin submission requests from both partners and community developers. Your contributions will broaden the scope of possibilities for Dify plugins. This guide provides clear publishing procedures and best-practice recommendations to help you successfully release your plugin and create value for the community.

Follow these steps to submit your plugin as a Pull Request (PR) in the for review. Once approved, your plugin will officially launch on the Dify Marketplace.

Submitting a Pull Request (PR) for Review

To publish your plugin on the Dify Marketplace, follow these steps:

  1. Develop and test your plugin according to the .

  2. Write a for your plugin in line with Dify’s privacy policy requirements. In your plugin’s file, include the file path or URL for this privacy policy.

  3. Package your plugin for distribution.

  4. Fork the repository on GitHub.

  5. Create an organization directory under the repository’s main structure, then create a subdirectory named after your plugin. Place your plugin’s source code and the packaged .pkg file in that subdirectory.

  6. Submit a Pull Request (PR) following the required PR template format, then wait for the review;

  7. Once approved, your plugin code will merge into the main branch, and the plugin will be automatically listed on the .

Here is the general plugin review process:

The process of uploading plugins

Note:


During Pull Request (PR) Review

Respond proactively to reviewer questions and feedback.

  • PR comments unresolved within 14 days will be marked as stale (they can be reopened).

  • PR comments unresolved within 30 days will be closed (they cannot be reopened, and a new PR must be created).


After Pull Request (PR) Approval

1. Ongoing Maintenance

  • Address user-reported issues and feature requests

  • Migrate plugins when major API changes occur:

    • Dify will provide advance notice of changes and migration instructions.

    • Dify engineers can provide migration support.

2. Marketplace Public Beta Testing Restrictions

  • Avoid introducing breaking changes to existing plugins.


Review Process

1. Review Order

  • Pull Requests (PRs) are handled on a first-come, first-served basis.

  • Review will generally begin within one week. If there’s a delay, the reviewer will comment on the PR to inform the author.

2. Review Focus

  • Verify plugin name, description, and setup instructions are clear and instructive.

3. Plugin Functionality and Relevance

  • Ensure the plugin's purpose is reasonable within the Dify ecosystem.


Frequently Asked Questions

  1. How do I know if my plugin is unique?

Example: A Google search plugin that only adds language parameters should probably be submitted as an extension to an existing plugin. However, if the plugin implements significant functional improvements (like optimized batch processing or error handling), it can be submitted as a new plugin.

  1. What if my PR is marked as stale or closed?

  • A stale PR can be reopened once you’ve addressed the requested changes.

  • A closed PR (over 30 days old) requires opening a new PR.

  1. Can I update my plugin during the beta test phase?

Yes, but breaking changes should be avoided.

The Contributor Agreement mentioned above refers to .

Check if the plugin’s file follows format specifications and includes valid author contact information.

Test plugins according to .

reserves the right to accept or reject plugin submissions.

Plugin Developer Guidelines
Manifest
Plugin Development Guidelines
Dify.AI
GitHub repository
Plugin Developer Guidelines
Plugin Privacy Policy
Manifest
Dify Plugins
Dify Marketplace