romancitodev/cargo-pretty

A cargo build wrapper with a live, animated status view

Rust

286

37 commits

updated Sep 13, 2026

See the code

README

cargo-pretty

Check Format and Code Quality license

demo

Cargo's own build output does the job. This does it prettier: a live status view for build, run and test, showing which crates (or tests) are running right now, how long each one took, and a progress bar driven by cargo's real unit graph instead of a guess.

πŸ’” Renamed from cargo-pretty-build. One binary now, not one per verb. Had the old one installed? cargo uninstall cargo-pretty-build, install this, and swap cargo pretty-build for cargo pretty build. Bare cargo pretty still means build, so most of your muscle memory survives.

Install

cargo install cargo-pretty-build      # from crates.io
cargo binstall cargo-pretty-build     # prebuilt, from GitHub releases
cargo install --git https://github.com/romancitodev/cargo-pretty  # straight from source

The crate is still called cargo-pretty-build (it was already published under that name), only the binary it installs is cargo-pretty.

Usage

cargo pretty                              # cargo build
cargo pretty build --release
cargo pretty run --bin server -- --port 8080
cargo pretty test

Everything after the verb goes straight to the matching cargo command. For run, args after -- land in your binary, not cargo. For test, args after -- land in the test harness (--no-fail-fast, a name filter, whatever you need).

What you get

  • πŸ› οΈ Up to six crates (or tests) in flight at once, each with its own timer, older entries fading out as newer ones start
  • πŸ“Š A progress bar reading cargo's real unit count (via its own --unit-graph), not an estimate
  • ⚠️ Warnings collected into a browsable panel (↑↓ move, Enter expand, Esc dismiss) instead of scrolling past them
  • ❌ Failed tests get the same treatment, always visible instead of vanishing once the run ends: ↑↓ to pick one, Enter to see the panic
  • βœ… A short summary on exit: time elapsed, libs compiled or tests passed, disk used
  • πŸ’Œ Feed it a verb it doesn't know and it takes it personally

Testing

Testing was upgraded to provide a better output experience. Now, when a test fails, the output will include diff-coloring for assert! and assert_eq! panics, making it easier to identify what went wrong. Additionally, you can expand the information of a specific test by pressing Enter, and if you want to retry the test, simply press r. This makes debugging and iterating on tests much more efficient and user-friendly.

testing

Star History

Star History Chart

Built on

The rendering runs on nobubbles, a TUI library from the same author.

License

MIT, see LICENSE.

cargo
cargo-subcommand
rust
rust-cli
rust-community
rust-crate
rust-lang
rust-library

Contributors

romancitodev

34 commits

sadan4

2 commits

romancitodev/cargo-pretty

A cargo build wrapper with a live, animated status view

Rust

286

37 commits

updated Sep 13, 2026

See the code

README

cargo-pretty

Check Format and Code Quality license

demo

Cargo's own build output does the job. This does it prettier: a live status view for build, run and test, showing which crates (or tests) are running right now, how long each one took, and a progress bar driven by cargo's real unit graph instead of a guess.

πŸ’” Renamed from cargo-pretty-build. One binary now, not one per verb. Had the old one installed? cargo uninstall cargo-pretty-build, install this, and swap cargo pretty-build for cargo pretty build. Bare cargo pretty still means build, so most of your muscle memory survives.

Install

cargo install cargo-pretty-build      # from crates.io
cargo binstall cargo-pretty-build     # prebuilt, from GitHub releases
cargo install --git https://github.com/romancitodev/cargo-pretty  # straight from source

The crate is still called cargo-pretty-build (it was already published under that name), only the binary it installs is cargo-pretty.

Usage

cargo pretty                              # cargo build
cargo pretty build --release
cargo pretty run --bin server -- --port 8080
cargo pretty test

Everything after the verb goes straight to the matching cargo command. For run, args after -- land in your binary, not cargo. For test, args after -- land in the test harness (--no-fail-fast, a name filter, whatever you need).

What you get

  • πŸ› οΈ Up to six crates (or tests) in flight at once, each with its own timer, older entries fading out as newer ones start
  • πŸ“Š A progress bar reading cargo's real unit count (via its own --unit-graph), not an estimate
  • ⚠️ Warnings collected into a browsable panel (↑↓ move, Enter expand, Esc dismiss) instead of scrolling past them
  • ❌ Failed tests get the same treatment, always visible instead of vanishing once the run ends: ↑↓ to pick one, Enter to see the panic
  • βœ… A short summary on exit: time elapsed, libs compiled or tests passed, disk used
  • πŸ’Œ Feed it a verb it doesn't know and it takes it personally

Testing

Testing was upgraded to provide a better output experience. Now, when a test fails, the output will include diff-coloring for assert! and assert_eq! panics, making it easier to identify what went wrong. Additionally, you can expand the information of a specific test by pressing Enter, and if you want to retry the test, simply press r. This makes debugging and iterating on tests much more efficient and user-friendly.

testing

Star History

Star History Chart

Built on

The rendering runs on nobubbles, a TUI library from the same author.

License

MIT, see LICENSE.

cargo
cargo-subcommand
rust
rust-cli
rust-community
rust-crate
rust-lang
rust-library

Contributors

romancitodev

34 commits

sadan4

2 commits

Languages

Rust

96.9%

Just

3.1%