DEV.co
Open-Source Observability · rsalmei

alive-progress

alive-progress is a Python terminal progress bar library that displays real-time throughput, ETA, and animated spinners. It supports multi-threaded updates, pause/resume functionality, and integrates seamlessly with print and logging statements.

Source: GitHub — github.com/rsalmei/alive-progress
6.3k
GitHub stars
234
Forks
Python
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryrsalmei/alive-progress
Ownerrsalmei
Primary languagePython
LicenseMIT — OSI-approved
Stars6.3k
Forks234
Open issues17
Latest releaseUnknown
Last updated2026-05-24
Sourcehttps://github.com/rsalmei/alive-progress

What alive-progress is

A multi-threaded progress bar implementation for Python (3.9+) with dynamic frame rate optimization (~60 FPS), ETA calculation via exponential smoothing, and thread-safe print/logging hooks. MIT-licensed, actively maintained, with customizable animation factories.

Quickstart

Get the alive-progress source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/rsalmei/alive-progress.gitcd alive-progress# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Long-running CLI tools and batch processing

Ideal for data pipelines, backups, and ETL jobs where users need visibility into progress, throughput (items/sec), and accurate completion time estimates.

Interactive Python REPL workflows with pause/resume

Unique ability to suspend processing, return to the prompt for manual adjustments, then resume—valuable for exploratory data analysis or interactive debugging of large datasets.

Multi-threaded background tasks with rich terminal feedback

Thread-safe logging hooks that enrich print/log statements with bar position; helps monitor concurrent operations without terminal corruption or loss of context.

Implementation considerations

  • FPS calibration available to tune update frequency vs. CPU overhead; default ~60 FPS is suitable for most terminals but can be reduced for heavily constrained systems.
  • Pause mechanism requires explicit context manager usage (`with alive_bar(...) as bar:`) and manual call to `bar.pause()` / resume loop; not automatic.
  • Auto-iteration and manual modes (counter/percentage) have different semantics; choose based on whether iteration count is known upfront.
  • Print/logging hooks with enriched output now thread-safe (v3.2+); safe to call `print()` from concurrent workers without queue or lock ceremony.
  • Custom animations require understanding the frame/cycle abstraction and use of check() tool for preview; learning curve moderate.

When to avoid it — and what to weigh

  • GUI or web-based progress visualization required — alive-progress is terminal-only; if you need browser dashboards, web APIs, or graphical UIs, this is not the right tool.
  • Real-time metrics collection and analytics backend — No built-in integration with APM, Prometheus, or cloud monitoring services; final receipt is in-memory only and not exported.
  • Minimal dependencies or heavily constrained environments — Depends on graphemeu for Unicode width calculations; adds ~50KB and a transitive dependency chain; may be overkill for simple scripts.
  • Embedded systems or Python 3.8 or earlier — Requires Python 3.9+; no support for EOL versions; not suitable for IoT or legacy codebases still on 3.6/3.7.

License & commercial use

MIT License. Permissive open-source license allowing unrestricted commercial use, modification, and distribution with attribution and no warranty.

MIT is a permissive OSI-approved license. Commercial use in proprietary products is permitted, including closed-source applications. No licensing fees or restrictions apply. Attribution required but not onerous. Suitable for SaaS, enterprise software, and vendor-maintained products.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceHigh
Security considerations

No known security audit published. Terminal-based I/O only, no network exposure. Graphemeu dependency is a third-party unmaintained fork (original grapheme library unmaintained); supply-chain risk present but library is small and stable. No authentication, encryption, or sensitive data handling in scope. Code review before use in security-critical paths recommended.

Alternatives to consider

tqdm

More widely adopted (~50k+ stars), simpler API, larger ecosystem. Lacks pause/resume and real-time throughput display. Better if you need minimal deps and broad platform compatibility.

rich.progress

Rich ecosystem, supports tables/syntax highlighting, more polished terminal UI. Requires Rich dependency. Lacks pause/resume. Better if you need broader UI primitives beyond progress bars.

progressbar33

Lightweight alternative with customizable widgets. Less actively maintained and smaller feature set. Better for minimal-dependency environments or Python 2 legacy code (though 2.7 EOL).

Software development agency

Build on alive-progress with DEV.co software developers

alive-progress delivers real-time visibility, ETA accuracy, and pause/resume for long-running tasks. Let's integrate it into your workflow or explore alternatives tailored to your requirements.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

alive-progress FAQ

Can I use alive-progress in a web application (Flask, Django, FastAPI)?
Not recommended. alive-progress is terminal-only and designed for CLI/REPL. Web endpoints should use alternative progress tracking (task queues, WebSockets, async callbacks). Terminal output in web servers is typically suppressed or inaccessible.
Does alive-progress support Windows?
Yes, with caveats. ANSI support on Windows 10+ is improved, but older Windows or narrow terminals may render animations incorrectly. Test in your target environment; `force_tty` parameter can help force ANSI output.
How do I export or log the final receipt to a file or remote service?
Final receipt is available in the bar handle (v3.3+) as `bar.last_item`, `bar.elapsed`, etc., but no built-in export. Access it post-context and manually log to file/API using standard Python logging or requests.
Is alive-progress suitable for long-running background tasks in production?
Yes, if the task has terminal I/O (cron with output capture, long-running worker with SSH access). Not suitable if output must go to syslog/structured logs without terminal context; use logging hooks with custom formatters instead.

Software developers & web developers for hire

From first prototype to production, DEV.co delivers software development services around tools like alive-progress. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source observability and beyond.

Need a robust progress tracking solution for your Python CLI or batch system?

alive-progress delivers real-time visibility, ETA accuracy, and pause/resume for long-running tasks. Let's integrate it into your workflow or explore alternatives tailored to your requirements.