# Contributing to Catsu

Thank you for your interest in contributing to Catsu! We welcome contributions from the community.

## How to Contribute

### Reporting Missing Models or Providers

Can't find your favorite embedding model or provider? We'd love to add it!

**Please open an issue** with the following information:
- Provider name and documentation link
- Model name(s) you'd like to see supported
- Any specific parameters or features the provider supports
- Use case or reason for the addition

We will promptly review and work to add it to Catsu.

### Reporting Issues

If you encounter a bug or issue with the Catsu client:

**We prefer issue reports over random PRs.** This helps us:
- Understand the problem fully before implementing a fix
- Ensure the solution aligns with project architecture
- Avoid duplicate work
- Maintain code quality and consistency

**When reporting an issue, please include:**
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Python version and Catsu version
- Provider and model being used (if applicable)
- Minimal code example demonstrating the issue

## Pull Requests

While we prefer issues for bugs, we do accept PRs for:
- Documentation improvements
- Adding new models to the models.json catalog
- Fixing typos or improving clarity

**Before submitting a PR:**
1. Open an issue first to discuss the change
2. Wait for maintainer feedback
3. Follow existing code style and patterns
4. Include tests if applicable
5. Update documentation as needed

## Code Style

- Follow PEP 8 for Python code
- Use type hints
- Run `ruff` for linting and formatting
- Run tests with `pytest` before submitting

## Questions?

Have questions about contributing? Open an issue and we'll be happy to help!

## License

By contributing to Catsu, you agree that your contributions will be licensed under the Apache 2.0 License.
