Skip to main content

cli_progress

Run a long command (an installer, an update) behind a calm full-screen progress window.

While it runs you see only your logo, the current step and a smooth progress bar, with the time it has taken and roughly how long is left. The output is one key away, and it is always written to the log file.

                    ▓▓▓
                  ▓▓▓▓▓
             ▓▓▓
           ▓▓▓▓▓  ▓▓▓▓▓
      ▓▓▓  ▓▓▓▓▓  ▓▓▓▓▓
   ▓▓▓▓▓▓  ▓▓▓▓▓  ▓▓▓▓▓
   ▓▓▓▓▓▓▓▓▓▓▓▓▓  ▓▓▓▓▓
   ▓▓▓▓▓▓  ▓▓▓▓▓  ▓▓▓▓▓

        Hiddify Manager   v14.0.0

 Installing...

 ━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━  62.1%
 ⏱ 2m 10s   ≈ 1m 20s left    ⚠ 1

 ✓ MySQL                                 12s
 ✓ Hiddify Panel                         48s
 ⠦ Xray                                   6s

   Setting up xray-core (25.10.15) ...

            L  show log    Q  quit

Usage

python -m cli_progress --title "Hiddify Manager" --subtitle v14 \
    --logo logo.ico --log /var/log/install.log -- ./install.sh --no-gui
Option
--title, --subtitle shown under the logo
--logo FILE a text file with the logo (block characters); a built-in one by default
--log FILE the command's whole output (with its colors) goes there
--regex the progress line; default ####<percent>####<title>####<step>####
--auto-exit SECONDS close this long after a success (default 5; 0 waits for a key)
--no-counts hide the ⚠ warnings / ✗ errors counts next to the timer
--plain no window: print the output and a line for each step

The command reports progress by printing lines such as:

echo "####42####Installing...####Hiddify Panel####"

Those lines are not shown or logged as output; they move the bar and add a step.

Keys

Running Finished
L show the log show the log
Q, Esc, Ctrl+C ask before stopping (Ctrl+C twice stops) close
Enter close

In the log (it opens under the logo and the progress bar, which stay on top): ↑ ↓ PgUp PgDn scroll (it holds still while you read), End follows new lines again, e / E jump to the next / previous error or warning, Esc goes back.

What happens when

  • Success: the logo turns green and the window closes after a few seconds (any key keeps it open).
  • Failure: the logo turns red, the step that failed is marked, the last errors and warnings are shown, and the window stays until you close it. A short summary with the log's path is printed after it closes.
  • Stop: the command gets SIGINT (to clean up), then SIGTERM, then SIGKILL. The exit code is 130.
  • No usable terminal (a pipe, cron, ssh without -t, TERM=dumb): plain output, same log, same exit code. The command never runs twice.

The command runs in its own session with no stdin: the terminal's Ctrl+C reaches the window (which asks first), not the command.

Development

uv manages the environment, the dependencies (pyproject.toml, uv.lock) and the builds.

make install   # uv sync: .venv with the dev tools
make test      # flake8, black, mypy, then pytest with coverage
make build     # uv build: the sdist and the wheel in dist/
make release   # writes cli_progress/VERSION, tags and pushes; CI builds, checks the wheel runs, and publishes

Try it: uv run python -m cli_progress --title Demo -- ./test.sh

Metadata

Release files for cli_progress 3.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cli_progress 3.0.6
File Size Uploaded Provenance Actions
cli_progress-3.0.6.tar.gz 23.4 kB Without provenance Details for cli_progress-3.0.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for cli_progress 3.0.6
File Interpreter ABI Platform Actions
cli_progress-3.0.6-py3-none-any.whl Python 3 none any Details for cli_progress-3.0.6-py3-none-any.whl

Total release size: 46.9 kB

Release files / cli_progress-3.0.6.tar.gz

Download URL cli_progress-3.0.6.tar.gz
Size 23.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ea71345032d264807b61a1ddcce2280d67201cf099cfca8b4e16631bab690efc
BLAKE2b-256 checksum
How to use checksums
e44383c6a215ee335c380b13947275b17d0536fef1756cc2a6991833cd48c5f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cli_progress-3.0.6-py3-none-any.whl

Download URL cli_progress-3.0.6-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
21ad0232b2beeb534fa8df3c78a2bc76ff202b30f7466314048a9d0f37d04674
BLAKE2b-256 checksum
How to use checksums
f49bbcb9a77ee5deeb9ed6bf9f1da69237765ff3e841baa818eb107a299426ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for cli_progress 3.0.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page