tatolab-stream
The Python SDK for Tatolab, which turns cameras, microphones, screens, models and your own code into realtime streams that browsers, other streams and AI agents can read.
Looking to get started? Install the Tatolab app first, not this package.
tatolab-streamis the library you write streams with. It doesn't run them: the Tatolab runtime on your machine does, and it comes with the app.
- macOS (Apple silicon, macOS 15 or later):
brew install --cask tatolab/tap/tatolab, thenopen -a Tatolab- Linux (x86_64 with a Vulkan GPU):
curl -fsSL https://get.tatolab.com/install.sh | shThen follow the Quickstart.
tatolab newcreates a project that already depends on this package, so you rarelypip installit yourself.
What it is
A stream is an ordinary Python project. You write nodes as Python classes and connect them in a
function decorated @stream:
from tatolab.stream import CameraSource, DisplayWindow, StreamBuilder, stream
from nodes.inverting_effect import InvertingEffect
@stream
def main(stream_builder: StreamBuilder) -> None:
camera = stream_builder.add(CameraSource)
effect = stream_builder.add(InvertingEffect)
window = stream_builder.add(DisplayWindow, config={"title": "Tatolab"})
stream_builder.connect(camera.output("video"), effect.input("video_from_upstream"))
stream_builder.connect(effect.output("video_to_downstream"), window.input("video"))
stream_builder.expose(effect.output("video_to_downstream"))
tatolab dev runs it in the runtime. Each node runs in its own process, so one slow node never
blocks another. An exposed output gets an address other streams, agents and browsers can read.
This package holds the authoring API (@stream, @node, StreamBuilder), typed classes for
every built-in node (camera, display, microphone, speaker, H.264, H.265 and Opus codecs, MP4
recording, and more), and the protocols your nodes are handed at run time. It installs and imports without the runtime,
with complete type hints, so your editor, type checker and unit tests work on any machine.
Add it to an existing project
uv add tatolab-stream
The runtime runs your nodes with the project's .venv/bin/python, so anything you install there
your nodes can import. See Python SDK for details.
Supports CPython 3.10 to 3.13 (not the free-threaded builds).
Other packages
tatolab-webrtc: WHIP publish and WHEP play nodes.tatolabon PyPI is a placeholder that installs nothing. Tatolab itself installs as an app, as above.
Links
Licensed under the Business Source License 1.1.
Metadata
Release files for tatolab-stream 0.45.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tatolab_stream-0.45.4.tar.gz | 98.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tatolab_stream-0.45.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 215.1 kB
Release files / tatolab_stream-0.45.4.tar.gz
| Download URL | tatolab_stream-0.45.4.tar.gz |
|---|---|
| Size | 98.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae90b4b5553966b5c7837ead2003e45a2693f1a385858d5fa78d3c3cb0c1c1e4
|
|
BLAKE2b-256 checksum How to use checksums |
e840d02f40a9f0aebc9c9203aa0b500cbe280d84af5106a93f0cc5d9777ed32e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / tatolab_stream-0.45.4-py3-none-any.whl
| Download URL | tatolab_stream-0.45.4-py3-none-any.whl |
|---|---|
| Size | 116.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a584889e8fef8c95300988998532c6279a7b0c8c8ff0e939de995771b21407b
|
|
BLAKE2b-256 checksum How to use checksums |
522ec42d7a43ef38e6724316167aeb9866245c8c803fb3f498eeb425b41dd78c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|