First off, thank you for considering contributing to KiraAI! Every contribution helps make this project better. This document provides guidelines and information to make the contribution process smooth and effective.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Coding Guidelines
- Commit Messages
- Pull Request Process
- License
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
- Fork the repository on GitHub.
- Clone your fork locally:
git clone https://github.com/<your-username>/KiraAI.git cd KiraAI
- Create a branch for your work:
git checkout -b feature/your-feature-name
- Set up the development environment (see Development Setup).
Before opening a new issue, please search existing issues to check if the same bug has already been reported. If you find an existing issue that matches yours, add your information as a comment instead of creating a duplicate.
If no existing issue covers your bug, open a new issue with:
- A clear and descriptive title.
- Steps to reproduce the problem.
- Expected vs. actual behavior.
- Your environment details (OS, Python version, relevant package versions).
- Any error logs or screenshots that help illustrate the issue.
Before suggesting a new feature, please search existing issues to see if the same idea has already been proposed. If so, add your thoughts as a comment to join the discussion.
If your idea hasn't been proposed yet, feel free to open an issue. When proposing a new feature:
- Explain the problem it solves or the use case it enables.
- Describe the proposed solution as concretely as possible.
- Mention any alternatives you've considered.
- Ensure your code follows the Coding Guidelines.
- Write or update tests as needed.
- Update documentation if your change affects public behavior.
- Submit a pull request (see Pull Request Process).
- Python 3.10+
- Node.js 18+ and npm (for the WebUI frontend)
- Git
# Create and activate a virtual environment (recommended)
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
# Install dependencies
pip install -r requirements.txtcd webui/frontend
npm install
npm run buildFor frontend development with hot-reload:
npm run devThe Vite dev server starts on :3000 and proxies API requests to the Python backend on :5267.
docker compose up --build- Follow PEP 8 style conventions.
- Use type hints where practical.
- Write docstrings for public classes and functions (Google or NumPy style).
- Keep functions focused — each function should do one thing well.
- Avoid circular imports; prefer dependency injection or lazy imports.
- Follow the existing ESLint configuration.
- Use Composition API (
<script setup>) for Vue 3 components. - Keep components small and reusable.
- No hardcoded secrets — use environment variables or config files.
- Write meaningful comments for complex logic, but prefer self-documenting code.
- Remove debug prints and commented-out code before submitting.
Write clear, concise commit messages. We recommend the Conventional Commits format:
<type>(<scope>): <short description>
<optional body>
<optional footer>
Types:
| Type | Description |
|---|---|
feat |
A new feature |
fix |
A bug fix |
docs |
Documentation only |
style |
Code style (formatting, no logic change) |
refactor |
Code restructuring (no feature or fix) |
test |
Adding or updating tests |
chore |
Build, CI, or tooling changes |
Examples:
feat(adapter): add Telegram sticker support
fix(llm-client): handle timeout on streaming responses
docs(readme): update setup instructions for Docker
Important: All pull requests must be submitted to the
devbranch. PRs targetingmainwill not be accepted.
- Update your branch with the latest
devbefore submitting:git fetch upstream git rebase upstream/dev
- Fill out the PR description — explain what you changed and why.
- Link related issues (e.g.,
Closes #123). - Ensure all checks pass (linters, tests, etc.).
- Request a review from a maintainer.
- Be responsive to feedback — we may ask for changes.
By contributing to KiraAI, you agree that your contributions will be licensed under the GNU Affero General Public License v3.0.