Publishing through a personal GitHub repository lets you ship a plugin without going through Dify Marketplace review. Users install the plugin by entering your repo URL and selecting a release that contains aDocumentation Index
Fetch the complete documentation index at: https://docs.dify.ai/llms.txt
Use this file to discover all available pages before exploring further.
.difypkg asset.
When to use this method
- You want full control over versioning and the release cadence.
- The plugin is open source and you want others to read, fork, or contribute to it.
- The plugin is for internal use within a team or org, but you still want one canonical install URL.
- Your plugin is awaiting marketplace review and you need an interim distribution channel.
Prerequisites
- A packaged plugin (
.difypkgfile). If you don’t have one yet, see Package as Local File and Share. - A GitHub account.
- A Dify workspace where you (or your users) have permission to install plugins.
Step 1: Create a GitHub repository
Create the repository
On GitHub, create a new public repository. The name typically matches your plugin name (for example,
dify-plugin-flomo).Confirm the manifest
The
author field in manifest.yaml and in any provider/*.yaml must match your GitHub handle. Mismatches cause plugin_unique_identifier is not valid when users try to install. See the General Specifications for manifest details.Step 2: Build the plugin package
From the directory above your plugin project, run:your_plugin_project.difypkg in the current directory.
Step 3: Publish a GitHub release
GitHub releases are how Dify discovers installable versions of your plugin.Tag a release
On your repository page, click Releases > Draft a new release. Create a new tag using semantic versioning (for example,
v0.0.1). The tag should match the version field in your manifest.yaml.Attach the .difypkg file
In the release form, drag the
.difypkg file into the Assets area. Dify reads this asset when users install from your repo.Step 4: Install from your repository
Share your repository URL with users. They install it in Dify as follows:Enter repository details
Paste the repository URL (for example,
https://github.com/<your-handle>/<repo-name>), then select the version from the dropdown. Dify pulls the matching .difypkg asset from that release.The plugin appears on the user’s Plugins page within seconds of clicking Install. Dify pulls the
.difypkg from your GitHub release on demand.Troubleshooting
plugin_unique_identifier is not valid: theauthorfield inmanifest.yaml(andprovider/*.yaml) doesn’t match the GitHub handle that owns the repo. Update it, repackage, and re-release.- No versions appear in the install dialog: the release has no
.difypkgasset attached, or the repo has no releases yet. Open the release on GitHub and confirm the asset is listed under Assets. - Signature verification error: self-hosted Dify instances may have signature verification enabled. See Third-Party Signature Verification to sign your release, or see the FAQ for the bypass option.
Related Resources
- Publishing Overview - Compare publishing methods
- Package as Local File and Share - Build a
.difypkgpackage - Publish to Dify Marketplace - Submit through the official marketplace
- Third-Party Signature Verification - Sign packages for verified installs
- General Specifications - Manifest field reference
Edit this page | Report an issue