Conversation QA for voice agents. Catch the calls your transcript tests miss. Self-hosted, MIT.
Project description
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.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f95030bd4fbefcb3b158f1dff6426aeffbfb3874500014f6c011c39b217a87a8
|
|
| MD5 |
161e5610be1449c4440d01c28aad8a60
|
|
| BLAKE2b-256 |
224c1ecea85fe1f10d7e5cfc4b385073d8ed0bc2de346a4b59027d1a3a2ecc40
|
Provenance
The following attestation bundles were made for hotato-1.8.0.tar.gz:
Publisher:
publish-pypi-oidc.yml on attenlabs/hotato
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotato-1.8.0.tar.gz -
Subject digest:
f95030bd4fbefcb3b158f1dff6426aeffbfb3874500014f6c011c39b217a87a8 - Sigstore transparency entry: 2187031651
- Sigstore integration time:
-
Permalink:
attenlabs/hotato@ad484c5cc9a8d63fdb35ac3566dd5a2868d5daf4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/attenlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi-oidc.yml@ad484c5cc9a8d63fdb35ac3566dd5a2868d5daf4 -
Trigger Event:
workflow_dispatch
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
52424736c3a8f3ad35ecefb5394fa3730ea9f1101e8f5abbed62bc6fd3f11c39
|
|
| MD5 |
02dbbe352e1b38a9c6fd745cfaddaf37
|
|
| BLAKE2b-256 |
821e151dc66f77d6e9ff63b9acaf4181b5acaacb66fd95f7fba90b8e83865e20
|
Provenance
The following attestation bundles were made for hotato-1.8.0-py3-none-any.whl:
Publisher:
publish-pypi-oidc.yml on attenlabs/hotato
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hotato-1.8.0-py3-none-any.whl -
Subject digest:
52424736c3a8f3ad35ecefb5394fa3730ea9f1101e8f5abbed62bc6fd3f11c39 - Sigstore transparency entry: 2187031674
- Sigstore integration time:
-
Permalink:
attenlabs/hotato@ad484c5cc9a8d63fdb35ac3566dd5a2868d5daf4 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/attenlabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi-oidc.yml@ad484c5cc9a8d63fdb35ac3566dd5a2868d5daf4 -
Trigger Event:
workflow_dispatch
-
Statement type: