Contributing
Rig is an open-source project and we welcome contributions from the community, whether that’s code, documentation, or feedback. This page outlines where help is most useful. The repository’s CONTRIBUTING.md has the full guidelines for pull requests, commit messages, and local checks.
Repository layout
Section titled “Repository layout”Rig is a monorepo. The root package is the rig facade; crates/rig-core holds the portable
contracts and built-in providers; crates/rig-agent holds the agent runtime; and each other
crates/rig-* crate is an integration with heavier dependencies (a vector store, an SDK-based
provider, MCP, recording). The facade exposes each companion crate as a feature-gated module.
Development
Section titled “Development”Model provider integrations
Section titled “Model provider integrations”If your favorite model provider isn’t supported, consider adding it.
- Built-in providers live in their own modules under
crates/rig-core/src/providers. - If the provider serves an OpenAI-compatible API, it usually needs no new wire: add a dialect
(its base URL, credential variable, and quirks) and a small vendor module with
from_env()andnew()constructors, following an existing one such asdeepseek. - Providers that need a vendor SDK or other heavy dependencies go in their own companion crate, like
rig-bedrockorrig-vertexai. - Provider behavior changes should come with cassette-backed regression tests, which replay recorded provider traffic offline.
Vector store integrations
Section titled “Vector store integrations”If your favorite vector store isn’t supported, consider adding it.
- Each vector store lives in its own crate,
crates/rig-<store>(for examplerig-qdrant), because stores usually bring large client dependencies. - Implement
VectorStoreIndexfor search andInsertDocumentsfor writes, and register the crate as a facade feature so users reach it asrig::<store>. - Add integration tests modeled on the existing stores.
Bug fixes
Section titled “Bug fixes”If you find a bug, open an issue with a reproducible example, and consider opening a pull request that fixes it with a test.
Documentation
Section titled “Documentation”Guides and tutorials
Section titled “Guides and tutorials”If you have experience with Rig and would like to share it, consider writing a guide or tutorial. To have it featured on this website, open a pull request on the site repository.
Other documentation improvements
Section titled “Other documentation improvements”If you find a typo, a mistake, or a section that could be clearer, open an issue or a pull request on the site repository. Its README explains how to run the site locally. Every Rust snippet in these docs is compiled against the current Rig release in CI, so code you add must build.
Ideas and feedback
Section titled “Ideas and feedback”If you have an idea for a feature or feedback on an existing one, open an issue on the GitHub repository. Check the existing issues first in case it’s already planned or in progress.
