Thank you for your interest in contributing to LibreChat! We welcome various types of contributions, including bug reports, documentation improvements, feature requests, and code contributions.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/danny-avila/librechat/llms.txt
Use this file to discover all available pages before exploring further.
Before You Start
Feature Contributions
If the feature you’d like to contribute hasn’t received prior approval from the project maintainers (i.e., isn’t on the roadmap), please submit a request in the Feature Requests & Suggestions category before beginning work. Your request should include:- Specific implementation details
- Areas of the application affected by the change
- Designs (if applicable)
- Any other relevant information for review
Community Support
Join our Discord community to discuss changes, engage with contributors, and seek guidance.Development Setup
Requirements
- Node.js: v20.19.0+ or ^22.12.0 or >= 23.0.0
- Database: MongoDB Community Edition
- Package Manager: npm 11.10.0
Installation
Development Workflow
Before Starting Work
-
Ensure your main branch has the latest commits:
-
Create a new branch with a descriptive slash-based name:
During Development
-
Run linting to find errors:
Or enable husky pre-commit checks.
-
Clear cache before and after changes:
- Clear web app localStorage and cookies
-
Restart ESLint server after reinstalling or updating:
- In VS Code: “ESLint: Restart ESLint Server” in command palette
Before Submitting
Pre-submission Checklist
Pre-submission Checklist
Git Workflow
LibreChat uses a GitFlow workflow:Branch Naming
Use descriptive slash-based names:new/feature/x- New featuresfix/bug-name- Bug fixesdocs/update-guide- Documentationrefactor/component-name- Code refactoring
Commit Messages
Follow the semantic format:feat- New featurefix- Bug fixdocs- Documentation changesrefactor- Code refactoringstyle- Code style/formattingtest- Adding testschore- Maintenance tasks
- Reduce the number of commits by organizing and squashing
- Keep commit history clean and easy to follow
- Unorganized commits may be squashed during merge, reducing your commit count to 1
Pull Request Process
Update Documentation
Update README.md with:
- Interface changes
- New environment variables
- Exposed ports
- Useful file locations
Naming Conventions
Branch Names
Descriptive, slash-basedExample:
new/feature/xLabels
Descriptive, kebab-caseExample:
bug-fixJS/TS Files
camelCase, uppercase first letter for ReactExamples:
helperFunction.ts, ReactComponent.tsxDocs Files
snake_caseExample:
config_files.mdCode Standards
For detailed coding conventions, workspace boundaries, and architecture guidance, refer to:- Code Style Guide
- Testing Guidelines
AGENTS.mdin the repository
Our Standards
We strive to maintain a positive and inclusive environment. All contributors should:- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
Getting Help
If you need assistance:Discord Community
Join our Discord for real-time help and discussions
GitHub Discussions
Browse or start discussions on GitHub
Issues
Report bugs or track existing issues
Documentation
Read the full documentation