Thanks for taking the time to contribute to VTS (Voice to Text Service)!
VTS is a modern macOS speech-to-text application, and we welcome contributions that help improve the transcription experience for users.
If you encounter a bug or have a feature request:
- Search existing issues first to avoid duplicates
- Use the issue templates when available
- Provide clear details including:
- macOS version
- VTS version
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Console logs if relevant
- Fork the repository and create a feature branch
- Check existing issues - your idea might already be planned
- Consider opening an issue to discuss major changes before implementation
-
Clone your fork:
git clone https://github.com/your-username/VTS.git cd VTS -
Open in Xcode:
open VTSApp.xcodeproj
-
Install dependencies: Dependencies are managed via Swift Package Manager and should resolve automatically
We follow Swift and SwiftUI best practices:
- Architecture: Maintain the existing clean architecture (Services, Providers, Protocols)
- SwiftUI Patterns: Use proper state management with
@StateObject,@ObservableObject, etc. - Error Handling: Use proper Swift error handling patterns
VTS supports multiple speech-to-text providers. To add a new one:
- Implement
STTProviderprotocol inVTSApp/VTS/Providers/ - Add to
STTProviderTypeenum inTranscriptionModels.swift - Update provider selection UI in
ContentView.swift - Update documentation including README and provider-specific setup
- Test on a real macOS device and add screenshots or videos to the Pull Request description
- Include edge cases - network failures, permission denied, etc.
- Create a clear title describing the change
- Keep changes focused - one feature/fix per PR
- All PRs require review by a maintainer
- Address feedback and be open to suggestions
- Keep discussions respectful and focused on the code
- Squash commits if requested before merge
Understanding the codebase structure helps with contributions:
VTS/
├── VTSApp/ # SwiftUI application
│ ├── VTSApp.swift # App entry point
│ ├── ContentView.swift # Main UI
│ └── VTS/ # Core library
│ ├── Services/ # Core services (CaptureEngine, etc.)
│ ├── Providers/ # STT provider implementations
│ ├── Protocols/ # Provider abstraction
│ ├── Models/ # Data models
│ └── Extensions/ # Utility extensions
- New STT Providers: Support for additional APIs
- Localization: Support for other languages in the UI
- Performance: Optimization for better real-time performance
- Documentation: Improve setup guides and API documentation
- Testing: Expand test coverage and edge case handling
- Open an issue for general questions
- Check existing discussions in the Issues section
- Review the README for basic setup and usage
Contributors who make significant improvements will be recognized in:
- Release notes for major contributions
- README contributors section (coming soon)
Thank you for contributing to VTS and helping make voice transcription better for the macOS community!
By contributing to VTS you agree that your contributions will be licensed under its MIT license.
Note: This project follows the Code of Conduct. By participating, you agree to abide by its terms.