Skip to main content

OpenAVT

CI Python 3.11+ Apache 2.0 Experimental

TLS over voice. Built for agents.

OpenAVT (Open Agent Voice TLS) carries real mutual TLS 1.3 records through audio. An agent can authenticate its key and send a protected request during a voice call; the business checks its permission before returning a result.

  • Transport: TLS requests and responses travel through audio-only WebRTC.
  • Identity: AVA (Agent Voice Authority) enrolls, renews and revokes agent certificates.
  • Permission: a separate business signer issues customer grants for specific actions and resources.

Try the complete demo

Requires Python 3.11+, uv and the openssl executable. No OpenAI key needed. Install the released package from PyPI:

python -m pip install 'openavt[webrtc,authority]'
openavt delegation-demo

Or run from a GitHub checkout:

git clone https://github.com/ketanbj/openavt.git
cd openavt
uv run --locked --extra webrtc --extra authority openavt delegation-demo

The demo enrolls an agent, issues customer consent, and establishes a live local audio call. It accepts one authorized request and rejects seven misuse cases, including scope escalation, replay and revocation. It saves a report and audio under output/.

To use two real OpenAI voice agents, copy .env.example to .env, set OPENAI_API_KEY locally, then run:

uv run --locked --extra agents --extra authority openavt delegation-demo --agents

More demos and installation options →

Sub-second handshakes

Measured on an established local 64 kbps G.711 PCMU audio call:

Run Full mutual TLS handshake Evidence
main CI, 5 fresh calls, October 11, 2026 0.561 s median · 0.581 s max Benchmark
Two OpenAI agents with AVA and customer delegation 0.623 s Demo results

The timer includes both authenticated endpoints and the final audio ACK. It excludes certificate creation, call setup and LLM/speech time. The fast PCM profile requires an unchanged digital PCMU path; transcoding or audio processing can break it. Measurements and reproduction →

Scope

This is an experimental local prototype. Both peers run on one machine; public Internet, carrier/PSTN and microphone paths have not been verified. Ordinary speech is outside the inner TLS session. There is no WebRTC data channel carrying the protected requests.

Certificates prove registered account/key control. Customer authentication uses demo credentials; provider verification, real customer login and production CA operations remain future work. The backend enforces grants outside the LLM. Trust boundaries →

Documentation

Goal Guide
Install and choose a demo Quickstart
Understand certificates and customer consent Authority and delegation
Run a persistent authority AVA CLI walkthrough
Integrate the transport Architecture and library usage
Reproduce the timings Performance
Inspect tests and evidence Verification
Build and publish the package Releasing

Metadata

Release files for openavt 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for openavt 0.1.2
File Size Uploaded
openavt-0.1.2.tar.gz 191.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openavt 0.1.2
File Interpreter ABI Platform
openavt-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 244.9 kB

Release files / openavt-0.1.2.tar.gz

Download URL openavt-0.1.2.tar.gz
Size 191.1 kB
Tags Source
SHA-256 checksum
How to use checksums
915b982630ab3eda459046050206eabefeade928b9355ff236e6b023294fa1d7
BLAKE2b-256 checksum
How to use checksums
a3c72d585724c4839129eda65036b31462e07336d38b428fc27b9bf66a3f5496
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / openavt-0.1.2-py3-none-any.whl

Download URL openavt-0.1.2-py3-none-any.whl
Size 53.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
44a980e4f4be2aa3e473c704032d08354f30f7f0a1c9408e347af02b78a4d4a4
BLAKE2b-256 checksum
How to use checksums
ac155c98359277a58e558ee765eb6e9b888a7f39d6a9f48d4c61b6146db7766f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.3

2 release files

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page