Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. ShellProgressBar

ShellProgressBar

MITC#5.2.0

A .NET library for displaying customizable progress bars and child progress bars in console applications.

GitHubGitHub
1.5k stars139 forks0 contributors

What is ShellProgressBar?

ShellProgressBar is a .NET library designed to display progress bars in console applications. It helps visualize long-running command-line tasks, making it easier for users to track progress and understand concurrent operations through nested progress bars.

Target Audience

Developers building .NET console applications or CLI tools that require progress indication for extended tasks, such as data processing, file operations, or batch jobs.

Value Proposition

It offers a simple yet highly customizable API with support for child progress bars and IProgress<T> integration, providing a robust solution for progress visualization without complex dependencies.

Overview

ShellProgressBar - display progress in your console application

Use Cases

Best For

  • Adding progress indicators to long-running .NET console applications
  • Visualizing concurrent tasks with nested progress bars
  • Customizing progress bar appearance for branded CLI tools
  • Integrating progress reporting via the standard IProgress<T> interface
  • Creating fixed-duration progress bars for predictable operations
  • Improving user experience in command-line utilities with real-time updates

Not Ideal For

  • Applications with graphical user interfaces (GUIs) or web-based frontends, as it is designed solely for console output.
  • Projects that require zero external dependencies, since ShellProgressBar adds a library overhead and setup complexity.
  • Tasks that complete in milliseconds, where the progress bar rendering overhead might outweigh the user experience benefit.
  • Environments where console access is restricted, such as some serverless or embedded systems, due to its reliance on console APIs.

Pros & Cons

Pros

Highly Customizable Styling

Allows extensive control over colors, characters, and layout, as shown in README examples with options like ForegroundColor and ProgressCharacter for themed progress bars.

Child Progress Bars

Supports spawning nested progress bars to visualize concurrent tasks, with configurable collapse behavior, enhancing clarity for complex operations.

Standard IProgress<T> Integration

Seamlessly integrates with .NET's IProgress<T> interface, enabling easy progress reporting in existing codebases without custom callbacks.

FixedDurationBar for Predictability

Includes a subclass for tasks with known runtimes that auto-advances, simplifying progress management for operations like timed waits or scheduled jobs.

Cons

Console-Environment Limitation

Restricted to console applications, making it unusable for GUI, web, or headless environments without significant modifications or workarounds.

.NET-Exclusive Dependency

Only supports .NET frameworks, so it cannot be used in projects with multi-language stacks or non-.NET platforms, limiting its versatility.

Performance Trade-offs

Real-time updates and child bar management can introduce overhead, potentially affecting performance in resource-constrained scenarios or high-frequency tick operations.

Frequently Asked Questions

Quick Stats

Stars1,480
Forks139
Contributors0
Open Issues29
Last commit1 year ago
CreatedSince 2013

Tags

#csharp#dotnet#net-core#console-application#command-line#cli-tools#visualization#progress-bar

Built With

.
.NET Core
C
C++

Included in

Core21.2k
Auto-fetched 1 day ago

Related Projects

AvaloniaAvalonia

Develop Desktop, Embedded, Mobile and WebAssembly apps with C# and XAML. The future of .NET UI

Stars30,934
Forks2,713
Last commit2 days ago
AdonisUIAdonisUI

Lightweight UI toolkit for WPF applications offering classic but enhanced windows visuals

Stars1,863
Forks154
Last commit3 years ago
Qml.NetQml.Net

Qml.Net - Qt/QML integration/support for .NET

Stars1,414
Forks111
Last commit3 years ago
AvaloniaEditAvaloniaEdit

Avalonia-based text editor (port of AvalonEdit)

Stars1,103
Forks223
Last commit4 days 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