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.5.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.5.0
File Size Uploaded
televibe-0.5.0.tar.gz 81.2 kB Details

Built distribution (wheel)

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

Total release size: 118.8 kB

Release files / televibe-0.5.0.tar.gz

Download URL televibe-0.5.0.tar.gz
Size 81.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b3c26a6772892f7f416fcd5058501fd1d8c74bcd030373af29d868919b1734af
BLAKE2b-256 checksum
How to use checksums
de97f59fd2e1edbf97c885b07548674e70f64d2ef70e618e65653a5519440897
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.5.0-py3-none-any.whl

Download URL televibe-0.5.0-py3-none-any.whl
Size 37.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2569da9639a8320b766f46035869a47f91be4f34a6ef06af8915ee5d0289077c
BLAKE2b-256 checksum
How to use checksums
e27c24d21216a345bf56fa2a6399fc3e27a0cbbb62813128f0e1880845c6045c
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

0.6.0

2 release files

This release

0.5.0 This release

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