Contributing to VoiceGateway
Thank you for your interest in contributing to VoiceGateway. This guide covers everything you need to get started, whether you are reporting a bug, suggesting a feature, or submitting code.
Contributing to VoiceGateway
Thank you for your interest in contributing to VoiceGateway. This guide covers everything you need to get started, whether you are reporting a bug, suggesting a feature, or submitting code.
Code of Conduct
We follow the Contributor Covenant Code of Conduct. Please read it before participating. In short: be respectful, be constructive, and assume good intent.
Ways to contribute
Report a bug
- Search existing issues to check if it has already been reported
- Open a new issue using the Bug Report template
- Include: VoiceGateway version (
voicegw --version), Python version, OS, and a minimal reproducible example - Attach relevant logs (redact API keys)
Suggest a feature
- Open an issue using the Feature Request template
- Describe the use case, not just the solution
- If proposing a new provider, include links to the provider's API docs and pricing
Submit a pull request
We welcome PRs for bug fixes, new providers, documentation improvements, and new features. Follow this process:
- Fork the repository on GitHub
- Create a branch from
mainusing the naming convention:feat/<description>for featuresfix/<description>for bug fixesdocs/<description>for documentationtest/<description>for test-only changes
- Set up your development environment
- Make your changes following the code style guide
- Write tests for any new or changed behavior (see testing guide)
- Run the full test suite --
pytestmust pass - Run linters --
ruff checkandmypymust pass - Commit with Conventional Commits format
- Open a PR against
mainwith a clear description of what and why - Respond to review feedback -- maintainers aim to review within 48 hours
Improve documentation
Documentation source lives in docs/ and is rendered by mahimailabs/voicegateway-web at https://voicegateway.mahimai.ca/docs. See development setup for the current preview and rebuild flow. Even small fixes (typos, broken links, clearer examples) are valuable.
PR checklist
Before opening your PR, verify:
- Tests pass:
pytest - Linting passes:
ruff check . - Type checking passes:
mypy - New public APIs have Google-style docstrings
- Commit messages use Conventional Commits format
- Documentation is updated if behavior changed
- No secrets or API keys in the diff
First-time contributors
Look for issues labeled good first issue. These are scoped, well-documented tasks suitable for newcomers. Common first contributions:
- Adding a new provider (follow the provider guide)
- Improving test coverage for an existing module
- Fixing a documentation gap
- Adding a pricing entry to the catalog
Getting help
- Open a GitHub Discussion for questions
- Tag
@mahimaion issues if you are blocked
Related pages
voicegw.yaml reference
Every top-level section and key in the VoiceGateway config file. Validated with pydantic extra=forbid so typos fail fast at startup.
Adding a Provider
VoiceGateway uses a provider registry pattern that makes adding new providers straightforward. Each provider is a single Python file that extends `BaseProvider`. This guide walks through the full proc