Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. progress_bar

progress_bar

MITElixir

A library for rendering command-line progress bars and spinners in Elixir applications.

GitHubGitHub
338 stars21 forks0 contributors

What is progress_bar?

ProgressBar is an Elixir library that provides customizable progress bars and spinners for command-line interfaces. It helps developers visualize task progress, downloads, or indeterminate operations directly in the terminal, enhancing user experience for CLI tools.

Target Audience

Elixir developers building command-line tools or scripts that require visual feedback for long-running tasks, such as data processing, file downloads, or batch operations.

Value Proposition

Developers choose ProgressBar for its straightforward API and extensive customization options, including configurable colors, formats, and animations, allowing it to fit diverse CLI use cases without unnecessary complexity.

Overview

Command-line progress bars and spinners for Elixir.

Use Cases

Best For

  • Adding determinate progress bars to CLI tools that process a known number of items or bytes.
  • Implementing indeterminate progress indicators for tasks with unknown duration, like network requests or complex computations.
  • Displaying animated spinners with custom text for loading states in terminal applications.
  • Visualizing download progress with automatic byte unit formatting (e.g., MB, KB).
  • Creating custom-styled progress indicators with specific colors, characters, and ANSI styling for branded CLI tools.
  • Enhancing user experience in Elixir scripts by providing real-time feedback on task execution.

Not Ideal For

  • Projects requiring actively maintained dependencies with long-term support and security updates.
  • Applications needing progress visualization in non-interactive or redirected output streams (e.g., logs, files).
  • Systems where minimal external dependencies are critical, as it adds a library for terminal-specific functionality.

Pros & Cons

Pros

Simple and Intuitive API

Functions like ProgressBar.render/2 allow easy integration with minimal code, as demonstrated in the basic usage examples where passing current and total values renders a bar.

Extensive Customization Options

Supports custom formats, colors using IO.ANSI, and adjustable widths, enabling tailored progress indicators for any CLI aesthetic, as detailed in the 'Customize format' and 'Customize color' sections.

Automatic Terminal Adaptation

The bar automatically fits its width to the terminal size, with a fallback to 80 columns if undetectable, ensuring compatibility across different environments without manual configuration.

Multiple Indicator Types

Offers determinate bars, indeterminate bars, and spinners with predefined styles like :braille, catering to various progress visualization needs, as shown in the examples for each type.

Cons

Inactive Maintenance Status

The README explicitly states the project is 'Not actively maintained' as of 2025-07-22, posing risks for bug fixes, compatibility updates, and long-term viability in production environments.

Limited Output Flexibility

Designed primarily for STDOUT overwriting with carriage returns, making it unsuitable for environments where output is redirected or non-interactive, as it relies on terminal-specific behavior.

Basic Animation Control

While intervals are configurable, the animation logic for spinners and indeterminate bars is simplistic, with fixed frame sequences that may not support advanced effects or dynamic adjustments beyond user-defined lists.

Frequently Asked Questions

Quick Stats

Stars338
Forks21
Contributors0
Open Issues4
Last commit10 months ago
CreatedSince 2015

Tags

#elixir#terminal#spinners#progressbar#spinner#terminal-ui#cli#command-line#hex-package#cli-tools#progress-bar#ansi-colors

Built With

E
Elixir

Included in

Elixir13.1k
Auto-fetched 1 day ago

Related Projects

ratatouilleratatouille

A TUI (terminal UI) kit for Elixir

Stars840
Forks41
Last commit3 years ago
owlowl

A toolkit for writing command-line user interfaces.

Stars520
Forks14
Last commit3 months ago
scribescribe

Pretty-print tables of Elixir structs and maps.

Stars306
Forks12
Last commit3 months ago
table_rextable_rex

An Elixir app which generates text-based tables for display

Stars262
Forks27
Last commit1 year ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub