Contributing
How to contribute to Tutti
Tutti is open source and we welcome contributions. Here’s how to get involved.
Ways to contribute
- Report bugs — open an issue on GitHub
- Fix bugs — pick an issue labeled
good first issueand submit a PR - Add features — discuss in an issue first, then implement
- Improve docs — every page has an “Edit this page” link
- Build a voice — publish your own voice package to npm
- Write tests — help us improve coverage
Code of conduct
Be respectful, constructive, and collaborative. We don’t tolerate harassment of any kind.
Pull request guidelines
- One concern per PR — don’t mix bug fixes with features
- Write tests — new features need tests; bug fixes need a regression test
- Run the full suite —
npm run build && npx vitest runmust pass - Match the code style — TypeScript strict mode, Zod for all schemas, ESM only
- Write clear commit messages — use conventional commits (
feat:,fix:,docs:,test:,chore:) - Keep PRs small — easier to review, faster to merge
Development workflow
# Fork and clone
git clone https://github.com/YOUR_USERNAME/tutti.git
cd tutti
npm install
npm run build
# Make changes
git checkout -b feat/my-feature
# Test
npx vitest run
# Commit and push
git add .
git commit -m "feat: add my feature"
git push origin feat/my-feature
Then open a PR against main.
Project structure
See Development Setup for a full breakdown of the monorepo.
Security vulnerabilities
If you discover a security vulnerability, do not open a public issue. Email security@tutti-ai.com instead. See SECURITY.md for details.