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.5

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.5
File Size Uploaded Provenance Actions
cli_progress-3.0.5.tar.gz 22.9 kB Without provenance Details for cli_progress-3.0.5.tar.gz

Built distribution (wheel)

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

Total release size: 46.4 kB

Release files / cli_progress-3.0.5.tar.gz

Download URL cli_progress-3.0.5.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
ab9bc11cfd111b17742e196044970f9ad5b11173c44bb356bfd0a60674aff253
BLAKE2b-256 checksum
How to use checksums
889577aec6eff1e421060225523b9193eade53920f179e349340b319750f7235
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.5-py3-none-any.whl

Download URL cli_progress-3.0.5-py3-none-any.whl
Size 23.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
50f5102a53af03fa23a74f05a150a6023845715b458b73a187279abf1eac965c
BLAKE2b-256 checksum
How to use checksums
6dda3c749ae61c825b3838f5a1fe0a72451b8f8fee916b2d9a3c69fec8f4d74d
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.5

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