Built in the open, by Attention Labs.

Self-hosted conversation QA for voice agents, maintained by Attention Labs, Inc.

  • MITlicense
  • 3,544tests in CI
  • 0runtime deps
  • 5dimensions
  • 0egress by default

One company stands behind it.

One repository, one license, one place to read every line that decides a verdict.

Sweep, score, contract, and CI-gate calls, self-hosted on your own infrastructure, with unlimited seats and every capability included. The deterministic checks decide the verdict; the model judge stays advisory unless you opt it in. When the evidence can't support a call, hotato reports NOT SCORABLE rather than guessing.

Want the full security posture? Read the security page →

Maintainer
Attention Labs, Inc.
Repository
github.com/attenlabs/hotato
Home
hotato.dev
License
MIT
Runs on
Python 3.9-3.13, stdlib-only core

Everything that matters is public.

Deep docs and the numbers behind every claim, readable by a person or a coding agent.

The highest-value PR is a labelled call fixture.

Bug fixes and synthetic scenarios are welcome. One consented, labelled recording makes the suite credible, not just runnable.

  1. Record and label it.

    Dual-channel audio, plus one JSON with the yield-or-hold expectation, timing bounds, and an attestation.

  2. Validate locally.

    Run the checker before you submit. Exit 0 means the label and audio conform.

  3. Submit, get credited.

    Open the corpus-submission issue, or a PR under corpus/, stating provenance and consent. Contributors are named when their clip lands.

corpus — validate
$ python3 corpus/validate.py your_label.json
  schema         pass
  timing bounds  pass
  attestation    pass
exit 0

Full recording and PII rules: CONTRIBUTING · docs/SUBMITTING.

Read the code. Run the suite.

MIT-licensed, self-hosted conversation QA. One command starts it.

$ uvx hotato start --demo

Read the docs, or browse the source. Get started → · GitHub →