jord-jd/php-cli-progress-bar
A lightweight PHP library for rendering progress bars in command-line scripts. Track the progress of loops and long-running tasks with customizable bars, percentage complete, and elapsed time, with no dependencies. Ideal for CLI tools, batch jobs, and console applications.
Architecture fit
Illuminate\Console\OutputStyle ($this->output->createProgressBar()), which wraps Symfony Console's ProgressBar. Functionally, that component covers percentage, ETA, memory usage, multi-format output, and message-overwriting. A TPM must establish what this package does that the incumbent does not before any adoption case exists.Integration feasibility
Repository: unknown is a hard stop for any dependency review process. We cannot audit the source, review commit history, check for obfuscated code or exfiltration, or confirm the package on Packagist maps to the claimed upstream. A TPM should not approve adoption until provenance is confirmed.Technical risk
Key questions
ProgressBar (already available to us via Artisan) does not? Name the specific capability.--no-interaction) and degrade to plain text?Stack fit
app/Support/Console abstraction that other code grows to depend on.ProgressReporter) so the underlying implementation can be swapped back to Symfony's bar without touching call sites. This also neutralizes the license exposure to a single replaceable file.Migration path
Compatibility
^8.x floor could silently exclude part of the fleet.symfony/console — a library that bundles its own ANSI/terminal-detection logic rather than using symfony/console primitives can conflict at the transitive level.--quiet, --no-ansi, and --no-interaction flags. Framework-level output suppression must not be bypassed by a package writing directly to STDOUT.Sequencing
ProgressReporter wrapper, benchmarked against Symfony's bar on the same workload.Maintenance
Support
Scaling
Failure modes
--quiet and --no-ansi are ignored, breaking scripted consumers that parse output.Ramp-up
TPM recommendation: Do not adopt as a standard dependency. The package is technically low-risk and easy to integrate, but it is functionally redundant with Symfony Console's ProgressBar, carries a GPL-3.0 license that is incompatible with most commercial Laravel distribution models, and has unverifiable provenance. Approve only as a timeboxed, wrapper-isolated experiment in internal tooling — and only after legal and provenance sign-off.
How can I help you explore Laravel packages today?