skillfed

progress

Easy to use progress bars

progress v1.6.1 2.2M downloads/30d#3,201 on PyPI1,432
Permissive license ISC AGING released

What it is and what it does

progress is a lightweight Python library for rendering animated progress bars and spinners in the terminal. It offers seven distinct bar styles (Bar, ChargingBar, FillingSquaresBar, FillingCirclesBar, IncrementalBar, PixelBar, ShadyBar) and five spinner variants for tasks with unknown iteration counts. Bars track progress through a known maximum, displaying current position, percentage, elapsed time, and estimated time remaining; spinners animate indefinitely for operations where the endpoint is unknown.

The library is designed for minimal overhead and maximum simplicity: instantiate a bar or spinner, call next() in your loop, and call finish() when done. It supports context managers for cleaner code, iterator wrapping for common patterns, and extensive customization through template variables (index, max, remaining, percent, elapsed, eta, and more) and subclassing. With no runtime dependencies and support for Python 3.6 through 3.13, it integrates easily into existing projects.

Use it for:

  • Display progress during file processing or data import pipelines where iteration count is known in advance.
  • Show activity during long-running network requests or API calls using a spinner when completion time is uncertain.
  • Wrap existing iterators to add progress reporting without restructuring loop logic using the iter() method.
  • Create custom progress indicators by subclassing Bar or Spinner to match application branding or specific metrics.
  • Monitor batch job execution in CLI tools, showing elapsed time and estimated completion time to users.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides terminal progress bars and spinners for displaying task completion status during long-running operations in Python scripts.

Yes. progress is a mature, dependency-free library with no known vulnerabilities, permissive licensing, and broad Python version support. Install it if you need terminal progress feedback in scripts or CLI tools. The aging maintenance status is not a blocker for a stable, feature-complete utility—the current version is production-ready.

Install

progress on PyPI

pip

pip install progress

uv

uv add progress

poetry

poetry add progress

Installing progress

Before you install

Low friction installation with no runtime dependencies. Maintenance status is aging—last release was 409 days ago—but the repository remains active with 1432 stars, suggesting stable, established use.

License in practice

Licensed under ISC (permissive), which allows commercial and private use with minimal restrictions, making it safe to include in most projects.

Quickstart

pip install progress

from progress.bar import Bar

bar = Bar('Processing', max=20)
for i in range(20):
    bar.next()
bar.finish()

Package facts

License ISC (permissive)
Python support supports the current Python release (>=3.6)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance aging — 409 days since the last release
Last repo commit
First released
Downloads 2,221,417/month — #3,201 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: progress-1.6.1-py3-none-any.whl

Keywords: progress, bar

Environment :: ConsoleIntended Audience :: DevelopersProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

progress bar terminalpython progress indicatorloading bar clitask completion displayspinner animation pythonconsole progress trackingcommand line progress
cli-feedbackterminal-ui

More Utilities packages