So you're looking to contribute to Dify - that's awesome, we can't wait to see what you do. As a startup with limited headcount and funding, we have grand ambitions to design the most intuitive workflow for building and managing LLM applications. Any help from the community counts, truly.
We need to be nimble and ship fast given where we are, but we also want to make sure that contributors like you get as smooth an experience at contributing as possible. We've assembled this contribution guide for that purpose, aiming at getting you familiarized with the codebase & how we work with contributors, so you could quickly jump to the fun part.
This guide, like Dify itself, is a constant work in progress. We highly appreciate your understanding if at times it lags behind the actual project, and welcome any feedback for us to improve.
In terms of licensing, please take a minute to read our short License and Contributor Agreement. The community also adheres to the code of conduct.
Looking for something to tackle? Browse our good first issues and pick one to get started!
Got a cool new model runtime or tool to add? Open a PR in our plugin repo and show us what you've built.
Need to update an existing model runtime, tool, or squash some bugs? Head over to our official plugin repo and make your magic happen!
Join the fun, contribute, and let's build something awesome together! 💡✨
Don't forget to link an existing issue or open an new issue in the PR's description.
[!IMPORTANT] Please make sure to include the following information when submitting a bug report:
How we prioritize:
| Issue Type | Priority | | ------------------------------------------------------------ | --------------- | | Bugs in core functions (cloud service, cannot login, applications not working, security loopholes) | Critical | | Non-critical bugs, performance boosts | Medium Priority | | Minor fixes (typos, confusing but working UI) | Low Priority |
[!NOTE] Please make sure to include the following information when submitting a feature request:
How we prioritize:
| Feature Type | Priority | | ------------------------------------------------------------ | --------------- | | High-Priority Features as being labeled by a team member | High Priority | | Popular feature requests from our community feedback board | Medium Priority | | Non-core features and minor enhancements | Low Priority | | Valuable but not immediate | Future-Feature |
fixes #<issue_number>
Get merrged!
For setting up the frontend service, please refer to our comprehensive guide in the web/README.md
file. This document provides detailed instructions to help you set up the frontend environment properly.
For setting up the backend service, kindly refer to our detailed instructions in the api/README.md
file. This document contains step-by-step guidance to help you get the backend up and running smoothly.
We recommend reviewing this document carefully before proceeding with the setup, as it contains essential information about:
Feel free to reach out if you encounter any issues during the setup process.
If you ever get stuck or got a burning question while contributing, simply shoot your queries our way via the related GitHub issue, or hop onto our Discord for a quick chat.