Thanks for your interest in contributing! This guide covers everything you need to get started.
- Install prerequisites: Node.js 20+, Rust stable toolchain, and Tauri prerequisites
- Clone the repo and run
npm install - Start development:
npm run tauri dev
| Type | Process |
|---|---|
| Bug fix / small improvement | Open a PR directly |
| New feature / architecture change | Start a Discussion first |
| Question / help | Post in Q&A Discussions |
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Run the pre-submit checklist (see below)
- Commit with a descriptive message following Conventional Commits
- Open a pull request against
main
Run these checks before opening a PR:
# Frontend
npx tsc --noEmit
npx eslint src/
npx prettier --check src/
npx vitest run
# Rust
cargo fmt --check --manifest-path src-tauri/Cargo.toml
cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings
cargo test --manifest-path src-tauri/Cargo.tomlWe use Conventional Commits:
<type>: <description>
[optional body]
Types: feat, fix, refactor, docs, test, chore, perf, ci
Examples:
feat: add Groq Whisper STT providerfix: resolve audio recording crash on macOSdocs: update README installation steps
- TypeScript: strict mode, no
anytypes - Rust:
cargo fmtandcargo clippymust pass - Frontend: Tailwind CSS for styling, Zustand for state
- Formatting: Prettier for TypeScript/JavaScript/CSS
We welcome contributions made with the help of AI tools (GitHub Copilot, Claude, ChatGPT, etc.). If your PR was substantially generated by AI, please mention it in the PR description. The same quality standards apply to all contributions regardless of how they were written.
- Stability and reliability across all platforms
- User experience improvements
- Additional STT and LLM provider integrations
- Internationalization coverage
See VISION.md for the project's long-term direction.