Thank you for your interest in contributing to CAAL! This guide covers all components: the Python voice agent, Next.js frontend, and Flutter mobile app.
- Getting Started
- Development Setup
- Code Standards
- Commit Convention
- Pull Request Process
- Reporting Issues
- Fork the repository on GitHub
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/CAAL.git cd CAAL - Add upstream remote:
git remote add upstream https://github.com/CoreWorxLab/CAAL.git
Prerequisites:
- Python 3.10+
- uv package manager
- Docker (for infrastructure services)
Setup:
# Install dependencies
uv sync
# Start infrastructure (LiveKit, Speaches, Kokoro)
docker compose up -d livekit speaches kokoro
# Run agent locally
uv run voice_agent.py devLinting & Testing:
uv run ruff check src/ # Lint
uv run ruff check src/ --fix # Auto-fix
uv run mypy src/ # Type check
uv run pytest # Run testsPrerequisites:
- Node.js 18+
- pnpm
Setup:
cd frontend
cp .env.example .env.local
pnpm install
pnpm devLinting & Formatting:
pnpm lint # ESLint
pnpm format # Prettier format
pnpm format:check # Check formattingPrerequisites:
- Flutter SDK 3.5.1+
- Android Studio or Xcode
Setup:
cd mobile
flutter pub get
flutter run- Follow PEP 8 style guide
- Use type hints for function signatures
- Line length: 100 characters (configured in pyproject.toml)
- Linter: ruff
- Type checker: mypy
- Use TypeScript for all new code
- Follow ESLint configuration
- Format with Prettier
- Use functional components with hooks
- Follow Dart style guide
- Use Flutter best practices
We use Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code style (formatting, no logic change)refactor: Code refactoringtest: Adding/updating testschore: Maintenance tasks
Scopes: agent, frontend, mobile, docs, ci
Examples:
feat(agent): add support for custom wake word models
fix(frontend): resolve dark mode toggle persistence
docs: update deployment instructions for Tailscale
-
Create a branch:
git checkout -b feat/your-feature-name # or: fix/bug-description, docs/what-changed -
Make changes following code standards
-
Keep branch updated:
git fetch upstream git rebase upstream/main
-
Push and create PR:
git push origin feat/your-feature-name
-
PR Requirements:
- Clear description of changes
- Link related issues
- All CI checks passing
- Screenshots for UI changes
- Documentation updated if needed
Include:
- Clear description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, deployment mode, versions)
- Relevant logs
Include:
- Problem you're solving
- Proposed solution
- Use case and who benefits
- Open a Discussion
- Check existing issues and docs
Thank you for contributing!