Skip to main content

voxeye

OpenTelemetry observability for LiveKit Agents. One pip install, three lines of code, and every transcript, tool call, system prompt, span, and per-component model identifier flows to a self-hosted retina ingest service.

No event listeners, no content buffering, no proprietary SDK lock-in — just OTel done right for voice agents.

Install

pip install voxeye

Use

from voxeye import Observability
from livekit.agents import AgentSession, JobContext

obs = Observability(api_key="sk_...", endpoint="https://your-retina-host")  # module-level, pure

async def entrypoint(ctx: JobContext):
    session = AgentSession(stt=..., llm=..., tts=...)
    obs.attach(session, ctx)                              # sync, fail-open
    await session.start(agent=MyAgent(), room=ctx.room)   # your existing line

That's it. attach():

  1. Resets any prior TracerProvider — LiveKit worker subprocesses are pooled and reused, so a provider from a previous job can leak into the next one.
  2. Resolves call_id = ctx.job.id (room.sid isn't available until ctx.connect()).
  3. Resolves agent_id via agent_id= override → ctx.job.agent_name → "unknown" (the real label is reconciled server-side from the agent_session span).
  4. Introspects session.stt/.llm/.tts/.vad for {component}.provider / .model, set as resource attributes on every span — closing gaps LiveKit's plugin instrumentation leaves.
  5. Installs an OTLP exporter (gzip, bearer auth) and an async shutdown flush.
  6. Fires a lifecycle ping to /v1/calls for instant call existence + crash detection.

Every step is wrapped fail-open: attach() never raises into your entrypoint.

Redaction (opt out of exporting sensitive data)

By default everything is exported. Pass a Redaction to stop specific data from ever leaving the process — it's filtered client-side (sensitive resource attrs aren't set, and span attributes are dropped at the export boundary; live spans are never mutated):

from voxeye import Observability, Redaction

obs = Observability(
    api_key="sk_...",
    redact=Redaction(
        prompts=True,       # drop the system prompt / instructions
        model_names=True,   # drop stt/llm/tts/vad provider+model (resource AND gen_ai.* attrs)
        transcripts=True,   # drop user transcripts + agent response text
        tool_io=True,       # drop function-tool arguments + outputs
        attributes=("my.custom.attr",),  # escape hatch: extra exact keys to drop
    ),
)

Spans, durations, token counts, span tree, and tool names still flow — only the fields you flag are withheld. Each flag defaults to False (export).

Notes

  • endpoint defaults to http://localhost:8000 (local retina). Point it at your host in prod.
  • Call attach() once per entrypoint. Calling it twice replaces the provider mid-call.
  • Requires livekit-agents >= 1.0.

Develop

uv sync --extra dev
uv run pytest
uv run ruff check src tests && uv run mypy src

Build & publish

uv build                       # → dist/voxeye-<version>-py3-none-any.whl + .tar.gz
uvx twine check dist/*         # validate metadata + README rendering
pip install dist/voxeye-*.whl  # try it in a clean env

Publishing to PyPI is automated via GitHub Actions trusted publishing (OIDC, no API tokens) in .github/workflows/publish.yml — it runs on a published GitHub Release. Before the first release: reserve the voxeye name on PyPI and add this repo as a trusted publisher. Until then the workflow is inert. To publish manually instead: uvx twine upload dist/*.

Metadata

Release files for voxeye 0.1.0

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

Source distribution (sdist)

Source distribution for voxeye 0.1.0
File Size Uploaded Provenance Actions
voxeye-0.1.0.tar.gz 11.4 kB With provenance Details for voxeye-0.1.0.tar.gz

Built distribution (wheel)

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

Total release size: 24.9 kB

Release files / voxeye-0.1.0.tar.gz

Download URL voxeye-0.1.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
151ae142a46ce9cc9814fcf47594920511b6851f315235f3233ce6b37fa58474
BLAKE2b-256 checksum
How to use checksums
d078355bbb44948cdbff86e49b8d02bcd3eb0ad35ad14a1adc4a4937b77f4faf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 11, 2026.

Transparency log

Release files / voxeye-0.1.0-py3-none-any.whl

Download URL voxeye-0.1.0-py3-none-any.whl
Size 13.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48d6d4c042516eeaadbaf475646c274eb2d28ce0dfc00a59d7249f7c992ad34c
BLAKE2b-256 checksum
How to use checksums
a24cde3713d301fa64b8e5d18e9af65cd3fdb693434795813c600fcdca58473a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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 Jun 11, 2026.

Transparency log

Security for voxeye 0.1.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for voxeye-0.1.0.tar.gz

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 Jun 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

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