First off, thanks for taking the time to contribute!
TinyAI's core principles:
- Stay tiny - Every byte counts. No unnecessary dependencies.
- Stay simple - If it needs a tutorial, it's too complex.
- TypeScript first - Types are features, not afterthoughts.
Open an issue with:
- What you expected
- What happened
- Minimal reproduction code
Open an issue with:
- The use case
- Why existing solutions don't work
- Proposed API (code example)
- Fork the repo
- Create a branch:
git checkout -b my-feature - Make changes
- Run tests:
npm test - Check bundle size:
npm run bench - Commit:
git commit -m "Add feature" - Push:
git push origin my-feature - Open a PR
PRs that increase gzipped size by >500 bytes need justification. Run npm run bench before submitting.
- Use TypeScript
- No
anytypes (useunknownif needed) - Prefer functions over classes
- Keep files under 200 lines
# Install
npm install
# Build
npm run build
# Test
npm test
# Check bundle size
npm run bench- Create
src/providers/yourprovider.ts - Implement the
Providerinterface - Add to
src/core/client.ts - Add tests
- Update README
Open an issue or start a discussion!