Skip to main content

Conversation QA for voice agents. Catch the calls your transcript tests miss. Self-hosted, MIT.

Project description

hotato

PyPI version Python versions License: MIT MCP ready Offline by default

hotato turns a failed voice call into a deterministic regression test that lives in your Git and reproduces forever. Give it both channels of a recording and it measures the timing between the two voices, the talk-over and slow yields a transcript cannot see, then locks each catch into a content-addressed CI contract that returns the same verdict, exit 0 or 1, on any machine. Self-hosted conversation QA for voice agents: MIT, offline, no account.

hotato demo: uvx hotato demo --fail types out and scores two recorded calls, both fail on timing, exit 1.

Get started

Point your coding agent at it. Paste this repo at Claude Code, Cursor, or any coding agent and ask it to try hotato on your voice agent. It reads AGENTS.md and drives the whole loop: run the demo, wire a CI gate, and re-check the numbers itself.

Or run it yourself:

uvx hotato demo --fail                 # catch a failure in 10 seconds, no account
pipx install hotato                    # keep it in a project
uvx --from "hotato[mcp]" hotato-mcp    # drive it over MCP, local stdio

Five dimensions

  • Outcome: job done, on tool-call and state evidence.
  • Policy: required disclosures, PII handling.
  • Conversation: did the agent yield when the caller took the floor, and how fast.
  • Speech: response latency and turn timing.
  • Reliability: pass@1 / pass@k / pass^k with a Wilson interval.

A call comes in two channels (caller on one, agent on the other). A mono or bad export is marked NOT SCORABLE, so a verdict measures timing, not intent.

License

MIT (LICENSE)

mcp-name: io.github.attenlabs/hotato

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hotato-1.8.0.tar.gz (11.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hotato-1.8.0-py3-none-any.whl (5.6 MB view details)

Uploaded Python 3

File details

Details for the file hotato-1.8.0.tar.gz.

File metadata

  • Download URL: hotato-1.8.0.tar.gz
  • Upload date:
  • Size: 11.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hotato-1.8.0.tar.gz
Algorithm Hash digest
SHA256 f95030bd4fbefcb3b158f1dff6426aeffbfb3874500014f6c011c39b217a87a8
MD5 161e5610be1449c4440d01c28aad8a60
BLAKE2b-256 224c1ecea85fe1f10d7e5cfc4b385073d8ed0bc2de346a4b59027d1a3a2ecc40

See more details on using hashes here.

Provenance

The following attestation bundles were made for hotato-1.8.0.tar.gz:

Publisher: publish-pypi-oidc.yml on attenlabs/hotato

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hotato-1.8.0-py3-none-any.whl.

File metadata

  • Download URL: hotato-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 5.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for hotato-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 52424736c3a8f3ad35ecefb5394fa3730ea9f1101e8f5abbed62bc6fd3f11c39
MD5 02dbbe352e1b38a9c6fd745cfaddaf37
BLAKE2b-256 821e151dc66f77d6e9ff63b9acaf4181b5acaacb66fd95f7fba90b8e83865e20

See more details on using hashes here.

Provenance

The following attestation bundles were made for hotato-1.8.0-py3-none-any.whl:

Publisher: publish-pypi-oidc.yml on attenlabs/hotato

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page