# Contributing to Cline We're thrilled you're interested in contributing to Cline. Whether you're fixing a bug, adding a feature, or improving our docs, every contribution makes Cline smarter! To keep our community vibrant and welcoming, all members must adhere to our [Code of Conduct](CODE_OF_CONDUCT.md). ## Reporting Bugs or Issues Bug reports help make Cline better for everyone! Before creating a new issue, please [search existing ones](https://github.com/cline/cline/issues) to avoid duplicates. When you're ready to report a bug, head over to our [issues page](https://github.com/cline/cline/issues/new/choose) where you'll find a template to help you with filling out the relevant information.
🔐 Important: If you discover a security vulnerability, please use the Github security tool to report it privately.
## Deciding What to Work On Looking for a good first contribution? Check out issues labeled ["good first issue"](https://github.com/cline/cline/labels/good%20first%20issue) or ["help wanted"](https://github.com/cline/cline/labels/help%20wanted). These are specifically curated for new contributors and areas where we'd love some help! If you're planning to work on a bigger feature, please create an issue first so we can discuss whether it aligns with Cline's vision. ## Writing and Submitting Code Anyone can contribute code to Cline, but we ask that you follow these guidelines to ensure your contributions can be smoothly integrated: 1. **Keep Pull Requests Focused** - Limit PRs to a single feature or bug fix - Split larger changes into smaller, related PRs - Break changes into logical commits that can be reviewed independently 2. **Code Quality** - Run `npm run lint` to ensure code follows our style guidelines - Run `npm run format` to format your code with Prettier - Address any ESLint warnings or errors before submitting - Follow TypeScript best practices and maintain type safety 3. **Testing** - Add tests for new features - Run `npm test` to ensure all tests pass - Update existing tests if your changes affect them - Include both unit tests and integration tests where appropriate 4. **Commit Guidelines** - Write clear, descriptive commit messages - Use conventional commit format (e.g., "feat:", "fix:", "docs:") - Reference relevant issues in commits using #issue-number 5. **Before Submitting** - Rebase your branch on the latest main - Ensure your branch builds successfully - Double-check all tests are passing - Review your changes for any debugging code or console logs 6. **Pull Request Description** - Clearly describe what your changes do - Include steps to test the changes - List any breaking changes - Add screenshots for UI changes ## Contribution Agreement By submitting a pull request, you agree that your contributions will be licensed under the same license as the project ([Apache 2.0](LICENSE)). Remember: Contributing to Cline isn't just about writing code - it's about being part of a community that's shaping the future of AI-assisted development. Let's build something amazing together! 🚀