stqdm
Easy progress bar for streamlit based on the awesome streamlit.progress and tqdm
What it is and what it does
stqdm is a thin wrapper around tqdm that renders progress bars inside Streamlit apps instead of in the terminal. It inherits tqdm's API, so you can drop it into existing code with minimal changes — pass a range or iterable to stqdm() and get a Streamlit-native progress display. The package accepts tqdm parameters (desc, mininterval, etc.) and adds Streamlit-specific options like st_container to place the bar in the sidebar or main area, and frontend/backend flags to control where the bar appears.
The library is intentionally minimal and low-churn, designed to stay compatible with current Python versions (3.11+) and Streamlit updates. It supports pandas integration via stqdm.pandas(), scoped configuration through context managers, and global defaults via set_default_config(). With 293 GitHub stars and active maintenance, it's a stable choice for adding progress feedback to Streamlit workflows.
Use it for:
- Show iteration progress in a Streamlit app's main area or sidebar while processing a loop.
- Display progress during pandas DataFrame or Series operations (map, apply) in a Streamlit context.
- Temporarily override progress bar settings within a code block using scoped configuration.
- Suppress frontend display while keeping backend progress tracking for logging or debugging.
- Set app-wide default progress bar behavior (e.g., always show in sidebar) without per-loop configuration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
stqdm wraps tqdm progress bars for Streamlit apps, displaying iteration progress in the Streamlit UI instead of or alongside terminal output.
Yes. stqdm solves a real gap in Streamlit apps—tqdm progress bars don't render in the UI by default. It has low install friction, no security vulnerabilities, permissive licensing, and active maintenance. Use it whenever you need to show loop or operation progress to users in a Streamlit interface.
Install
stqdm on PyPI
pip
pip install stqdmuv
uv add stqdmpoetry
poetry add stqdmInstalling stqdm
Before you install
Low friction: pure Python wheel with only two runtime dependencies (streamlit and tqdm). Actively maintained for compatibility; CI tracks supported Python versions (3.11–3.14) and security reports are handled privately.
License in practice
Apache License 2.0 (permissive) — you can use, modify, and distribute stqdm freely in commercial and private projects with minimal restrictions.
Quickstart
pip install stqdm
from stqdm import stqdm
from time import sleep
for _ in stqdm(range(50)):
sleep(0.5)
Requires Python 3.11 or later and a running Streamlit app context to display the progress bar in the UI.
Verify before relying
- Whether stqdm works correctly with all Streamlit container types beyond main and sidebar.
- Performance characteristics when iterating over very large ranges or with rapid updates.
Package facts
| License | Apache License 2.0 (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — streamlit, tqdm |
| Maintenance | actively maintained — 61 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 255,008/month — #8,486 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: stqdm-0.2.1-py3-none-any.whl
Keywords: bar, eta, meter, progress, progressbar, progressmeter, rate, streamlit, tqdm
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
tdqmtdqm is an alias package that redirects to…
copyleft · top 15,000 on PyPI
fastprogressDisplays nested progress bars with optional…
permissive · top 5,000 on PyPI
tqdm-joblibAdds a progress bar to joblib.Parallel…
unclear · top 15,000 on PyPI
tqdm-loggableConverts tqdm progress bars to logging-friendly…
permissive · top 5,000 on PyPI
asyncsleepiqAsyncSleepIQ provides async Python access to…
permissive · top 15,000 on PyPI
tqdm-multiprocessDisplays multiple tqdm progress bars from…
permissive · top 15,000 on PyPI
pqdmpqdm wraps tqdm and concurrent.futures to…
permissive · top 15,000 on PyPI
parallelbarParallelbar wraps Python's multiprocessing Pool…
permissive · top 15,000 on PyPI
audeeraudeer provides a collection of lightweight…
permissive · top 15,000 on PyPI