Thanks for considering contributing! OpenCodeIntel is better because of people like you.
# Fork the repo, then clone
git clone https://github.com/YOUR_USERNAME/opencodeintel
cd opencodeintel
# Set up backend
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Add your API keys to .env
# Set up frontend (MUST use Bun, not npm!)
cd ../frontend
bun install
# Run tests
cd ../backend
pytest tests/ -vImportant: The frontend uses Bun exclusively. Do NOT use npm or yarn. Install Bun:
curl -fsSL https://bun.sh/install | bash
- Use the Bug Report template
- Include error logs and steps to reproduce
- Check existing issues first
- Use the Feature Request template
- Explain the problem you're solving
- Consider implementation complexity
Before submitting:
- Create an issue first (discuss approach)
- Fork the repo and create a feature branch
- Write tests for new functionality
- Ensure all tests pass:
pytest tests/ -v - Follow existing code style
PR Guidelines:
- Keep changes focused (one feature/fix per PR)
- Write clear commit messages
- Update documentation if needed
- Add tests for new code
Python (Backend):
- Follow PEP 8
- Use type hints
- Max line length: 120 characters
- Run:
flake8 services/ --max-line-length=120
TypeScript (Frontend):
- Use TypeScript strict mode
- Prefer functional components
- Use Tailwind for styling
- Run:
bun run buildto check for errors
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ -v --cov=services --cov-report=term-missing
# Run specific test
pytest tests/test_validation.py -vTest Requirements:
- All new features need tests
- Security-critical code needs comprehensive tests
- Aim for >70% coverage on new code
backend/
├── services/ # Core business logic
├── tests/ # Test suite
├── migrations/ # Database schemas
└── main.py # FastAPI app
frontend/
├── src/components/ # React components
├── src/lib/ # Utilities
└── src/types.ts # TypeScript types
mcp-server/ # MCP protocol implementation
- Pick an issue - Comment that you're working on it
- Create branch -
git checkout -b feature/your-feature - Make changes - Write code + tests
- Test locally - Ensure tests pass
- Commit - Use conventional commits:
feat:,fix:,docs: - Push -
git push origin feature/your-feature - Open PR - Reference the issue number
High Priority:
- Support for more languages (Go, Rust, Java)
- Performance optimizations for large repos
- Better error messages and logging
- Integration tests with test database
Good First Issues:
- Add more unit tests
- Improve documentation
- UI/UX improvements
- Add examples for different use cases
- Open a discussion on GitHub
- Check existing issues and PRs
- Read the docs in
/docsfolder
Be respectful, constructive, and collaborative. We're all here to build something useful.
Thanks for contributing!