# Contributing to neomemx
Thank you for your interest in contributing to neomemx! This document provides guidelines and information for contributors.
## Getting Started
1. Fork the repository
2. Clone your fork: `git clone https://github.com/smafjal/neomemx.git`
3. Create a feature branch: `git checkout -b feature/openai-llm-consolidation`
4. Make your changes
5. Run tests: `cargo test`
6. Run clippy: `cargo clippy --all-features`
7. Format code: `cargo fmt`
8. Commit and push
9. Open a Pull Request
## Development Setup
### Prerequisites
- Rust 1.75 or later
- Docker (for ChromaDB)
### Running locally
```bash
# Start ChromaDB
docker run -d -p 8000:8000 chromadb/chroma
# Set up environment
cp .env.example .env
# Edit .env with your API keys
# Run tests
cargo test
# Run with logs
RUST_LOG=debug cargo run
```
## Code Style
- Follow Rust idioms and conventions
- Use `rustfmt` for formatting
- Address all `clippy` warnings
- Add documentation for public APIs
- Write tests for new features
## Pull Request Process
1. Update documentation if needed
2. Add tests for new functionality
3. Ensure CI passes
4. Request review from maintainers
## Commit Messages
Use clear, descriptive commit messages:
```
feat: add support for new embedding provider
fix: handle connection timeout gracefully
docs: update API examples
test: add integration tests for search
```
## Questions?
Open an issue for questions or discussion.