Skip to main content

televibe

Run headless coding agents (Claude Code, Codex) one turn at a time, as resumable sessions with a typed event stream.

televibe starts the agent, turns its output into common events (Started, Message, ToolUse, Warning, then exactly one Done or Failed), and kills what it started on timeout, cancel, or when the caller walks away. Claude Code also reports the account's subscription usage as Limits (five-hour and seven-day windows), and a call refused at the limit fails with FailReason.USAGE_LIMIT. Done.text is the final answer; when the agent answers, calls a bookkeeping tool and closes with a short line, engine.turn(..., quiet_tools={"<tool name>"}) keeps the answer whole, and Done.last_message still has the agent's own last text. What to do with the output is the caller's business: televibe never sends a message anywhere.

A one-shot call answers in a JSON schema with no session, no tools and no place in the engine's queue: await claude.ask(prompt, schema={...}, system="...") returns Answer(data, usage, limits) or raises AskFailed with the same reasons a turn fails for. It is for the model-only chores a bot has around its turns — cleaning a transcript, classifying a message. See SPEC.md section 12.

The optional Telegram layer does: pip install 'televibe[telegram]' adds televibe.telegram, which shows a turn in a chat (reactions, typing or a live draft, the answer) and keeps one session per reply chain. It is a set of parts for an aiogram bot, not a framework. Every reaction can be replaced, and Reactions(done=None, failed_when_sent=False) leaves a reaction only when nothing could be sent at all. A live draft shows the usage ("5h 35% · 7d 13%"); Texts relabels it and words the limit message, and Presenter(tz=...) sets the zone of its reset time. A person can also address the bot with a reaction: reaction_added(update, "🙏") says whether this update just put that emoji on a message, and a message the bot stored drives a turn like a live one. See SPEC.md section 13.

Install: pip install televibe, or pip install 'televibe[telegram]' with the Telegram layer. Python 3.12+, Linux and macOS.

Status: 0.5, alpha. Tests: uv run pytest; live tests against real agents: see tests/test_live.py. MIT licensed.

  • SPEC.md is the specification. It is the law: numbered requirements, each claimed by a test.

Metadata

Release files for televibe 0.6.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 televibe 0.6.0
File Size Uploaded
televibe-0.6.0.tar.gz 81.7 kB Details

Built distribution (wheel)

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

Total release size: 119.4 kB

Release files / televibe-0.6.0.tar.gz

Download URL televibe-0.6.0.tar.gz
Size 81.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f5d912521e7b5cb75df7eefddb9dacf785b432f68ad0fcd686053c236cfa7847
BLAKE2b-256 checksum
How to use checksums
d5972c62fa54efeed875c41f683377f18bb40154aedcff3d86d310f7ad0ca628
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 17, 2026.

Transparency log

Release files / televibe-0.6.0-py3-none-any.whl

Download URL televibe-0.6.0-py3-none-any.whl
Size 37.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da870a8910770b3d243c8496f5495a4c109f9aac5e91aa28816417b3e705b573
BLAKE2b-256 checksum
How to use checksums
e84908fa8f5d1bca95baf1b1ce57f8de6cf8eb0180305fac45e25c198a1b79ac
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 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

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