Help build the best iOS network debugger.
Trace is open source and community-driven. Contributions are welcome in many forms—code, documentation, bug reports, feature requests, and more.
Ways to contribute
Code
Fix bugs, implement features, or optimize performance. Browse issues labeled "good first issue" to get started with a manageable first contribution.
View good first issues →Community
Help others in discussions, share debugging workflows, or write tutorials.
Join discussions →Bug reports & feature requests
Found a bug? Report it with steps to reproduce and device details. Have an idea? Open a discussion describing the use case. We prioritize features based on user feedback.
Code contribution workflow
Find or create an issue
Fork and clone
git clone https://github.com/Trace-iOS/TraceCreate a feature branch
main:git checkout -b feature/your-feature-nameWrite and test your changes
Submit a pull request
Guidelines
Code style
Follow Swift conventions and Apple's API Design Guidelines. Use SwiftLint configuration from the repository. Keep functions focused and well-named. Add comments for non-obvious logic.
Commit messages
Write clear commit messages in present tense: "Add WebSocket frame filtering" not "Added...". Reference issue numbers when relevant.
Testing
Add tests for new features. Ensure existing tests pass. Manual testing on physical devices is important—simulators don't support Network Extension.
Documentation
Update relevant documentation when adding features. Include code examples where helpful. Keep the README and guides in sync with actual behavior.
Breaking changes
Avoid breaking changes when possible. If necessary, discuss in an issue first. Provide migration guides and deprecation warnings.
Ready to contribute?
Whether you're fixing a typo or implementing a major feature, your contribution helps make Trace better for everyone.