hama on-device NLP

Contributing

Contributions are welcome across assets, runtimes, and documentation. Please read these guidelines before opening a pull request.

Development workflow

  1. Clone the repo (~/hama) and install dependencies for both runtimes.
  2. Create a feature branch with a descriptive name.
  3. Run tests locally (see the Testing page) before opening a PR.

  4. Record API, asset, and release changes in llms.txt and CHANGELOG.md.

Code style

  • Python: follow ruff/black defaults.
  • TypeScript: use Bun’s formatter + eslint config provided in the repo.
  • Keep changes modular; separate asset updates from runtime refactors when possible.

Documentation

Record API, asset, and release changes in llms.txt and CHANGELOG.md.

Issue tracking

Use GitHub issues for bugs and feature requests. Include:

  • Runtime + OS versions.
  • Steps to reproduce (including sample text or audio).
  • Log output or screenshots when available.

Release process

  1. Ensure parity checks pass.
  2. Update llms.txt, CHANGELOG.md, and docs.
  3. Publish hama and hama-js together.
  4. Tag the repo with vX.Y.Z and attach release notes.