25 releases

0.3.5 Sep 12, 2024
0.3.2 Jul 8, 2024
0.1.13 Feb 27, 2024
0.1.10 Dec 20, 2023
0.1.6 Jul 23, 2023

#44 in Command-line interface

Download history 4096/week @ 2024-12-02 5536/week @ 2024-12-09 5346/week @ 2024-12-16 1619/week @ 2024-12-23 2820/week @ 2024-12-30 6156/week @ 2025-01-06 6000/week @ 2025-01-13 4891/week @ 2025-01-20 5847/week @ 2025-01-27 5724/week @ 2025-02-03 7558/week @ 2025-02-10 7285/week @ 2025-02-17 6241/week @ 2025-02-24 8270/week @ 2025-03-03 8312/week @ 2025-03-10 9912/week @ 2025-03-17

33,175 downloads per month
Used in 31 crates (29 directly)

MIT license

255KB
2K SLoC

CliClack Logo

Effortlessly build beautiful command-line apps with Rust 🦀✨

github.com crates.io docs.rs license

Beautiful, minimal, opinionated CLI prompts inspired by the @clack/prompts npm package.

cargo add cliclack

cliclack in action

cargo run --example basic
cargo run --example log
CliClack Example

💎 Fancy minimal UI
✅ Simple API
🎨 Theme support

Setup

The intro and outro/outro_cancel functions will print a message to begin and end a prompt session respectively.

use cliclack::{intro, outro};

intro("create-my-app")?;
// Do stuff
outro("You're all set!")?;

Input

The input prompt accepts a single line of text trying to parse it into a target type. Multiline input can be enabled using the multiline() switch.

use cliclack::input;

let path: String = input("Where should we create your project?")
    .placeholder("./sparkling-solid")
    .validate(|input: &String| {
        if input.is_empty() {
            Err("Please enter a path.")
        } else if !input.starts_with("./") {
            Err("Please enter a relative path")
        } else {
            Ok(())
        }
    })
    .interact()?;

🎨 Theme

A custom theme can be applied for UI rendering. An example of theme customization:

cargo run --example theme
CliClack Magenta Theme

🚥 Progress Bar

Starting from cliclack = "0.2.3", progress bars and multi-progress bars are supported.

CliClack Multi Progress Bar

See more

Dependencies

~3–10MB
~103K SLoC