Skip to main content

tqdm-live

Stream your tqdm progress bars to any browser, realtime. Zero config, anonymous by default.

pip install tqdm-live
from tqdm_live import tqdm

for epoch in tqdm(range(epochs)):
    train_one_epoch()

# prints: runpeek ▶ https://runpeek.app/b/<uuid>  (expires 30 min after the last update; 'tqdml login' saves runs)

Or leave your code completely untouched:

import tqdm_live
tqdm_live.patch()  # every tqdm bar in this process now streams

Open the printed URL on your phone. Done.

Runs

tqdm_live.start_run("train-resnet")  # one link for every bar in this process
tqdml run -- python train.py --epochs 30

A run shows the process lifecycle next to its bars and closes with the real exit code. tqdml run wraps any command, streams its stdout/stderr and patches tqdm in the child without code changes.

Alerts

tqdm_live.start_run("train-resnet")
tqdm_live.notify("https://discord.com/api/webhooks/...")  # finished or failed
tqdm_live.notify("https://hooks.slack.com/services/...", events=("failed",), stall_after_minutes=15)

Discord and Slack webhooks get a formatted message, any other URL receives the raw JSON event. stall_after_minutes (1 to 1440) also alerts when the run goes silent that long. notify() needs an active run and returns whether the webhook was registered. TQDMLIVE_NOTIFY (comma-separated URLs) registers webhooks for every run, tqdml run included.

Save runs to your dashboard

tqdml login    # approve once in the browser
tqdml whoami   # the account your runs are saved to

Once logged in, every script that shows a bar is saved as a run named after the script, next to your start_run() and tqdml run runs. On servers and CI, set RUNPEEK_TOKEN instead (create a token on the dashboard's Setup page). tqdml logout removes the saved login.

Notebooks, IPython and the Python REPL are the exception: bars there stay anonymous, so an idle kernel never becomes a run. To save an experiment from a notebook, call tqdm_live.start_run("my-experiment") before the loop and tqdm_live.end_run() when it's done.

Free accounts keep 7 days of history, Pro ($9/mo) keeps a year. Over the monthly saved-run limit a run still streams live, it just isn't saved.

Notes

  • Bars are addressed by unguessable UUIDs. No account needed, logging in is optional.
  • Heartbeats are throttled (~0.75s) and sent from a daemon thread; your loop never blocks on the network, and send failures never raise into your code.
  • An unsaved bar or run expires 30 minutes after its last heartbeat.

Config (all optional)

import tqdm_live
tqdm_live.setup(endpoint="https://runpeek.app", link_base="https://runpeek.link", min_interval=0.75, token="rpk_...")

Env vars: RUNPEEK_TOKEN, TQDMLIVE_ENDPOINT, TQDMLIVE_LINK_BASE, TQDMLIVE_MIN_INTERVAL, TQDMLIVE_NOTIFY, TQDMLIVE_DISABLE=1. Printed view links use the link base; it defaults to the endpoint itself when unset, so self-hosted setups keep working. A token is picked from setup(token=...), then RUNPEEK_TOKEN, then the login saved by tqdml login (~/.config/runpeek/config.json).

Metadata

Release files for tqdm-live 0.7.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 tqdm-live 0.7.0
File Size Uploaded Provenance Actions
tqdm_live-0.7.0.tar.gz 29.9 kB With provenance Details for tqdm_live-0.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tqdm-live 0.7.0
File Interpreter ABI Platform Actions
tqdm_live-0.7.0-py3-none-any.whl Python 3 none any Details for tqdm_live-0.7.0-py3-none-any.whl

Total release size: 46.8 kB

Release files / tqdm_live-0.7.0.tar.gz

Download URL tqdm_live-0.7.0.tar.gz
Size 29.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e9411bdb18dae92606b3acee0f28f3cf8c250637502eef6d5970f0b281d16615
BLAKE2b-256 checksum
How to use checksums
85eda8ea2a2040ba168d3237b3f92ba7b93e9755e68366bbafcdf26f312bd4bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 30, 2026.

Transparency log

Release files / tqdm_live-0.7.0-py3-none-any.whl

Download URL tqdm_live-0.7.0-py3-none-any.whl
Size 16.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8ff3ffd9959ae4c94d176478fb97150793ac58b2666444992ee2d578f6902647
BLAKE2b-256 checksum
How to use checksums
fc884f90d72abf3a7fd94ad369e45a1bc9342cdb4f367b9420daf39ff8329abc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 30, 2026.

Transparency log

Security for tqdm-live 0.7.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 tqdm_live-0.7.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 Oct 30, 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.7.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