Open source · runs on your machine · free at any scale

Find what brokein your agent calls.Pin it into CI.

Debug a broken voice-agent call in minutes. Measured timing from the audio, completed actions from your own tool evidence. Free and MIT.

Any recording: mono, dual-channel, or a transcript.

hotato autopsy: autopsy-01-barge-in-say-do.example.wav
CRITICAL #2 BARGE-IN t=2.99s apx-cc33f46fad58#2
Caller onset2.99s Talk-over1.81s
  • Free & MIT, any scale
  • Byte-reproducible, gates CI
  • Nothing leaves your machine
  • MCP for coding agents

One call, one report, one pin.

Find it, share it, prevent it.

  1. 01 / FIND

    Check the call

    hotato check ./call.wav

    Reads the recording and prints every incident it measured: barge-in, talk-over, dead air, latency, each with a timestamp and an id.

  2. 02 / SHARE

    Send the report

    writes hotato-output/autopsy-<pin>.html

    One self-contained file carries the timeline and the measurements: send it to whoever owns the fix.

  3. 03 / PREVENT

    Pin it into CI

    hotato pin apx-<id>

    Turns one incident into a portable failure check. hotato prove re-runs it in CI and exits non-zero unless it passed.

Quickstart

From one recording to a CI gate.

The first three find incidents. The last two make the exit code your CI reads.

# 1. a failing call ships with the install, no recording needed
hotato check --demo
# 2. then a recording of your own
hotato check ./call.wav
# 3. or pull and analyze your recent Vapi calls
hotato vapi health
# 4. pin one incident as a portable failure check
hotato pin apx-cc33f46fad58#2
# 5. the CI check re-runs the stored evidence
hotato prove --contracts contracts  exit 1

pip install hotato is the whole setup. Full walkthrough →

Frequently asked questions

    What input does it need?

    A call recording. Dual-channel audio, one party per channel, yields deterministic timing. Mono yields best-effort observations, each with a stated confidence. When the evidence cannot support a claim, hotato refuses with the reason. It measures turn timing and say-do, not intent. Four evidence tiers, tier 1 gates CI: the evidence page · the standard in the repo.

    Account, key, or network?

    None. hotato runs offline on the machine that invokes it. The core is stdlib-only Python: zero required dependencies, about 10 MiB installed, no network calls of its own. The stack commands' only egress fetches your own calls from your own provider account.

    How does say-do checking work?

    Timing is measured from the audio. Completed actions come from your own tool evidence: hotato ingests Vapi and OpenTelemetry traces, so what the agent said is checked against what the backend did.

    How does the CI gate work?

    The step's exit code is the verdict: 0 pass, 1 fail, 2 refuse. Each pinned incident is a content-addressed contract: its id carries the recording's digest, so a rerun scores the same bytes the same way.

Voice agent testing that catches what transcripts miss.

Free. MIT. No account. Your first check takes seconds.

$ pip install hotato
  • MIT
  • 0 runtime deps
  • zero egress by default