Thank you for your interest in contributing to Codexa! This document provides guidelines and instructions for contributing.
By participating in this project, you are expected to uphold our Code of Conduct:
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Respect different viewpoints and experiences
If you find a bug, please open an issue with:
- A clear, descriptive title
- Steps to reproduce the issue
- Expected vs. actual behavior
- Environment details (OS, Node.js version, etc.)
- Relevant logs or error messages
We welcome feature suggestions! Please open an issue with:
- A clear description of the feature
- Use case and motivation
- Possible implementation approach (if you have one)
- Fork the repository and clone your fork
- Create a branch from
main:git checkout -b feature/your-feature-name
- Make your changes following our coding standards
- Test your changes:
npm test npm run lint - Commit your changes with clear, descriptive messages:
git commit -m "Add: description of your change" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request with:
- A clear title and description
- Reference to related issues
- Screenshots (if applicable)
-
Clone the repository:
git clone https://github.com/sahitya-chandra/codexa.git cd codexa -
Install dependencies:
npm install
-
Build the project:
npm run build
-
Link for local development:
npm link
-
Run tests:
npm test
- Use TypeScript for all new code
- Follow the existing code style
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Run the linter before committing:
npm run lint
- Format code using Prettier:
npm run format
We follow Conventional Commits:
feat:- New featurefix:- Bug fixdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
Examples:
feat: add support for custom embedding models
fix: resolve issue with large file ingestion
docs: update installation instructions
codexa/
├── src/ # TypeScript source files
│ ├── agent.ts # Main agent logic
│ ├── chunker.ts # Code chunking
│ ├── cli.ts # CLI interface
│ ├── config.ts # Configuration management
│ ├── db.ts # Database operations
│ ├── embeddings/ # Embedding providers
│ ├── ingest.ts # Ingestion logic
│ ├── models/ # LLM providers
│ ├── retriever.ts # Vector retrieval
│ └── utils/ # Utility functions
├── dist/ # Compiled JavaScript
├── tests/ # Test files
└── bin/ # Binary entry point
- Write tests for new features
- Ensure all existing tests pass
- Maintain or improve test coverage
- Test edge cases and error handling
Run tests with:
npm test- Update README.md for user-facing changes
- Add JSDoc comments for new functions
- Update this CONTRIBUTING.md if needed
- Keep examples up to date
Releases are handled by maintainers. After your PR is merged:
- Version will be updated
- Changes will be included in the release notes
- Package will be published to npm
- Open an issue for questions
- Check existing issues and discussions
- Reach out to maintainers if needed
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Codexa! 🎉