progressbar2
A Python Progressbar library to provide visual (yet text based) progress to long running operations.
What it is and what it does
progressbar2 is a terminal progress bar library that renders visual feedback for long-running operations in the console. It wraps iterables or manual updates to display a text-based bar with customizable widgets, elapsed time, ETA, and throughput metrics. The library handles multiple concurrent bars, unknown-length progress (for operations where the total is not known in advance), and integrates cleanly with logging and print statements by redirecting stdout to prevent corruption of the bar display.
The package is a maintained fork of the original progressbar library and remains backwards compatible with it. It supports modern Python versions (3.10+), works across Windows, macOS, and Linux, and provides both a programmatic API for embedding in scripts and a command-line interface for piping data through progress tracking. It is typed and actively maintained with no known security vulnerabilities.
Use it for:
- Display progress for batch processing tasks, file uploads/downloads, or data transformations where you want visual feedback in the terminal.
- Track multiple concurrent operations (e.g., parallel builds or tests) with separate named progress bars in a single terminal window.
- Handle long-running operations with unknown total duration by using UnknownLength mode to show a spinner or activity indicator.
- Integrate progress tracking into CLI tools or scripts that also emit logs, keeping the progress bar clean and readable above log output.
- Monitor throughput and ETA in data pipelines or network operations by displaying rate, elapsed time, and estimated completion.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
progressbar2 renders text-based progress bars in the terminal, handling custom widgets, concurrent bars, unknown-length progress, and clean output around logs and prints.
Yes. progressbar2 is a stable, actively maintained library with low install friction, no security vulnerabilities, and a permissive license. It solves a common problem (terminal progress feedback) cleanly and is suitable for scripts, CLI tools, and applications across all major platforms. Install if you need text-based progress bars in the terminal.
Install
progressbar2 on PyPI
pip
pip install progressbar2uv
uv add progressbar2poetry
poetry add progressbar2Installing progressbar2
Before you install
Low install friction with a single runtime dependency (python-utils). Actively maintained with a recent release and 879 repository stars. Supports current Python versions from 3.10 onward.
License in practice
BSD-3-Clause is a permissive license allowing commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install progressbar2
import time
for item in progressbar2.progressbar(range(100), desc='Loading'):
time.sleep(0.02)
Requires Python 3.10 or later. Terminal progress bars do not work in IDLE or without terminal support in some IDEs like JetBrains (unless 'Enable terminal in output console' is configured).
Verify before relying
- Whether the package's multi-threaded progress bar support is thread-safe across all documented use cases.
- Performance characteristics when managing many concurrent bars or very high update frequencies.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — python-utils |
| Maintenance | actively maintained — 0 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 19,344,398/month — #1,069 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: progressbar2-4.6.0-py3-none-any.whl
Keywords: REPL, animated, bar, color, console, duration, efficient, elapsed, eta, feedback, live, meter, monitor, monitoring, multi-threaded, progress, progress-bar, progressbar, progressmeter, python, rate, simple, speed, spinner, stats, terminal, throughput, time, visual
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
fastprogressDisplays nested progress bars with optional…
permissive · top 5,000 on PyPI
proglogProglog provides a unified progress logging…
permissive · top 5,000 on PyPI
progressProvides terminal progress bars and spinners…
permissive · top 5,000 on PyPI
enlightenEnlighten is a console progress bar library…
copyleft · top 5,000 on PyPI
alive-progressDisplays an animated progress bar in the…
permissive · top 5,000 on PyPI
progressbar33Displays text-based progress bars in the…
unclear · top 15,000 on PyPI
click-spinnerDisplays a simple animated spinner in the…
permissive · top 5,000 on PyPI
celery-progressProvides drop-in progress bars for Django views…
permissive · top 15,000 on PyPI
parallelbarParallelbar wraps Python's multiprocessing Pool…
permissive · top 15,000 on PyPI
yaspinYaspin displays an animated terminal spinner to…
permissive · top 5,000 on PyPI