How to contribute
1. Fork and clone
2. Environment setup
3. Create a branch
4. Make your changes
- Follow existing code patterns
- Add tests for new features
- Keep commits small and focused
5. Submit the Pull Request
Project structure
See the architecture documentation to understand the organization of packages and components.Building with version information
For builds that inject version, commit, and date:Adding a new LLM provider
- Create a package in
llm/myprovider/ - Implement the
LLMClientinterface (andToolAwareClientif it supports tool use) - Add auto-registration via
init()inllm/registry - Define environment variables in
config/ - Add i18n translations in
i18n/
switch/case blocks.
Creating a plugin
See the full guide at Plugin System.Reporting bugs
Open an issue on GitHub with:- ChatCLI version (
chatcli --version) - Operating system and Go version
- Steps to reproduce
- Expected vs observed behavior
- Relevant logs (use
LOG_LEVEL=debug)