Dynamo is an open-source distributed inference platform, built by a growing community of contributors. The project is licensed under Apache 2.0 and welcomes contributions of all sizes — from typo fixes to major features. Community contributions have shaped core areas of Dynamo including backend integrations, documentation, deployment tooling, and performance improvements.
With 200+ external contributors, 220+ merged community PRs, and new contributors joining every month, Dynamo is one of the fastest-growing open-source inference projects. Check out our commit activity and GitHub stars. This guide will help you get started.
Join the community:
#ai-dynamo) — join CNCF Slack and find us in #ai-dynamoFor experienced contributors:
git checkout -b yourname/fix-router-timeoutpre-commit rungit commit -s -m "fix: description"mainFound something broken? Open a bug report with:
Documentation improvements are always welcome:
Small doc fixes can be submitted directly as PRs without an issue.
Have an idea? Open a feature request to discuss it with maintainers before implementation.
Ready to write code? See the Contribution Workflow section below.
Not all contributions are code. You can also:
Browse open issues or look for:
Full build instructions are included below. Expand the accordion to set up your local development environment.
Ubuntu:
macOS:
Install uv if you don’t have it:
Create and activate a virtual environment:
Maturin is the Rust-Python bindings build tool.
VSCode and Cursor users can use the .devcontainer folder for a pre-configured development environment. See the devcontainer README for details.
You’re all set up! Get curious — explore the codebase, experiment with the examples, and see how the pieces fit together. When you’re ready, pick an issue from the Good First Issues board or read on for the full contribution workflow.
The contribution process depends on the size and scope of your change. Even when not required, opening an issue is a great way to start a conversation with Dynamo maintainers before investing time in a PR.
Small changes (under 100 lines): Submit a PR directly — no issue needed. This includes typos, simple bug fixes, and formatting. If your PR addresses an existing approved issue, link it with “Fixes #123”.
Larger changes (≥100 lines): Open a Contribution Request issue first and wait for the approved-for-pr label before submitting a PR.
Architecture changes: Changes that affect multiple components, introduce or modify public APIs, alter communication plane architecture, or affect backend integration contracts require a Dynamo Enhancement Proposal (DEP). Open a DEP in the ai-dynamo/enhancements repo before starting implementation.
Create a GitHub Issue (if required) — Open a Contribution Request and describe what you’re solving, your proposed approach, estimated PR size, and files affected.
Get Approval — Wait for maintainers to review and apply the approved-for-pr label.
Submit a Pull Request — Open a PR that references the issue using GitHub keywords (e.g., “Fixes #123”).
Address Code Rabbit Review — Respond to automated Code Rabbit suggestions, including nitpicks.
Trigger CI Tests — For external contributors, a maintainer must comment /ok to test COMMIT-ID to run the full CI suite, where COMMIT-ID is the short SHA of your latest commit. Fix any failing tests before requesting human review.
Request Review — Add the person who approved your issue as a reviewer. Check CODEOWNERS for required approvers based on files modified.
AI-Generated Code: While we encourage using AI tools, you must fully understand every change in your PR. Inability to explain submitted code will result in rejection.
Use a descriptive branch name that identifies you and the change:
Examples:
Maintainers assess contribution quality based on code style, test coverage, architecture alignment, and review responsiveness. Consistent, high-quality contributions are the foundation for building trust in the project.
All PRs are checked against pre-commit hooks. After installing pre-commit, run checks locally:
Use conventional commit prefixes:
Examples:
Run the test suite before submitting a PR:
For Rust components:
For the Kubernetes operator (Go):
Use act to run workflows locally:
Or use the GitHub Local Actions VS Code extension.
We aim to:
Issues with no activity for 30 days may be auto-closed (can be reopened).
After you submit a PR and complete the steps in Submitting a Pull Request:
Issues labeled good-first-issue are sized for new contributors. We provide extra guidance on these — look for clear acceptance criteria and a suggested approach in the issue description.
Dynamo requires all contributions to be signed off with the Developer Certificate of Origin (DCO). This certifies that you have the right to submit your contribution under the project’s Apache 2.0 license.
Each commit must include a sign-off line:
Add this automatically with the -s flag:
Requirements:
user.name and user.email must be configured in gitDCO Check Failed? See our DCO Troubleshooting Guide for step-by-step instructions to fix it.
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.
We are committed to providing a welcoming and inclusive environment. All participants are expected to abide by our Code of Conduct.
If you discover a security vulnerability, please follow the instructions in our Security Policy. Do not open a public issue for security vulnerabilities.
#ai-dynamoThank you for contributing to Dynamo!