Skip to content

Make your first contribution

You do not need an AWS account or a paid API key to contribute. The normal Python tests use fake credentials, Redis, and model responses. Documentation and client examples are useful contributions too.

Read the acceptance criteria, intended file scope, and non-goals. Comment on the issue before starting so others know what you are exploring. If a task says design-needed, discuss it first rather than assuming its implementation is approved.

After installing Python 3.13+ and uv, fork and clone the repository, then run from its root:

Terminal window
uv sync --dev --frozen
uv run pytest tests/test_security.py::test_text_contract_and_legacy_email -q

For Python changes, run the full local checks before submitting:

Terminal window
bash scripts/check.sh

For the documentation website:

Terminal window
cd docs
npm ci
npm run dev
# Check the final site:
npm run build

Start from current upstream main, not another contributor’s feature branch. Address one agreed outcome. A dedicated test, example, or guide file usually causes fewer merge conflicts than a broad refactor of shared code.

List the commands you actually ran and anything you could not verify. Ask for help if the issue’s paths or assumptions no longer match the code. You do not need to solve an architectural problem just to add a useful regression test.

See CONTRIBUTING.md for the complete workflow. Never submit real credentials, private scam messages, or personal recordings in an issue or fixture.